对于多因子并行解析成多个引擎的情况,内部会按照因子顺序进行解析,第一个引擎计算第一个因子(计算时会将第二个引擎需要用到的计算字段也输出),然后到第二个引擎再计算第二个因子。因此本质上还是串行的,时间也是叠加的。
回答于 2023-08-07 14:07
如果被拆分成时序聚合引擎,则触发规则会和时序聚合引擎一致,即下一个窗口第一条数据到来时触发计算。是否会被识别为时序聚合引擎是根据 rolling 函数标识的,引擎的 step 对应 rolling 的 step 参数。
回答于 2023-08-07 13:59
感觉您这个不需要 parser,直接用响应式引擎就可以了 n = 1000datetime = 2023.08.01 09:00:00.00.000 + 500 * 1..nsym = rand(`A`B, n)price = rand(100.0, n)quotes=table(datetime, sym, price) input = table(1:0, `datetime`sym`price, [TIMESTAMP, SYMBOL, DOUBLE])output2 = table(1:0, `sym`datetime`factor1`fac...
回答于 2023-08-07 13:52
我尝试用 group by 实现,行做差的逻辑我定义了一个自定义函数: order_book_id = `a`b`a`b`c`a`c`a`b date = take(2022.01.01, 9) Q = 1 0 1 0 1 1 1 1 0 revenue = 1 3 2 5 9 2 1 6 2 t = table(order_book_id, date, Q, revenue) defg f(revenue){ return last(revenue) - last(prev(revenue))} // 或者 defg f(revenu...
回答于 2023-07-26 13:33
我尝试优化了以下函数,测试后发现性能可以提升: def halfLifeW(half_life,window){i Lambda = pow(0.5,1\half_life) W = accumulate(mul{Lambda}, window-1, Lambda) return reverse(W) } def cneBeta(stock_ret,index_ret){ stock_ret_list = matrix(movingWindowData(stock_ret, 252, fixed=true)) index_r...
回答于 2023-07-25 18:19
可以用 reduce 替代: sql(select=reduce(join, [sqlCol(`sym), sqlCol(`date)], fields_list), from=t).eval()
回答于 2023-07-24 10:07
https://www.dolphindb.cn/cn/help/200/SystemManagement/UserAccessControl.html?highlight=%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86#id6 可以参考这个链接,因为要看到库的信息,所以应该需要 DB_MANAGE 权限,DB_READ 只是表层面的
回答于 2023-07-12 14:53
s.run("createUser('John', 'Qb0507#$')")print(s.run("getUserList()"))
回答于 2023-07-12 14:47
VALUE 是值分区,默认自动拓展,因此您的脚本实际是按天分区的。可以参考以下脚本,按年分区: yearRange = np.array(pd.date_range(start='2011-01-01', periods=10, freq='12M'), dtype="datetime64[M]")db = s.database(dbName='mydb', partitionType=keys.RANGE, partitions=yearRange, dbPath="dfs://testdb")
回答于 2023-07-11 16:25