我的需求是红框里的这个值计算方式:window是蓝框选中的6个值,红框里是这6个值当中最大的5个值,这五个值求和是要的结果。
t1 = table(`A`A`B as sym, 09:56:06 09:56:07 09:56:06 as time, 10.6 10.7 20.6 as price)
t2 = table(take(`A,10) join take(`B,10) as sym, take(09:56:00+1..10,20) as time, (10+(1..10)\10-0.05) join (20+(1..10)\10-0.05) as bid, (10+(1..10)\10+0.05) join (20+(1..10)\10+0.05) as offer, take(100 300 800 200 600, 20) as volume);
wj(t1, t2, -5:0, sum of top 5 max(bid), `sym`time)
我应用的是DolphinDB软件。
可能需要自己写一个算法,思路是:内部一个N长度的sorted array,滚动的插入(插入排序快速算法应该很多了),滚动的做前/后M的运算。