برنامه نویسی

ابزارهای مفید برای محاسبه کارآمد هزینه‌های تراکنش از روی داده‌های تیک

Summarize this content to 400 words in Persian Lang

محاسبه هزینه های تراکنش از داده های تیک اغلب شامل دو جدول است: تجارت و nbbo. از آنجایی که مُهرهای زمانی هر دو جدول در سطح نانوثانیه هستند، عملاً هیچ تطابق دقیقی بین مُهر زمانی دو جدول وجود ندارد.

بنابراین، برای محاسبه هزینه‌های معامله، باید آخرین مظنه را قبل از هر معامله (از همان سهام) تعیین کنیم. همچنین ممکن است لازم باشد میانگین قیمت‌ها را در یک پنجره خاص نسبت به هر معامله محاسبه کنیم. این اتصال‌های غیردقیق اغلب در تأمین مالی کوانتی استفاده می‌شوند، اما در اکثر پایگاه‌های داده پشتیبانی نمی‌شوند.

این بار DolphinDB در اختیار شما قرار می دهد asof ملحق شدن و پیوستن به پنجره برای این سناریوها

به مورد زیر دقت کنید!

داده های مورد استفاده در این مثال عبارتند از داده های فرکانس بالا از بورس نیویورک، متشکل از دو جدول تجارت و nbbo به ترتیب حاوی 27 میلیون و 78 میلیون رکورد. اسکریپت DolphinDB به شرح زیر است:

trade = loadTable(“dfs://EQY”, “trade”)
select count(*) from trade

nbbo = loadTable(“dfs://EQY”, “nbbo”)
select count(*) from nbbo

// asof join
timer TC1 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_aj from aj(trade,nbbo,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol

// window join
timer TC2 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_wj from pwj(trade,nbbo,-100000000:0,,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol

select * from ej(TC1,TC2,`symbol) where symbol in `AAPL`MS`EBAY

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فقط یک خط اسکریپت می تواند منطق محاسباتی پیچیده را پیاده سازی کند.

// asof join
timer TC1 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_aj from aj(trade,nbbo,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

طول می کشد 339 میلی ثانیه برای تکمیل محاسبه هزینه های معامله با asof ملحق شدن، که بیشتر از 100 برابر سریعتر از محاسبه معادل در پانداهای پایتونو اسکریپت برای محاسبه با پیوستن به پنجره می گیرد 402 میلی ثانیه.

در حین محاسبه هزینه های تراکنش، DolphinDB عملکرد عالی با کد مختصر نشان می دهد. برای نمایش بصری عملیات پوشش داده شده در این مقاله، می توانید یک دقیقه این دمو را تماشا کنید!

https://youtu.be/2HfTRLDYUrY

توضیحات تصویر

محاسبه هزینه های تراکنش از داده های تیک اغلب شامل دو جدول است: تجارت و nbbo. از آنجایی که مُهرهای زمانی هر دو جدول در سطح نانوثانیه هستند، عملاً هیچ تطابق دقیقی بین مُهر زمانی دو جدول وجود ندارد.

توضیحات تصویر

بنابراین، برای محاسبه هزینه‌های معامله، باید آخرین مظنه را قبل از هر معامله (از همان سهام) تعیین کنیم. همچنین ممکن است لازم باشد میانگین قیمت‌ها را در یک پنجره خاص نسبت به هر معامله محاسبه کنیم. این اتصال‌های غیردقیق اغلب در تأمین مالی کوانتی استفاده می‌شوند، اما در اکثر پایگاه‌های داده پشتیبانی نمی‌شوند.

توضیحات تصویر

این بار DolphinDB در اختیار شما قرار می دهد asof ملحق شدن و پیوستن به پنجره برای این سناریوها

توضیحات تصویر

توضیحات تصویر

به مورد زیر دقت کنید!

داده های مورد استفاده در این مثال عبارتند از داده های فرکانس بالا از بورس نیویورک، متشکل از دو جدول تجارت و nbbo به ترتیب حاوی 27 میلیون و 78 میلیون رکورد. اسکریپت DolphinDB به شرح زیر است:

trade = loadTable("dfs://EQY", "trade")
select count(*) from trade

nbbo = loadTable("dfs://EQY", "nbbo")
select count(*) from nbbo

// asof join
timer TC1 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_aj from aj(trade,nbbo,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol

// window join
timer TC2 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_wj from pwj(trade,nbbo,-100000000:0,,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol

select * from ej(TC1,TC2,`symbol) where symbol in `AAPL`MS`EBAY
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فقط یک خط اسکریپت می تواند منطق محاسباتی پیچیده را پیاده سازی کند.

// asof join
timer TC1 = select sum(Trade_Volume*abs(Trade_Price-(Bid_Price+Offer_Price)/2))/sum(Trade_Volume*Trade_Price)*10000 as TC_aj from aj(trade,nbbo,`Symbol`Time) where Time between 09:30:00.000000000 : 15:59:59.999999999 group by symbol
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

طول می کشد 339 میلی ثانیه برای تکمیل محاسبه هزینه های معامله با asof ملحق شدن، که بیشتر از 100 برابر سریعتر از محاسبه معادل در پانداهای پایتونو اسکریپت برای محاسبه با پیوستن به پنجره می گیرد 402 میلی ثانیه.

توضیحات تصویر

در حین محاسبه هزینه های تراکنش، DolphinDB عملکرد عالی با کد مختصر نشان می دهد. برای نمایش بصری عملیات پوشش داده شده در این مقاله، می توانید یک دقیقه این دمو را تماشا کنید!

https://youtu.be/2HfTRLDYUrY

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا