在q kdb中加入窗口

时间:2019-06-13 09:29:59

标签: kdb

以下是窗口连接的示例:

.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 个答案:

答案 0 :(得分:3)

更容易查看是否返回未汇总的列表,然后尝试更改窗口

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

该窗口根据交易时间前后的正负范围确定汇总中包含多少(和哪些)报价