Seitdem ich angefangen habe, Python-Lösungen für den automatisierten Handel zu suchen, habe ich mehrere Dutzend verschiedene Möglichkeiten gefunden – aber bisher scheint es keine Einheitslösung für verschiedene Broker zu geben.
Es sieht so aus, als ob Interactive Brokers hier der größte Akteur ist. Einige Wiederverkäufer nutzen die IB-Infrastruktur.
FXCM hat eine REST-API, die vielversprechend aussieht. Aber würde ich gerne etwas lernen, das erfordert, bei FXCM zu bleiben?
Es gibt Dutzende von Frameworks, APIs, Wrapper und sie alle haben unterschiedliche Vor- und Nachteile. Einer der größten Nachteile – zumindest in meinen Augen – ist, wenn man sich für etwas entscheidet, das nur bei Backtests funktioniert.
Einige Lösungen haben bereits den Status “ eingestellt „. Ja, sie haben vielleicht eine große und aktive Community, aber würden Sie Ihre Zeit investieren, um etwas zu lernen, das bereits eingestellt ist?
Von Tony Robbins habe ich gelernt, dass „Erfolg Hinweise gibt“. Also versuche ich, etwas zu finden, das meinen Bedürfnissen entspricht.
In Metatrader4 und Metatrader5 habe ich eine grafische Benutzeroberfläche, ich habe eine integrierte IDE, einen kompletten Satz vorcodierter Indikatoren, einen Strategietester, eine Sprache, die genau für das entwickelt wurde, was ich tun möchte, einschließlich einer Referenz- und kontextbasierten Hilfedatei.
Für Python ist das Nächste, was ich bisher gesehen habe, die Anaconda-Distribution.
Die deutsche Wikipedia-Seite für Anaconda nennt sie eine „Freemium Open Source Distribution für die Programmiersprachen Python und R. Sie enthält die IDE (integrierte Entwicklungsumgebung Spyder und das webbasierte Jupyter-System, das in jedem Webbrowser läuft.
Da Anaconda für Windows, Linux und Mac verfügbar ist, ist es etwas, das für fast jeden Benutzer funktionieren sollte.
Es gibt auch einen integrierten Paketmanager namens conda. Also schätze ich, dass ich Anaconda benutzen werde, zumindest für die nächsten Wochen.
Beide Udemy-Kurse, die ich gekauft habe, nutzen auch diese Umgebung, also denke ich, dass dies die richtige Wahl ist.
Also habe ich nach einer Python-Handelslösung gesucht, die Anaconda verwendet und hier ist, was ich gefunden habe:
Okay, das habe ich schon mal gemacht. Die Dokumentation sieht gut aus, also versuchen wir, die Umgebung zum Laufen zu bringen.
Um das zu tun, muss ich die yml-Datei herunterladen, eine Anaconda-Befehlszeile öffnen und den Befehl eingeben, um alles einzurichten. In meinem Fall befindet sich die Datei in einem neuen Ordner namens fxcm auf meinem e: Laufwerk.
Jetzt – alles scheitert. Es gibt einige Abhängigkeiten, die nicht gelöst werden können.
Okay, lass uns herausfinden, wie wir dieses Problem lösen können.
Zuerst müssen wir conda mit dem folgenden Befehl aktualisieren:
conda update conda
Nachdem wir die Vorgehensweise bestätigt haben, lädt conda einige Dateien herunter.
Jetzt wurde die Version von 4.5.12 auf 4.6.2 aktualisiert.
Mit dem folgenden Befehl können wir alle verfügbaren Python-Versionen abrufen:
conda search „^python$“
Nun möchte ich eine Umgebung namens FXCMAPI mit der Version 3.7.2 erstellen, also führe ich den folgenden Befehl aus:
conda create -n FXCMAPI python=3.7.2 anaconda
Hier ist die Ausgabe:
Nachdem ich meine Wahl bestätigt habe, werden mehrere Dateien heruntergeladen und installiert:
Sobald ich fertig bin, kann ich meine neue Umgebung mit dem folgenden Befehl aktivieren:
activate FXCMAPI
Jetzt ändert sich meine Eingabeaufforderung im Anaconda Prompt Fenster und zeigt mir die neue Umgebung in runden Klammern.
Okay, also habe ich jetzt meine neue Umgebung für die Verwendung der FXCMAPI erstellt, in den nächsten Schritten müssen wir herausfinden, wie man sie tatsächlich verwendet.
Zum jetzigen Zeitpunkt kann ich mir nicht vorstellen, diese ganze Python-Handelssache auf das Niveau zu bringen, auf dem ich mit MQL4 und MQL5 bin.
Im Moment führe ich einen mehrstufigen Backtest durch – 100 Threads mit einer Risikoeinstellung von 20 und einer kontostandsbezogenen Losgröße auf 16 Kernen für 10 Jahre in Metatrader5 – mit einer Zufallseingabe.
Und ich mache es für über ein Dutzend Währungspaare. Wenn Sie interessiert sind, können Sie sich das Video zu 200 Jahren Backtesting auf einem meiner Youtube-Kanäle ansehen (schauen Sie einfach nach „robottradingsystem 200 years“ auf YouTube).
So etwas habe ich in Python noch nie gesehen, aber ich werde es weiter versuchen, denn ich denke, dass Python-Handel eine gute Lösung ist – wenn ich das tun kann, was ich bereits in MQL4 und MQL5 getan habe…