3

我在q中有以下功能:

{
    raze {[x]
        update PnlTime:x from
            flip ?[getPnl[`date`status!(2013.05.14;`traded)];
            ();();`date`Id`market`pnl!(`date;`Id;`market;x)]
    } each `pnl_0s`pnl_1s`pnl_5s
}

在这里,我从函数中检索特定日期的数据并通过加入等getPnl创建新列。如何修改此查询以传递时间范围?pnlpnl_0s(firstdate;lastdate)

4

1 回答 1

3

最佳答案取决于您的餐桌。如果这是一个显示日期的表格,我想最好的地方是在 getPnl 函数内。大概它正在做类似的事情:

select from aTable where date=x,....

用。。。来代替:

select from aTable where date within (d1;d2),...

对于显示日期的表格,当 d1==d2 时,“日期=”与“日期范围内”没有匹配。

如果不幸的是您无法访问此功能,则需要分别执行另一个操作,如下所示:

说 d1=2014.01.01, d2=2014.02.14

raze {[x] getPnl[`date`status!(x;`traded)]} each d1,d1+til 1+d2-d1

最后一点具有创建从 d1 到 d2(包括)日期列表的魔力

于 2014-02-14T09:55:05.850 回答