3

代码:

   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

4

1 回答 1

8

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

from talib.abstract import MACD

然而,这在社区中是不受欢迎的,今天我找到了原因。一个模块名称空间正在破坏其他模块名称空间,从而导致错误。这很好放在这里

所以我只是干净地导入了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
于 2016-08-04T21:58:50.063 回答