【问题标题】:How do I calculate a rolling 30 day window in KDB?如何计算 KDB 中的 30 天滚动窗口?
【发布时间】:2021-07-24 06:58:25
【问题描述】:

我有一个表格的键控表:

t                            | ar            av     mr            mv   
-----------------------------| ----------------------------------------
2016.01.04D09:51:00.000000000| -0.001061315  513    -0.01507338   576  
2016.01.04D11:37:00.000000000| -0.0004846135 618    -0.001100514  583  
2016.01.04D12:04:00.000000000| -0.0009708739 1619   -0.001653045  1000 

我想计算 30 天滚动相关ar cor mr。

我一直在尝试使用 wj 创建自联接,但我无处可去。是这样的吗?

【问题讨论】:

    标签: kdb


    【解决方案1】:

    你可以这样做:

    /-Function which creates the rolling windows (w:window size, s:list)
    q)f:{[w;s] (w-1)_({ 1_x,y }\[w#0;s])}
    
    /-e.g.
    q)f[3;til 5]
    0 1 2
    1 2 3
    2 3 4
    
    /-Apply cor to each 30-day rolling window as below:
    q)ar:exec ar from t;
    q)mr:exec mr from t;
    
    q)cor'[f[30;ar]; f[30; mr]]
    

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多