码:

   def macd(prices):
        print "Running MACD"
        prices = np.asarray(prices)
        print prices
        macd, macdsignal, macdhist = MACD(prices, fastperiod=12, slowperiod=26, signalperiod=9)
        print "MACD "+macd


说明:

我正在尝试对包含收盘价的Python列表进行一些分析。

我知道在将列表交给TA-Lib之前,我必须先对其进行转换,因为我已经看到了所有示例在做的事情。

但是,这是由only length-1 arrays can be converted to Python scalars满足的

最佳答案

我正在像这样导入talib模块,就像在TA-Libs website中一样:

from talib.abstract import MACD


但是,这在社区中是不满意的,今天我发现了原因。一个模块名称空间破坏了其他模块名称空间,从而导致错误。这很好放置here

所以我只是干净地导入了talib:

import talib


起作用的最终代码是:

def macd(prices):
        print "Running MACD"
        prices = np.array(prices, dtype=float)
        print prices
        macd, macdsignal, macdhist = talib.MACD(prices, fastperiod=12, slowperiod=26, signalperiod=9)
        print "MACD "+macd

10-07 20:13