为什么使用 DolphinDB udf 时反应状态引擎中的移动平均线为空?
Why the moving average in the reactive state engine is empty using a DolphinDB udf?
我在代码中定义了函数 get_ma3
。但是,调用 sma(c, 3) 时,输出为空。我不确定为什么会这样...
def get_posneg(o, c){return iif(c > o, "pos", iif(c < o, "neg", "doji"))}
def get_ma3(c){return (sma(c, 3))}
ohlc_rse = createReactiveStateEngine(name = "ohlc_rse", metrics=[<datetime>, <get_posneg(o, c)>, <get_ma3(c)>], dummyTable=ohlc, outputTable=res_ohlc, keyColumn="symbol") subscribeTable(tableName = `ohlc, actionName="ohlc_action", handler = tableInsert{ohlc_rse})
您需要在DolphinDB 中定义的函数前添加@state。 User-defined 状态函数在反应状态引擎中可用。注意这些要点:
- 定义函数前,添加@state表示函数是udf
- 在udf中只能使用赋值和return语句,return语句必须是最后一个语句并且可以return多个值
- 使用
iif
函数表达if...else
逻辑
我在代码中定义了函数 get_ma3
。但是,调用 sma(c, 3) 时,输出为空。我不确定为什么会这样...
def get_posneg(o, c){return iif(c > o, "pos", iif(c < o, "neg", "doji"))}
def get_ma3(c){return (sma(c, 3))}
ohlc_rse = createReactiveStateEngine(name = "ohlc_rse", metrics=[<datetime>, <get_posneg(o, c)>, <get_ma3(c)>], dummyTable=ohlc, outputTable=res_ohlc, keyColumn="symbol") subscribeTable(tableName = `ohlc, actionName="ohlc_action", handler = tableInsert{ohlc_rse})
您需要在DolphinDB 中定义的函数前添加@state。 User-defined 状态函数在反应状态引擎中可用。注意这些要点:
- 定义函数前,添加@state表示函数是udf
- 在udf中只能使用赋值和return语句,return语句必须是最后一个语句并且可以return多个值
- 使用
iif
函数表达if...else
逻辑