reactiveStateEngine中的自定义metrics使用可变参数

比如,新建一个自定义函数,abc,这个函数使用了一个可变参数,mutable t,参数 t 是一个因子,随时会变化

如果要在,reactiveStateEngine中使用这个自定义函数,abc,应该怎么使用,以下方式提示错误:

rse = createReactiveStateEngine(name=`test, metrics=[<abc{r}>], dummyTable=pt, outputTable=results, keyColumn=`sym)

除了再用一个引擎还有什么其他办法吗?

请先 登录 后评论

1 个回答

Feng Gao

可以自定义一个流表,用share table的方式存入这个变量,使用的时候直接从流表中取出数据就可以了

def sum_diff(x, y){
return (x-y)/(x+y)
}
share streamTable(1:0, `sym`time`price, [STRING,DATETIME,DOUBLE]) as tickStream
share streamTable(1:0, `sym`time`price, [STRING,DATETIME,DOUBLE]) as tickStream1
result = table(1000:0, `sym`time`factor1, [STRING,DATETIME,DOUBLE])

def factor2(price,mutable tickStream1){
	select * from tickStream1;
	factor1 = ema(1000 * sum_diff(ema(price, 20), ema(price, 40)),10) -  ema(1000 * sum_diff(ema(price, 20), ema(price, 40)), 20)
	factor1 = factor1 + exec max(price) from tickStream1
	return factor1
}

rse = createReactiveStateEngine(name="reactiveDemo", metrics =[<time>, <factor2(price, tickStream1) as `factor1>], dummyTable=tickStream, outputTable=result, keyColumn="sym", filter=<sym in ["000001.SH", "000002.SH"]>)
subscribeTable(tableName=`tickStream, actionName="factors", handler=tableInsert{rse})
请先 登录 后评论
  • 1 关注
  • 0 收藏,1108 浏览
  • dongmange 提出于 2021-10-29 17:42

相似问题