这个 TA-Lib 函数调用有什么问题?

问题描述

我正在尝试调用 TA-lib 的 ADX 函数,根据其文档,该函数具有以下参数:

ADX(high,low,close[,timeperiod=?])

    Average Directional Movement Index (Momentum Indicators)

    Inputs:
        prices: ['high','low','close']
    Parameters:
        timeperiod: 14
    Outputs:
        real

我是这样称呼它的:

from talib import abstract


params = {'timeperiod': 14}

indicator_fn = abstract.Function('ADX')

val = indicator_fn(0.5,0.2,0.3,**params)

print(val)

但它失败了:

Traceback (most recent call last):
  File "/home/stark/Work/test/test.py",line 11,in <module>
    val = indicator_fn(0.5,**params)
  File "talib/_abstract.pxi",line 398,in talib._ta_lib.Function.__call__
  File "talib/_abstract.pxi",line 277,in talib._ta_lib.Function.set_function_args
  File "talib/_abstract.pxi",line 462,in talib._ta_lib.Function.__check_opt_input_value
TypeError: Invalid parameter value for timeperiod (expected int,got float)

这对我来说似乎没有意义。 timeperiod 显然是 int,不是吗?

如果我尝试这样称呼它:

val = indicator_fn([0.5,0.3],timeperiod=14)

它失败了 TypeError: Invalid parameter value for timeperiod (expected int,got list)

如果我尝试

val = indicator_fn(prices=[0.5,timeperiod=14)

它失败了 KeyError: 0.5

如果我尝试:

val = indicator_fn(prices={'high': 0.5,'low': 0.2,'close': 0.3},timeperiod=14)

它失败了 TypeError: unhashable type: 'dict'

非常感谢这里的任何见解!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)