2016-08-04 3 views
1

Code:TA-Lib Python Wrapper nur Länge-1-Arrays Fehler

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 

Erläuterung:

Im Versuch, eine Analyse auf einer Python-Liste zu laufen Schlusskurse enthalten.

Ich verstehe, dass ich die Liste konvertieren muss, bevor ich sie an TA-Lib übergebe, da ich alle Beispiele gesehen habe, die das tun.

Jedoch wird dies durch eine only length-1 arrays can be converted to Python scalars traf

Antwort

1

ich die talib Modul wie so importieren, wie in TA-Libs website:

from talib.abstract import MACD 

Dies ist jedoch bei der in der Gemeinde und heute verpönt fand ich heraus, Warum. Ein Modul-Namespace überflutete den Namespace der anderen Module, was zu dem Fehler führte. Dies ist gut gesetzt here.

Also einfach importiert talib ich sauber:

import talib 

Der endgültige Code, der funktioniert, ist:

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 
+0

oh Junge, ich hatte das gleiche Problem. Vielleicht sollten sie ihre Beispiele ändern, oder bekomme ich hier etwas falsch? :) hast du meinen Abend gerettet .. – DaniPaniz