Как рассчитать цену VWAP для указанной условной суммы в КДБ? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть следующая таблица примеров в kdb.

mkt:([] date:2018.05.05 2018.05.05 2018.05.05 2018.05.05; time:2018.05.05D01:30:00 2018.05.05D01:30:01 2018.05.05D01:30:01 2018.05.05D01:30:02; bid:((1.2110 1.21105);(1.2111 1.2109 1.2112);(1.2111 1.2109);(1.2110 1.21105)); bidSize:((3000000 1000000);(500000 1000000 1000000);(1000000 2000000);(1000000 1000000)); ask:((1.2111 1.21115);(1.2112 1.2110 1.2113);(1.2112 1.2110);(1.2111 1.21115)); askSize:((3000000 1000000);(500000 1000000 1000000);(1000000 2000000);(1000000 1000000)))

У меня есть это решение, но цифры не будут самыми точными.

table:select date, time, bid:{x wavg y}'[bidSize;bid], bidSize: sum each bidSize, ask:{x wavg y}'[askSize;ask], askSize:sum each askSize from mkt
table: update cumulBidSize: sums bidSize, cumulAskSize: sums askSize from table
1#select from table where cumlBidSize>=5000000

Я хочуиметь возможность иметь функцию при заданном размере (например, 5000000), рассчитать vwap для этого размера.Как я могу просматривать данные в ячейке, пока не получу 5000000?

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете использовать это для расчета средней ставки только для строк, где общий размер ставки больше или равен указанному размеру:

{[x]select {x wavg y}'[sum each bidSize;bid] from mkt where x<=sum each bidSize}[4000000]

Вы можете использовать это, если выхотите рассчитать среднюю цену только для цен с ассоциированным размером, большим или равным указанному размеру:

{select bidSize wavg bid from ungroup mkt where bidSize>=x}[2000000]

Надеюсь, это поможет,

Джеймс

...