我想从交易表中创建一个五项移动总和。我; e;每行应为先前交易规模的总和。难点是,Id希望从这5行中仅删除价格最高和价格最低的行。
这可能吗?
RD
答案 0 :(得分:2)
我认为此功能将起作用
const authGroups = await models.authGroup.findAll({
where :filters
});
函数q)trade:([]price:100?100f;size:100?100)
q)w:{(til[count z]-m)+x each flip reverse prev\[m:y-1;z]}
q)update top:size w[{x?max x};5;price],bot:size w[{x?min x};3;price],ms:5 msum size,rms:(5 msum size)-((size w[{x?max x};5;price])+(size w[{x?min x};5;price])) from trade
price size top bot ms rms
------------------------------
64.14975 70 70 70 70 -70
90.82711 36 36 70 106 0
97.96094 12 12 70 118 36
30.77491 97 12 97 215 106
36.52273 92 12 97 307 198
95.91177 99 12 97 336 227
41.21866 45 12 92 345 236
63.3041 83 99 45 416 220
57.52693 94 99 45 413 222
0.9011743 8 99 8 329 222
14.48057 97 83 8 327 236
77.06132 52 52 8 334 274
36.96114 66 52 97 317 257
11.75355 24 52 24 247 187
92.34386 60 60 24 299 215
40.15936 69 60 24 271 187
56.19037 8 60 69 227 143
72.4948 62 60 69 223 139
81.12026 95 60 8 294 165
20.86614 59 95 59 293 139
将允许选择和删除与最高和最低价格相对应的尺寸。这是通过(msum size)-(top + bot)更新来完成的。不幸的是,第一个元素存在问题,如果找到一个元素,我将对此进行评论。
答案 1 :(得分:1)
看起来您应该可以通过带有自定义功能的滑动窗口来做到这一点:
q)func:{sum[x] - min[x] + max[x]}
q)swin:{[f;w;s] f each { 1_x,y }\[w#0;s]}
q)swin[func; 5; til 1000]
例如。
答案 2 :(得分:0)
另一种方法(按符号):
err body {"httpStatus":404,"errorType":"NotFound","message":"Device does not exist!"}