Окно соединения в q kdb - PullRequest
       20

Окно соединения в q kdb

0 голосов
/ 13 июня 2019

Ниже приведен пример объединения окон:

.up.t:([]sym:3#`abc;time:10:01:01 10:01:04 10:01:08;price:100 101 105);
.up.a:101 103 103 104 104 107 108 107 108;
.up.b:98 99 102 103 103 104 106 106 107;

.up.q:([]sym:`abc; time:10:01:01+til 9; ask:.up.a; bid:.up.b);
.up.w:-2 1+\:.up.t.time;

wj[.up.w;`sym`time;.up.t;(.up.q;(min;`ask);(max;`bid))]

Выход:

sym time    price   ask bid
abc 10:01:01    100 101 99
abc 10:01:04    101 103 103
abc 10:01:08    105 107 107

Я не могу понять, как .up.w влияет на результат объединения окон?

1 Ответ

3 голосов
/ 13 июня 2019

Проще увидеть, если вы возвращаете списки не агрегированными, а затем пытаетесь изменить окна

q)wj[-2 1+\:.up.t.time;`sym`time;.up.t;(.up.q;(::;`ask);(::;`bid))]
sym time     price ask             bid
--------------------------------------------------
abc 10:01:01 100   101 103         98 99
abc 10:01:04 101   103 103 104 104 99 102 103 103
abc 10:01:08 105   107 108 107 108 104 106 106 107

q)wj[-2 2+\:.up.t.time;`sym`time;.up.t;(.up.q;(::;`ask);(::;`bid))]
sym time     price ask                 bid
---------------------------------------------------------
abc 10:01:01 100   101 103 103         98 99 102
abc 10:01:04 101   103 103 104 104 107 99 102 103 103 104
abc 10:01:08 105   107 108 107 108     104 106 106 107

Окно определяет, сколько (и какие) кавычек включено в агрегацию на основе плюса /минус диапазон во время торговли

...