Python Trading – 9 – So berechnen Sie einen Moving Average mit PYTI

In den letzten Teilen haben wir bereits eine Verbindung mit der FXCM-API eröffnet, wir haben Jupyter-Notebooks verwendet und eine Handelsumgebung geschaffen, um Kerzendaten zu erhalten und mit Matplotlib zu plotten. Auch im letzten Teil haben wir bereits unsere erste Position eröffnet.

 

Was jetzt? Wir müssen herausfinden, wie man eine Strategie tatsächlich nutzt. Bisher bin ich nicht erfahren genug, um ein solches zu erstellen, also habe ich nach Beispielen gesucht, die funktionieren könnten.

 

Es gibt eine von Quantnews, die so aussieht, als könnte ich es tun, also werde ich diese versuchen.

 

Es verwendet ein Modul namens pyti und das als Bibliothek beschrieben wird, die Berechnungen für technische Indikatoren liefert.

 

Wir sollten in der Lage sein, damit die Werte für einen exponentiellen gleitenden Durchschnitt zu berechnen, also lassen Sie uns herausfinden, wie man das macht.

 

Ich möchte auch die Spyder IDE verwenden, die mit Anaconda ausgeliefert wird, also versuchen wir, es zum Laufen zu bringen.

 

Wenn ich den Anaconda Navigator starte, ist Spyder eine der Optionen, die ich wählen kann, also klicke ich auf die Schaltfläche Start.

Ich möchte prüfen, ob die Verbindung hergestellt werden kann und ich kann die Module importieren, also erstelle ich eine Kurztestdatei und führe sie aus. Es sieht so aus, als hätte ich ein Problem mit der Umwelt.

 

Und die Sprache ist Deutsch, also muss ich einen Weg finden, das anzupassen. Ein Tutorial ist verfügbar, also müssen wir auf Tools, Einstellungen, Erweitert klicken und dort können wir Englisch auswählen.

Die Umgebungseinstellungen können innerhalb des Anaconda Navigator-Fensters angepasst werden. Ich klicke auf Umgebungen und wähle FXCMAPi.

 

Ein Dreieckssymbol zeigt an, dass die Umgebung erfolgreich aktiviert wurde.

Danach führe ich meinen Testcode erneut aus und Spyder zeigt die verfügbaren Symbole in der Konsolenausgabe an. Es dauert allerdings eine Weile…

Erstellen wir also eine neue Datei für die Quantnews-Strategie, indem wir auf Datei – Neu in Spyder klicken. Danach speichere ich es als QuantNewsStrategy.py. Die Datei zeigt ein paar Zeilen mit einem Erstellungsdatum und einer Creator-Eigenschaft.

Nun beginne ich mit den Importanweisungen aus dem Quantnews-Artikel. Sofort erhalte ich einen Fehler. Es besagt, dass die Syntax ungültig ist.

Es sieht so aus, als ob %matplotlib inline für das Rendern innerhalb von Jupyter-Notebooks verwendet wird, also lassen Sie es uns vorerst auskommentieren. Während ich versuche, den Rest des Codes auszuführen, erhalte ich einen weiteren Fehler. Jetzt steht da, dass das Pyti-Modul fehlt.

Ich versuche, das Modul mit conda zu installieren, aber es sieht so aus, als wäre es nicht verfügbar.

Versuchen wir also die Installation mit pip. Diesmal scheint es zu funktionieren.

Jetzt ist das Modul verfügbar. Die nächsten Zeilen des Tutorials kommen mir bekannt vor. Wir müssen eine Verbindung herstellen, indem wir unsere Konfigurationsdatei verwenden, die wir in den Teilen zuvor erstellt haben. Danach bekommen wir Kerzen, in unserem Fall für die Tagescharts des Währungspaares AUD/CAD. In diesem Beispiel fragen wir die Daten für 2018 ab.

Um den Dataframe anzuzeigen, müssen Sie den Variablen-Explorer in Spyder öffnen und auf den Dataframe doppelklicken.

So weit, so gut. Eigentlich muss ich herausfinden, wie dieses Pyti-Modul funktioniert. Gemäß dem Quantnews-Tutorial sollte ich in der Lage sein, einen Wert für die Anzahl der Kerzen zu definieren, die mein exponentieller gleitender Durchschnitt verwenden wird. Ich werde in diesem Beispiel 10 Kerzen verwenden.

Danach füge ich dem Datenrahmen eine weitere Zeile hinzu, die mit “EMA 10 Kerzen” beschriftet ist und den aktuellen Wert für den exponentiellen gleitenden Durchschnitt der letzten 10 Kerzen anzeigt.

 

Das kann mit dem folgenden Code gemacht werden.

Wenn ich nun meinen Datenrahmen im Variablen-Explorer öffne, sehe ich tatsächlich die gewünschten Werte – für die meisten Spalten. Wir haben keine Werte für die Kerzen 1-9, da wir nur dann eine EMA für zehn Kerzen berechnen können, wenn wir mindestens zehn Kerzen in der Geschichte haben.

Okay, so weit, so gut. Inzwischen haben wir Spyder und Pyti in Betrieb genommen, wir haben historische Daten von FXCM erhalten und wir haben die Werte für einen exponentiellen gleitenden Durchschnitt basierend auf 10 Kerzen berechnet.

 

Im Moment können wir die Daten der Kerzen und die Daten der UKORE vergleichen, um Entscheidungen zu treffen, was in der Vergangenheit hätte funktionieren können, aber wir müssen einen Weg finden, diese Art von Logik tatsächlich für den Live-Handel zu nutzen…