使用从yahoo finance下载的python pandas dataframe(d),其格式为:
日期,开盘价,最高价,最低价,收盘价,成交量,收盘价 2015-01-13,1.290,1.290,1.200,1.225,421600,1.225
我可以成功使用这样的talib函数:
talib.abstract.EMA(d, timeperiod=8, price='Close')
talib.abstract.SMA(d, timeperiod=13, price='Close')
talib.abstract.RSI(d, timeperiod=25, price='Close')
从文档(http://mrjbq7.github.io/ta-lib/func_groups/momentum_indicators.html)中,他们采用以下形式:
real = XYZ(close, timeperiod=14)
但是当尝试使用形式为:
的talib函数时real = XYZ(high, low, close, timeperiod=14) such as the ADX I cant figure out the correct syntax needed.
我试过这个:
talib.abstract.ADX(d,high='High',low='Low',close='Close',Timeperiod=10)
异常:input_arrays参数缺少必需的数据键:高,低,关闭
和此:
talib.abstract.ADX(high=d.High,low=d.Low,close=d.Close,Timeperiod=10)
TypeError: only length-1 arrays can be converted to Python scalars
有关此参数所需参数的正确格式的任何想法以及具有多个输入参数的其他talib python包装器吗?
任何有关正确格式的帮助都将不胜感激!!! 提前致谢
答案 0 :(得分:1)
在某些情况下取决于阵列的形状。如果您真的需要紧急功能,请从库中调用它:
import talib
import numpy as np
h = np.array(high)
l = np.array(low)
c = np.array(close)
output_atr = np.array(talib.ATR(h,l,c,14))
这很好用。