wj中如何按时间加权

wj中标签列是时间, 第二个参数是-10:-1,意味着最近的10秒内做wj,但窗口里数据量是不一定的,我如何能做到窗口内的数据按时间顺序加权,比如只有加权系数是1:10,窗口内第二秒没有数据点,那么总共9个数据,加权系数为(1,3,4,5,6,7,8,9,10)?

请先 登录 后评论

最佳答案 2022-02-22 10:46

你好,可以如下写;自定义聚合函数时间列传入函数中,调用wavg,时间相差作为权重进行计算

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);
t1;
defg wg(time,price){
return wavg(price,time-min(time)+1)
}
wj(t1, t2, -5s:0s, <wg(time,bid)>, `sym`time);
请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,971 浏览
  • Coco 提出于 2022-02-21 17:30

相似问题