老师请帮我写一个streamEngineParser的小例子

前提是看过了文档中的文字 和例子仍不太懂

想实现以下例子:

流程为 quotes表-> streamEngineParser -> result表

quotes字段  datetime price  其中datetime可以按每0.5秒注入一条记录

result 中我想计算列字段f1 f2 f3           

f1是状态因子 为 price-prev(price)   

f2 是聚合值 在窗口长度为3秒的窗口中取first(price)     

f3为状态因子 为f2-prev(f2)

实现逻辑想写在一个自定义函数内 ,不要直接写在参数metrcis后面

请老师帮忙实现,谢谢!

请先 登录 后评论

1 个回答

Polly

感觉您这个不需要 parser,直接用响应式引擎就可以了

n = 1000
datetime = 2023.08.01 09:00:00.00.000 + 500 * 1..n
sym = 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`factor2`factor3, [SYMBOL, TIMESTAMP, DOUBLE, DOUBLE, DOUBLE])
@state
def myMetricsFunc(datetime, price){
f1 = price-prev(price)  
f2 =  tmfirst(datetime, price, 3s)
f3 = f2-prev(f2)
return f1,f2,f3
}
engine2 = createReactiveStateEngine(name="engine2", metrics=< [datetime, myMetricsFunc(datetime, price)] >, dummyTable=input, outputTable=output2, keyColumn=`sym)
engine2.append!(quotes)

请先 登录 后评论
  • 1 关注
  • 0 收藏,480 浏览
  • ddbuserex 提出于 2023-08-07 09:26

相似问题