按照时间值确定窗口,第一个例子的时间值是整数 1 1 3 5 8 15 15 20, 元素值为 5 2 4 1 2 8 9 10 那么 第一个元素对应时间为 1,确定的窗口为 (-2, 1], 从第一个元素向前看,窗口只包含元素 5 第二个元素对应时间为 1,确定的窗口为 (-2, 1],从第二个元素向前看,窗口包含元素 5 2 第三个元素对应时间为 3,确定的窗口...
回答于 2024-01-12 10:39
可以分两部实现,参考脚本如下 c = cumsum L;c - ffill(prev iif(1000>abs c,c,00)).nullFill(0);
回答于 2023-12-11 09:36
循环体内使用了 undef 所以造成解析异常,因为 go 在 for 循环中不起效,且变量可以重复赋值,所以可以把这句语句删除,或者挪到循环体外。具体说明可以参考 https://ask.dolphindb.net/question/77
回答于 2023-12-08 17:07
不可以,因为流表需要持久化,一部分数据会持久化到盘上。这时候流表里的数据是不全的,除非: 1.你的内存足够大 2.不开持久化流表
回答于 2023-12-08 11:27
您好,因为内部涉及到窗口计算,属于是依赖前值的状态函数,因此如果数据不一样,尤其是浮点数的场景,很可能会因为精度误差造成结果不同,尤其在计算 alpha 因子可能会涉及到一些 rank 的操作,放大浮点的误差值。所以您两次跑不同数据,结果可能会有波动。
回答于 2023-12-05 16:33
这种形式满足您的需求吗? m1 = rand(10, 20) $ 4:5m2 = rand(1.0, 20) $ 4:5def f(m1, m2, i):corr(m1.row(i), m2.row(i))each(f{m1, m2}, til(m1.rows()))
回答于 2023-12-05 14:56
你给的这个 sample 只有两条数据,右表直接触发左表 join, 左表匹配不到右表时间在它前面的数据,所以是没有结果的。但是引擎定义这块是正常的,我先写一条右表 280 再写一条左表 290,然后再写一条右表 291 可以正常触发 280 和 290 的 join 输出左右表的计算结果。asof join 是左表每一条去匹配他时间点之前最近的右表的...
回答于 2023-12-01 18:06