Python im algorithmischen Handel - Seite 7

 

MetaTrader 5 für Python-Setup



MetaTrader 5 für Python-Setup

Das Video-Tutorial behandelt den Installationsprozess von MetaTrader 5 für Python, der die Eingabe von „pip install MetaTrader5“ in der Anaconda-Eingabeaufforderung und die Überprüfung der Installation durch Ausführen der Funktion MT5Initialize() aus dem MT5-Paket in Python umfasst.

 

Erstellen einer Webanwendung mit Python und Metatrader 5 mit Streamlit




Erstellen einer Webanwendung mit Python und Metatrader 5 mit Streamlit

Dieses Video zeigt, wie Sie mit Python, Streamlit und Metatrader 5 ein Echtzeit-Diagramm erstellen, das Wechselkurse anzeigt und Zoom- und Zeitrahmenoptionen bietet. Der Moderator verwendet Pandas zum Importieren von Datenrahmen und Plotly zum Plotten von Daten und fügt Funktionen zur Berechnung gleitender Durchschnitte und des Relative Strength Index hinzu. Das Video enthält Threading zum Zoomen und Tastenkombinationen für Interaktivität. Der Moderator schließt das Video ab, indem er die verschiedenen Funktionen des Codes erklärt und Funktionen zum Zeichnen von Objekten auf Diagrammen hinzufügt und den Code in der Beschreibung der App teilt. Das Tutorial bietet Anfängern eine einfache Einführung in die Erstellung von Echtzeit-Finanzdiagrammen.

  • 00:00:00 In diesem Abschnitt zeigt der Ersteller des Videos ein Echtzeit-Chart, das mit MetaTrader 5, Python und Streamlit erstellt wurde. Das Diagramm zeigt Wechselkurse an und bietet Funktionen zum Vergrößern, Verkleinern und Wechseln zwischen Zeitrahmen. Der Python-Code verwendet die Bibliotheken von Streamlit und MetaTrader 5, zusammen mit Pandas zum Importieren von Datenrahmen und Plotly für die grafische Darstellung. Das Diagramm enthält Funktionen zur Berechnung des gleitenden Durchschnitts und des relativen Stärkeindex mit einstellbaren Parametern für Benutzer. Der Ersteller enthält auch Threading, um das Zoomen und Tastaturkürzel für die Benutzerinteraktivität zu handhaben. Insgesamt bietet das Tutorial eine anfängerfreundliche Einführung in die Verwendung dieser Bibliotheken zum Erstellen von Echtzeit-Finanzdiagrammen.

  • 00:05:00 Wenn Sie eine Webanwendung mit Python und MetaTrader 5 mit Streamlit erstellen möchten, müssen Sie bestimmte Funktionen aufrufen, um die erforderlichen Daten bereitzustellen. Um die Symbole zu erhalten, können Sie die „Metatrader“-Funktion verwenden, um ihre Namen zu extrahieren und sie dann in einem Wörterbuchformat zurückzugeben. Mit der Set-Package-Configuration-Funktion können Sie das Layout der Webanwendung anpassen, wie z. B. die Fenstergröße und den Titel. Um den lsi (Relative Strength Index) zu berechnen, müssen Sie die Funktion außerdem mit den erforderlichen Daten und Parametern versorgen, wie z. B. dem Datenrahmen und dem RSI-Wert, die dann geplottet werden können.

  • 00:10:00 In diesem Abschnitt erklärt der Referent, wie er globale Variablen erstellt und die LSI-Berechnung zum Datenrahmen hinzugefügt und die Kurve angehängt hat, damit die RSI-Werte im Diagramm angezeigt werden können. Er zeigt auch, wie er die Endlosschleifenfunktion erstellt hat, die das Diagramm jede Sekunde aktualisiert, indem er den Zeitrahmen, das Symbol, die Balken, den gleitenden Durchschnitt und die LSI-Werte verwendet. Der Zeitrahmen wird aus einem Wörterbuch abgerufen und die Balken werden mithilfe der Funktion mt5.copy_rates_from_pos() abgerufen. Das Diagramm ist kein Bild, sondern eine Animation, die ständig jede Sekunde aktualisiert wird.

  • 00:15:00 In diesem Abschnitt erklärt der Moderator, wie man den Datenrahmen der Balken umwandelt, um ihn später zu reduzieren, und wie man die Zeit zur besseren Lesbarkeit in Sekunden umrechnet. Der Abschnitt behandelt auch die Verwendung eines Streudiagramms und die Berechnung des gleitenden Durchschnitts, um ihn im Diagramm darzustellen. Der Präsentator aktualisiert das Abbildungslayout mit einem festen Bereich und einer Papierfarbe, um das Diagramm an Ort und Stelle zu fixieren und die Daten dem Benutzer besser zu präsentieren.

  • 00:20:00 In diesem Abschnitt erklärt der Referent, wie sie Anpassungen an der Größe des Fensters und der x-Achse vorgenommen haben, um Lücken im Tageschart zu beseitigen. Sie fügen auch eine horizontale Linie des letzten Preises mit einem einfachen hinzu
    Codezeile. Der Sprecher demonstriert dann die On-Press-Key-Funktion, die das Diagramm verkleinert oder vergrößert, wenn der Benutzer die Minus- oder Plus-Taste drückt. Der Code enthält mehrere Funktionen und Platzhalter, um die Anwendung einfach und leicht zu navigieren.

  • 00:25:00 In diesem Abschnitt erklärt der Referent den Code zum Initialisieren der Verbindung zwischen Metatrader5 und dem Chart und die Verwendung eines Tastatur-Listener-Threads zum Anpassen der Größe des Charts mit den Plus- und Minustasten. Sie besprechen auch die Verwendung der `st.title`-Funktion und die Erstellung von zwei Spalten für die Schieberegler und Optionen durch die `st.connect`-Funktion. Der Referent erläutert die Verwendung eines Platzhalters für Spalte eins und die Auswahl eines gleitenden Durchschnitts durch die `sd.selectbox`-Funktion. Sie erwähnen auch die Verfügbarkeit von Optionen zur Auswahl des Aktiensymbols oder -paars sowie den Zeitrahmen.

  • 00:30:00 In diesem Abschnitt schließt der YouTuber die Demonstration zum Erstellen einer Webanwendung mit Python und MetaTrader 5 mit Streamlit ab. Sie erklärten, dass die App Informationen über Handelssignale anzeigte und Funktionen hinzufügte, um Objekte auf den Charts zu zeichnen. Sie wiesen auch auf die verschiedenen Funktionen und ihre Zwecke im Code hin und endeten damit, den Code in der Beschreibung der App zu teilen. Der YouTuber bedankte sich bei seinen Zuschauern für das Ansehen und schloss das Video.
 

PYTHON SYNTHETIC INDEX TRADING BOT!! - ERHALTEN VON KERZENDATEN VON MetaTrader 5



PYTHON SYNTHETIC INDEX TRADING BOT!! - ERHALTEN VON KERZENDATEN VON MetaTrader 5

Das Video-Tutorial erklärt, wie man einen Python-Trading-Bot erstellt, der Kerzendaten von MetaTrader 5 (MT5) empfängt. Der Moderator behandelt den Prozess Schritt für Schritt, einschließlich der Konfiguration von MT5, der Erstellung einer Klasse für den Bot, der Initialisierung von Variablen, der Erstellung von Threads und der Definition der Handelsstrategie mit einfachen Take-Profit- und Stop-Loss-Parametern. Der Moderator gibt auch Anweisungen zum Umgang mit Fehlern und zum Debuggen des Codes und schließt das Video ab, indem er die Einfachheit des Prozesses hervorhebt und einen bevorstehenden Kurs zu diesem Thema erwähnt. Das Tutorial ist aufschlussreich und anfängerfreundlich, was es zu einer großartigen Ressource für alle macht, die daran interessiert sind, einen Python-Trading-Bot zu erstellen.

  • 00:00:00 In diesem Abschnitt des Videos zeigt der Moderator, wie man mit Python einen Index-Trading-Bot erstellt, indem er die dazu erforderlichen Schritte erklärt. Der erste Schritt besteht darin, die MetaTrader 5-Plattform zu konfigurieren, indem der algorithmische Handel aktiviert und Webanfragen für den lokalen Host zugelassen werden. Danach öffnet der Präsentator Visual Studio Code und beginnt mit dem Codieren, indem er eine Klasse für den Bot mit einem Konstruktor erstellt, der Parameter für die Loskante, den Zeitraum und den Markt erhält. Der Bot arbeitet mit Threads, die Informationen über ein Wörterbuch gemeinsam nutzen, sodass der Präsentator eine Liste von Threads und ein Wörterbuch zum Speichern der gemeinsam genutzten Daten initialisiert. Schließlich wird ein Ereignis erstellt, um die Threads zu stoppen. Weitere Informationen und Erläuterungen stellt der Referent im GitHub-Repository bereit.

  • 00:05:00 In diesem Abschnitt initialisiert der Präsentator alle notwendigen Elemente wie Klassenvariablen, Konstanten, Warteschlangen, Wörterbücher und Threads, damit der Trading-Bot Daten zwischen Threads austauschen kann. Der Präsentator deklariert auch Methoden für den Bot, um die Threads zu starten und zu beenden. Die Kill-Thread-Funktion setzt den Wert der Peel-Variablen auf „kill“ und ruft dann die Join-Funktion auf, um die Threads sicher zu stoppen. Schließlich erstellt der Präsentator eine Wartefunktion, die es dem Benutzer ermöglicht, den Bot durch Drücken der Eingabetaste zu stoppen.

  • 00:10:00 In diesem Abschnitt des Videos erklärt der Sprecher, dass er ein Python-Programm erstellen wird, um Kerzendaten von MetaTrader 5 mithilfe von Sockets zu empfangen. Sie beginnen mit dem Erstellen einer Datei namens candles.py und dem Importieren der erforderlichen Bibliotheken wie socket und json, um Daten über Sockets zu senden und zu empfangen. Sie definieren auch die Adresse und den Port, die für die Socket-Verbindung verwendet werden sollen. Der Sprecher fährt dann damit fort, eine Funktion zum Initialisieren der Socket-Verbindung unter Verwendung von Server- und Client-Sockets zu erstellen. Sie demonstrieren, wie man den Socket an die angegebene Adresse und den angegebenen Port bindet und auf eingehende Verbindungen lauscht. Die Funktion akzeptiert dann Verbindungen und gibt die Client-Adresse aus.

  • 00:15:00 In diesem Abschnitt erklärt der YouTuber, wie man die Funktion erstellt, die Kerzeninformationen übernimmt, indem er die Funktion „thread_candles“ aufruft. Es beginnt mit der Erstellung einer Variablen namens "Nachricht", um Informationen von MetaTrader5 zu erhalten. Dann wird der Socket gestartet und eine Hauptschleife erstellt, die funktioniert, bis der Benutzer die Eingabetaste drückt, an welcher Stelle die zu tötende Pille gesetzt wird. Die Schleife beginnt damit, dass die Nachricht vom Socket aus der Verbindung genommen und decodiert wird. Der Code prüft, ob die Nachricht gedruckt werden kann, und wenn dies möglich ist, wird sie gedruckt. Nachdem er gezeigt hat, wie die Hauptdatei erstellt wird, erklärt der YouTuber, wie man einen Client in MT5 erstellt, betont jedoch, dass er nicht in die Tiefe gehen wird, da es sich nicht um ein MT5-Tutorial handelt.

  • 00:20:00 In diesem Abschnitt bietet der Moderator eine Schritt-für-Schritt-Anleitung zum Kopieren des Codes von GitHub und zum Erstellen eines Python-Trading-Bots, der Kerzendaten von MT5 empfängt. Der Moderator erklärt, dass der Code Token verwendet, um Informationen zu jedem Tick zu senden, und eine Zeichenfolge erstellt, die das JSON-Format für die Eröffnungs- und Schlusskurse jeder Kerze enthält. Um die Zeichenfolge in ein Wörterbuch umzuwandeln, schlägt der Präsentator die Verwendung der JSON-Ladefunktion vor. Der Moderator demonstriert auch, wie der Bot und der Client gestartet und gestoppt werden und wie der Bot aus dem Expert Advisor-Menü gelöscht wird.

  • 00:25:00 In diesem Abschnitt führt das Video-Tutorial durch die Aktualisierung eines Wörterbuchs mit von MT5 empfangenen Daten und die Erstellung eines Bestell-Threads. Das aktualisierte Wörterbuch wird mithilfe der self.data-Funktion gesendet, die die Daten in das richtige Format konvertiert. Das Tutorial umfasst die Definition von Makros für den Bot, wie z. B. die Anzahl der Kerzen zwischen Operationen und Stop-Loss-Parameter. Die Order-Thread-Funktion empfängt die Stop-Ereignis- und Handelsdaten und erstellt eine grundlegende Handelsstrategie mit einer einfachen Gewinnmitnahme und einem Stop-Loss. Das Tutorial umfasst auch das Schließen der Verbindung und des Server-Sockets, gefolgt vom Testen des Bots mit Beispielcode.

  • 00:30:00 In diesem Abschnitt erörtert der YouTuber die notwendigen Schritte, um Kerzendaten von MT5 zu erhalten und sie zum Öffnen von Operationen basierend auf bestimmten Kriterien zu verwenden. Der erste Schritt besteht darin, eine Variable namens Last operation time zu deklarieren und ihren Anfangswert auf Null zu setzen, was später verwendet wird, um nachzuverfolgen, wann eine Operation geöffnet wurde. Dann wird mit der datetime-Funktion eine Epoche deklariert, die wir später verwenden werden, um die aktuelle Zeit in Sekunden umzuwandeln. Als nächstes warten wir, bis der Kerzen-Thread beginnt, um Fehler zu vermeiden. Sobald es fertig ist, gehen wir in eine Schleife, in der wir prüfen, ob die Bedingungen für die Eröffnung einer Operation erfüllt sind. Wenn die vorherige Kerze ein Boom ist (Schließen > Öffnen) und die aktuelle Zeit größer ist als die Zeit der letzten Operation plus dem Zeitraum der Handelsdaten, wird eine Operation eröffnet. Die letzte Betriebszeit wird aktualisiert und die offene Positionsfunktion wird aufgerufen. Schließlich werden die Handelsdaten (einschließlich Markt- und Losgröße) definiert und als Argument an die offene Positionsfunktion übergeben.

  • 00:35:00 In diesem Abschnitt erklärt der Ersteller, wie man eine Zellenoperation mit MT5 sendet, und gibt ein Tutorial, wie man eine offene Positionsfunktion ausführt. Der Benutzer muss den Markt als Zeichenfolge eingeben, den Lotex als Gleitkomma- und Typoperation. Diese Funktion hilft bei der Definition der Stop-Loss- und Take-Profit-Variablen, die definiert werden, indem der aktuelle Preis abzüglich des Stop-Loss-Werts genommen und der Take-Profit-Wert zum aktuellen Preis addiert wird. Der Ersteller empfiehlt die Verwendung von Zellenkerzen- und Handelsdaten, um den Code zu testen und zu debuggen. Schließlich liefert der Ersteller ein Beispiel dafür, wann die Funktion ausgeführt wird und die Orders gehandelt werden.

  • 00:40:00 In diesem Abschnitt konzentriert sich das Tutorial auf das Debuggen von Fehlern. Der Schritt-für-Schritt-Prozess des Debuggens wird gezeigt, beginnend mit der angezeigten Fehlermeldung bis hin zum Googeln, um eine Lösung zu finden. Der spezifische Fehler hier ist ein ungültiger Auftragserfüllungstyp, der vom verwendeten Broker abhängt. Die Lösung besteht darin, alle drei aufgelisteten Orderausführungsarten auszuprobieren und zu sehen, welche für Ihren Broker funktioniert. Sobald der Fehler behoben ist, fährt das Tutorial mit dem erfolgreichen Öffnen einer Position fort.

  • 00:45:00 In diesem Abschnitt schließt der Sprecher das Video ab, indem er einen kurzen Überblick über den Trading-Bot für synthetische Indizes von Python gibt und hervorhebt, wie einfach er erstellt werden kann. Er erwähnt auch, dass er einen Kurs zu diesem Thema erstellen wird, der im Vergleich zu ähnlichen Kursen sehr umfassend und preisgünstig sein wird. Er ermutigt die Zuschauer, seinen Kanal zu liken, zu teilen und zu abonnieren und sich bei Fragen an ihn zu wenden.
 

Wie importiere ich Aktienkursdaten von MetaTrader 5 in Python?



Wie importiere ich Aktienkursdaten von MetaTrader 5 in Python?

In diesem YouTube-Video werden verschiedene Methoden zum Importieren von Aktienkursdaten aus MetaTrader 5 in Python erklärt. Zu den Methoden gehören das Importieren der erforderlichen Bibliotheken, das Festlegen des gewünschten Zeitrahmens und der gewünschten Zeitzone, das Definieren einer Funktion namens „Get Data“, das Bearbeiten des resultierenden Datenrahmens, das Verwenden des tqtndm-Pakets, das Erstellen eines Ratenrahmens und das Verwenden von zwei Datenrahmen zum Abrufen von Preisen und Datums-/Uhrzeitinformationen. Der Redner schlägt vor, die Schleifen in eine Funktion zu integrieren, um den Code sauberer zu machen, und mit diesen Methoden können Benutzer Daten für zahlreiche Symbole ohne große Schwierigkeiten importieren.

  • 00:00:00 In diesem Abschnitt erklärt der Referent, wie man Aktienkursdaten von MetaTrader5 in Python importiert. Der erste Schritt besteht darin, alle erforderlichen Bibliotheken zu importieren, einschließlich pandas, pytz, datetime, tqdm und MetaTrader5. Dann initialisiert der Sprecher MetaTrader5 und stellt die gewünschte Zeitzone und den Zeitrahmen ein. Der Sprecher definiert eine Funktion namens "Daten abrufen", die das Symbol, die Anzahl der benötigten Kerzen und den Zeitrahmen benötigt. Die Funktion gibt die gewünschten Daten zurück, und der Sprecher erklärt, was jeder Ein- und Ausgang in der Funktion bewirkt.

  • 00:05:00 In diesem Abschnitt erläutert der Referent eine Funktion zum Importieren von Aktienkursdaten aus MetaTrader5 in Python. Die Funktion nimmt ein Symbol, einen Zeitrahmen und ein Datum auf und gibt einen Datenrahmen zurück, der die angeforderten Daten enthält. Der Sprecher geht Schritte durch, um den resultierenden Datenrahmen zu manipulieren, einschließlich der Umwandlung der Zeitspalte in die Tageszeit und des Löschens unnötiger Spalten. Darüber hinaus wird die Verwendung einer for-Schleife vorgeschlagen, um das Abrufen von Daten für mehrere Assets zu vereinfachen.

  • 00:10:00 In diesem Abschnitt erklärt der Referent, wie man Aktienkursdaten von MetaTrader5 mit dem tqtndm-Paket in Python importiert. Sie verwenden die Try-Funktion und die Accept-Funktion, um eine zuvor definierte Ratenfunktion aufzurufen, die das Symbol und die auf 400 festgelegte Anzahl von Tagen übernimmt. Die zurückgegebenen Daten werden an ein Wörterbuch angehängt, und alle nicht verfügbaren Daten werden gelöscht. Der Sprecher schlägt vor, die Schleife in eine Funktion zu stecken, um den Code sauberer zu machen. Insgesamt umfasst der Prozess das Erstellen eines Tarifrahmens, das Anhängen der Daten an ein Wörterbuch und das anschließende Ausführen des Skripts.

  • 00:15:00 In diesem Abschnitt erklärt der Referent, dass Benutzer durch die Verwendung von zwei Datenrahmen Aktienkursdaten einfach von Metatrader5 in Python importieren können, indem sie die Preise und Datums-/Zeitinformationen abrufen. Dieses Verfahren kann ohne große Schwierigkeiten für zahlreiche Symbole verwendet werden.
 

Online-Handel mit Python in MetaTrader 5 + Daten von MQL5 abrufen



Online-Handel mit Python in MetaTrader 5 + Daten von MQL5 abrufen

Das Tutorial zeigt, wie man einen Datensatz von MetaTrader herunterlädt und Online-Handelsgeschäfte mit Python abschließt. Der Kursleiter importiert die MetaTrader5-, Pandas- und Datetime-Bibliotheken, gibt das Asset und den Zeitrahmen für den Datensatz an und lädt die letzten hundert Datenpunkte herunter. Sie erklären, wie man eine Position in MetaTrader5 verwaltet, indem man Stop-Loss setzt, Gewinn mitnimmt und den GTC-Befehl für eine bestimmte Dauer verwendet. Während der Abschnitt ein grundlegendes Verständnis der verschiedenen Befehle vermittelt, die zum Verwalten einer Position erforderlich sind, ist unklar, welche Handelsstrategie insgesamt angewendet wird.

  • 00:00:00 In diesem Abschnitt des Tutorials demonstriert der Kursleiter das Herunterladen eines Datensatzes von MetaTrader 5 und die Durchführung einfacher Online-Handelsgeschäfte mit Python. Die MetaTrader5-Bibliothek wird importiert und der Software-Verknüpfungspfad wird an Python adressiert. Die pandas- und datetime-Bibliotheken werden ebenfalls importiert, und die aktuelle Zeit wird verwendet, um die Zeit der letzten Daten im Dataset anzugeben. Der Symbolschlüssel des gewünschten Assets wird geschrieben und der Zeitrahmen (in diesem Fall der tägliche Zeitrahmen) für den Datensatz ausgewählt. Die letzten hundert Datenpunkte werden heruntergeladen, und ein Formatbefehl wird verwendet, um die Daten im persönlichen System des Benutzers zu speichern. Der Online-Handel wird durchgeführt, indem die Vermögenswerte und das Volumen der Transaktion bestimmt werden, die Preiseinheit als Pip definiert wird und je nach eingegebener Position entweder der Brief- oder der Geldkurs verwendet wird.

  • 00:05:00 In diesem Abschnitt erklärt das Video, wie man mit Python-Befehlen in MetaTrader5 Stop-Loss und Take-Profit für eine Position einstellt. Es zeigt auch, wie die Position geschlossen wird, indem die Positionsticketnummer angegeben wird. Der GTC-Befehl wird erklärt, um eine Transaktion für eine bestimmte Dauer aktiv zu halten. Das Video zeigt auch ein Beispiel einer USDJPY-Transaktion mit aktivem Stop-Loss und Take-Profit. Insgesamt bietet dieser Abschnitt ein grundlegendes Verständnis der verschiedenen Befehle, die erforderlich sind, um eine Position in MetaTrader5 über Python zu verwalten.

  • 00:10:00 In diesem Abschnitt erfahren wir, dass die Long-Position erfolgreich geschlossen wurde. Leider ist ohne weiteren Kontext unklar, worauf sich die Long-Position bezieht oder welche Handelsstrategie insgesamt angewendet wird.
 

Python MetaTrader 5 Kopierhandel



Python MetaTrader 5 Kopierhandel

Diese Anwendung kann den Handel von MetaTrader 5 zu einem anderen MetaTrader 5 kopieren, der von einem Web-Dashboard gesteuert wird, das auch steuern kann, wer Ihren Handel kopieren, Paare/Ticker festlegen, Volumen festlegen, Verlust stoppen und Gewinn mitnehmen kann, jedes Ihrer Kopiersignale.
Die Zeittoleranz für das Kopieren beträgt 5 Sekunden, wenn mehr als 5 Sekunden lang kein Signal kopiert wird, bleibt Windows cmd manchmal hängen, es wird empfohlen, eine andere Terminalanwendung unter Windows zu verwenden.

Fragen und Antworten
-----------------------------------
F: Kann mit MT4 ausgeführt werden
A: Nein, MT4 unterstützt kein Python

F: Kann unter Linux ausgeführt werden?
A: Nein, eigentlich ist mt5 für Windows konzipiert, wenn es auf Mac oder Linux ausgeführt wird, wird es nur mit einem Windows-Emulator oder ähnlichem ausgeführt, um die Ausführung von Windows-Anwendungen zu erzwingen, die auf Mac oder Linux ausgeführt werden

F : Gibt es eine Garantie, dass das Signal kopiert wird?
A: Der Erfolg oder Misserfolg des zu kopierenden Signals hängt von verschiedenen Faktoren ab, am häufigsten von Ihrem vps-Zustand, kann die Verbindung von Master oder Clients verarbeiten, instabile Client-Verbindung, Skriptverzögerung, Terminal, hängt usw.

Wenn Sie Probleme wie das Einfrieren der Eingabeaufforderung beim Ausführen des Python-Skripts haben, gehen Sie bitte zu https://stackoverflow.com/questions/591047/command-line-windows-hanging-in-rdp-windows

Skripte
------------
virtuelle Umgebung erstellen:
python -m venv .venv

Virtuelle Umgebung aktivieren:
.venv/Scripts/activate

Anforderungsbibliothek installieren:
pip install -r requirements.txt

laufendes Masterskript:
python-master.py

Ausführen des Slave-Skripts:
python trade.py

 

Python- und MetaTrader-Rückseitentestsysteme | Entwicklung und Test von Trading-ML-Strategien



Python- und Metatrader-Rückseitentestsysteme | Entwicklung und Test von Trading-ML-Strategien

Das Video diskutiert die Entwicklung einer stabilen Backtesting-Plattform, um mehrere Handelsstrategien zu bewerten und maschinelles Lernen für den Devisenhandel einzusetzen. Der Referent demonstriert, wie man mit MetaTrader 5 eine neue Backtesting-Plattform erstellt, die mit Brokern kommuniziert, um Eingabedaten zu extrahieren. Sie erklären auch, wie man einen Expertenberater codiert, um Daten zu extrahieren, sie mit Python-Strategien zu verarbeiten und dann Trades basierend auf vorbestimmten Parametern zu initiieren. Das Video zeigt auch, wie Label-Daten generiert und Funktionen zum Erstellen und Trainieren von Algorithmen für maschinelles Lernen extrahiert werden. Abschließend erörtert der Referent mehrere Algorithmen, die für das Backtesting verwendet werden, wobei Random Forest als der genaueste identifiziert wurde. Insgesamt lieferte das Backtesting-System zuverlässige und effiziente Ergebnisse mit einer Leistung von 96 %, und die zukünftige Arbeit umfasst die Integration von maschinellen Lernalgorithmen in Live-Handelsumgebungen.

  • 00:00:00 In diesem Abschnitt stellt der Referent das Konzept des Devisenhandels vor und erklärt, warum es bei Institutionen, Regierungen, multinationalen Unternehmen und Privatanlegern so beliebt geworden ist. Der Markt ist von Montag bis Freitag rund um die Uhr geöffnet und somit für jedermann zugänglich. Einer der Gründe für seine Popularität ist das immense Gewinnpotenzial. Eine genaue Vorhersage der Devisenkursrichtung ist jedoch wichtig. Zu diesem Zweck war es das Ziel des Redners, eine stabile Backtesting-Plattform zu schaffen, um mehrere Handelsstrategien zu bewerten, festzustellen, welche Währungspaare und Zeitrahmen am besten abschneiden, und maschinelles Lernen zur Verbesserung von Vorhersagen einzusetzen. Der Referent erwähnt auch frühere Forschungen, bei denen Support-Vektor-Maschinen und künstliche neuronale Netze zur Vorhersage verwendet wurden.

  • 00:05:00 In diesem Abschnitt erörtert der Referent den Ansatz zur Entwicklung einer Backtesting-Plattform für das Training und Testen von Algorithmen, was der erste Schritt bei der Entwicklung von Algorithmen für maschinelles Lernen ist. Sie untersuchen die verfügbaren Backtesting-Plattformen wie MK Backtesting, entscheiden sich aber letztendlich für die Erstellung einer neuen Plattform, die sich nahtlos in bestehende Python-Strategien integrieren lässt und die Kriterien für Datenkonsistenz und -integrität erfüllt. Die neue Plattform stützt sich auf die branchenübliche MetaTrader 5-Plattform, die mit Brokern verbunden ist, um Eingabedaten für die Backtesting-Plattform zu extrahieren. Die Backtesting-Plattform verwendet eine Reihe von Parametern wie Stop-Loss und Take-Profit, um Daten auszuwerten und Ausgabedateien basierend auf dem Signal zu generieren, das von Handelsstrategien wie der Handelsstrategieklasse generiert wird. Insgesamt umfasst der Ansatz das Vorbereiten von Level-Daten, das Entwickeln einer Backtesting-Plattform und das anschließende Erstellen eines maschinellen Lernalgorithmus auf der Grundlage der vorbereiteten Daten.

  • 00:10:00 In diesem Abschnitt beschreibt der Referent, wie ein Expert Advisor codiert wird, um Daten aus MetaTrader 5 auf Live-Trading-Basis zu erweitern, sobald eine neue Kerze generiert wird. Der Expert Advisor extrahiert Daten aus MetaTrader 5 und schreibt sie in eine externe Tabellenkalkulationsdatei, die dann von einer Python-Engine gelesen wird, um sie mit verschiedenen Strategien zu verarbeiten, um ein Handelssignal zu erhalten. Das Signal wird dann in eine Aktionsdatei geschrieben, die vom Expert Advisor gelesen wird, und initiiert dann Trades in der MetaTrader 5-Umgebung. Die Handelsumgebung kann Live-Handel durchführen, indem sie Trades basierend auf bestimmten Take-Profit- und Stop-Loss-Margins ausführt, und der Expert Advisor modifiziert und schließt Trades basierend auf verschiedenen Parametern.

  • 00:15:00 In diesem Abschnitt erläutert der Referent den Backtesting-Prozess und die Generierung eines Berichts auf der MetaTrader-Plattform. Sie zeigen, wie Sie die Geschwindigkeit des Backtestings anpassen und die notwendigen Strategien importieren, um Vorhersagen zu treffen. Anschließend besprechen sie die verschiedenen Funktionen des Programms, einschließlich des Aktionsschreibers, der Haushaltsaufgaben wie das Erstellen und Speichern von Ausgabedateien übernimmt. Schließlich demonstrieren sie den durch das Backtesting erstellten Bericht, der eine Zusammenfassung aller getätigten Handelsgeschäfte zusammen mit Details über das Währungspaar, den Zeitrahmen und den Zeitraum enthält.

  • 00:20:00 In diesem Abschnitt erläutert das Video die Verwendung einer Backtesting-Plattform, die zum Erstellen von Labeldaten und zur Merkmalsextraktion zum Erstellen und Trainieren von ML-Algorithmen für den Handel entwickelt wurde. Diese Plattform vereinfacht den Prozess, indem sie den gesamten Zeitraum der extrahierten Daten nimmt und die für den Handel erforderlichen Signale und Indikatoren generiert und dann die Trades initiiert und verfolgt, um die tatsächlichen Ergebnisse zu erhalten. Unter Verwendung dieser Plattform zeigt das Video, wie Labeldaten generiert werden, die das wahre Ergebnis des Handels und die verschiedenen aus den Daten extrahierten Merkmale wie RSI, TSI und Stochastik darstellen. Durch die Erstellung ausgewogenerer Daten kann diese Plattform zuverlässigere maschinelle Lernalgorithmen für den Handel generieren.

  • 00:25:00 In diesem Abschnitt erörtert der Referent die verschiedenen maschinellen Lernalgorithmen, die für das Backtesting verwendet werden, darunter Support Vector Machine, logistische Regression, xgboost, MLP und Random Forest. Die Genauigkeit jedes Algorithmus wird aufgezeichnet und analysiert, und der Sprecher identifiziert Random Forest als den genauesten mit einer Genauigkeit von 96 %. Die Daten werden auch beschriftet und nachverfolgt, um eine Tabellenkalkulationsdatei für die spätere Verwendung zu erstellen. Insgesamt ist der Backtesting-Prozess mit diesen Algorithmen schnell und effizient.

  • 00:30:00 In diesem Abschnitt fasst der Referent die Ergebnisse des Backtesting-Systems und die Entwicklung von Trading-ML-Strategien unter Verwendung technischer Indikatoren und maschineller Lernalgorithmen zusammen. Die stabile Backtesting-Plattform lieferte zuverlässige und effiziente Ergebnisse mit einer Performance von 96 % im Vergleich zur Benchmark-Strategie SMAEMA, die nur eine Performance von 25 % hatte. Die Backtesting-Plattform war in der Lage, automatisiert zu handeln, ohne dass manuelle Eingriffe erforderlich waren. Zukünftige Arbeiten umfassen die Integration von maschinellen Lernalgorithmen in Live-Backtesting- und Handelsumgebungen, um die Vorhersagegenauigkeit zu verbessern und den Gewinn zu maximieren, wobei mehrere Strategien und ausgefeiltere Algorithmen wie Self-Attention RNN und LSTM verwendet werden.
 

So erstellen Sie algorithmische Handelsstrategien mit Python – Schritt-für-Schritt-Prozess



So erstellen Sie algorithmische Handelsstrategien mit Python – Schritt-für-Schritt-Prozess

Das Video bietet eine Schritt-für-Schritt-Anleitung zur Erstellung algorithmischer Handelsstrategien mit Python. Der erste Schritt besteht darin, die Regeln für das System zu definieren, Emotionen aus dem Handel zu eliminieren und Backtests durchzuführen, um die Rentabilität zu optimieren. Der Moderator demonstriert dann, wie man eine Handelsstrategie erstellt, indem er eine Hypothese und technische Indikatoren wie gleitende Durchschnittskreuzungen verwendet. Die Strategie wird dann kodiert und Backtesting wird wiederholt durchgeführt, um eine Optimierung sicherzustellen. Der zweite Abschnitt konzentriert sich auf die Codierung des algorithmischen Rahmens und die Erstellung einer Signalfunktion, die auf der Grundlage eines Vergleichs einfacher gleitender Durchschnitte bestimmt, ob gekauft oder verkauft werden soll. Der dritte Abschnitt behandelt die Verarbeitung von Live-Marktdaten mithilfe von Funktionen, während der vierte beschreibt, wie die Strategie auf WPS implementiert wird. Abschließend rät der Moderator Anfängern, ihre Handelsstrategien einfach und klar zu halten.

  • 00:00:00 In diesem Abschnitt des Videos erklärt der Moderator den Prozess der Erstellung algorithmischer Handelsstrategien mit Python. Erstens definieren sie den algorithmischen Handel als ein System mit explizit definierten Regeln und ohne Ausnahmen. Die Vorteile davon sind, dass wir Handelsstrategien basierend auf quantifizierbaren Daten codieren können und Emotionen aus der Gleichung herausgenommen werden. Sie erwähnen auch, dass Backtesting einfach durchgeführt werden kann, um die Rentabilität des Systems zu optimieren und zu testen. Als nächstes zeigt der Moderator, wie man eine Handelsstrategie erstellt, indem er eine Hypothese und technische Indikatoren verwendet, insbesondere gleitende Durchschnittskreuzungen. Mit den gesammelten Informationen werden Regelsätze erstellt, und dann wird die Strategie einem Backtesting unterzogen. Dieser Prozess kann wiederholt werden, bis die Strategie als optimal erachtet wird.

  • 00:05:00 In diesem Abschnitt erläutert der Referent den schrittweisen Prozess zur Erstellung algorithmischer Handelsstrategien mit Python. Sie erklären, wie Backtesting es Händlern ermöglicht, zu verstehen, wie sich ihre Gewinne und Verluste entwickeln, und wenn sie erfolgreich sind, können Händler zu einem Vorwärtstest mit einem Live-Trading-Bot auf einem Demokonto übergehen. Der Redner empfiehlt auch die Verwendung von Python für den Handel, da es sich um eine leicht zu erlernende Sprache handelt und viele Bibliotheken für Backtesting und algorithmischen Handel, wie z. B. Pandas und Plotly, vorhanden sind. Abschließend geht der Referent durch den Prozess der Erstellung einer einfachen Crossover-Strategie für den gleitenden Durchschnitt auf den deutschen Aktienindex, wobei ein schnell gleitender Durchschnitt von 10 und ein langsam gleitender Durchschnitt von 100 verwendet werden. Sie betonen die Bedeutung der Codierung des algorithmischen Rahmens, der sein kann finden Sie auf ihrer GitHub-Seite.

  • 00:10:00 In diesem Abschnitt demonstriert der Moderator, wie man Python verwendet, um eine algorithmische Handelsstrategie unter Verwendung der zuvor besprochenen Crossover-Strategie für den gleitenden Durchschnitt zu erstellen. Sie stellen zwei Dateien zur Verfügung: eine Backtested-Datei und eine Live-Trading-Bot-Datei. Die Backtested-Datei enthält eine Datenanalyse zur Leistung der Strategie für das Jahr 2032. Die Live-Trading-Bot-Datei erfordert die Erstellung einer Datei mit Anmeldedaten und ermöglicht es Benutzern, mit gleitenden Durchschnitt-Crossovers zu handeln. Der Moderator zeigt dann seine integrierte Python-Entwicklungsumgebung und erklärt den Code, der Bibliotheken wie pandas, blockly und datetime verwendet, um historische Daten abzurufen, einfache gleitende Durchschnitte zu berechnen und Handelslogik anzuwenden. Schließlich erstellt der Präsentator eine Signalfunktion, die basierend auf dem Vergleich der einfachen gleitenden Durchschnitte bestimmt, ob gekauft oder verkauft werden soll.

  • 00:15:00 In diesem Abschnitt erklärt der Referent den Prozess der Berechnung der Signalsäule, die anzeigt, wann ein bestimmtes Wertpapier gekauft oder verkauft werden sollte. Die Signalspalte wird abgeleitet, indem die Funktion „Get Signal“ auf die Balken des Datenrahmens angewendet wird, die dann Zeile für Zeile überprüft, ob die Bedingungen für den Kauf oder Verkauf erfüllt sind. Zusätzlich werden auch die vorherigen Preisänderungs- und Signaländerungsspalten berechnet, um die hypothetischen Gewinne unter Berücksichtigung des Handelsvolumens und der an den Broker gezahlten Provision zu ermitteln. Der Redner zeigt dann ein Diagramm, das die Brutto- und Nettogewinne über einen Zeitraum von sechs Monaten verwendet und zeigt, dass die Strategie einen Nettogewinn von 2.380 € mit einigen Drawdown-Perioden erzielt hat. Abschließend erwähnt der Redner das Teilen von Beispielcode der Backtesting-Strategie, falls der Betrachter es selbst für eine längere Historie testen möchte.

  • 00:20:00 In diesem Abschnitt erklärt der Moderator, wie Live-Marktdaten mithilfe von Funktionen verarbeitet werden, um eine Handelsstrategie in Python zu erstellen. Sie schlagen vor, MetaTrader5, Pandas, Zeit, Datum und Kontoprinzipien mit den Standardparametern ihrer Strategie zu importieren. Der Moderator erstellte Funktionen für den Handel, um Positionen zu schließen und die Handelszeiten der Sitzungen in London und New York zu überprüfen. Sie haben auch eine Funktion entwickelt, um eine Marktorder mit einem Handelssignal in der Schleife zu senden, und wenn der schnelle SMA über dem langsamen SMA liegt, schlagen sie vor, die Verkaufspositionen zu schließen. Der Moderator demonstriert, wie man diese Funktionen verwendet und die Anzahl der offenen Positionen mit der Funktion MT5 Positions Total überprüft, um einen Überblick über das Konto zu erhalten, wenn man sich in das Handelskonto einloggt.

  • 00:25:00 In diesem Abschnitt erläutert der Referent den letzten Schritt des Prozesses, bei dem die Strategie auf WPS (Web Processing Service) bereitgestellt wird. Er schlägt vor, einen DP (Cloud Desktop Provider) namens Countable zu verwenden, für den er grundlegende Konfigurationen bereitstellt. Er weist auch darauf hin, dass MT5 nur unter Windows funktioniert und empfiehlt, ein in Großbritannien gehostetes Rechenzentrum auszuwählen, wenn sich der Broker in London befindet. Der Referent gibt Anfängern dann Tipps und Empfehlungen und rät ihnen, ihre Strategien einfach und klar zu halten, um später im Laufe der Zeit weitere hinzuzufügen. Abschließend dankt er dem Zuschauer und ermutigt ihn, in den Kommentaren Fragen zu stellen.
 

Backtesting des 3-Kerzen-Setups mit Python



Backtesting des 3-Kerzen-Setups mit Python

Das Video zeigt, wie man Python verwendet, um die Rentabilität eines Drei-Kerzen-Setups zu testen. Der Präsentator erhält wöchentliche OHLC-Daten für das Währungspaar EUR/USD von Metatrader5 und wandelt sie in einen Pandas-Datenrahmen um und visualisiert ihn mit Plotly Express. Sie identifizieren bullische und bärische Kerzen mithilfe einer bestimmten Kerzentypfunktion und definieren die Einrichtungsbedingung für drei bullische Kerzen. Indem sie die Wahrscheinlichkeit berechnen, dass die vierte Kerze für jedes Auftreten des Setups steigt oder fällt, testen sie die Rentabilität des Kaufs dieser Setups. Der Moderator kommt zu dem Schluss, dass eine Long-Position bei jedem bullischen Setup ein gewisses Einkommen generiert hätte, betont jedoch, wie wichtig es ist, geduldig zu sein, da der Gewinn in kurzer Zeit erzielt wird.

  • 00:00:00 In diesem Abschnitt erläutert der Referent, wie Python zum Backtest des Drei-Kerzen-Setups verwendet werden kann. Dazu verbinden sie sich zunächst mit der Metatrader5-Plattform und fordern OHLC-Daten für das Währungspaar EUR/USD in einem wöchentlichen Zeitrahmen vom 1. Januar 2019 bis November 2021 an. Die Daten werden dann in einen Pandas-Datenrahmen konvertiert und mit Plotly Express visualisiert . Der Sprecher zeigt dann, wie die Kerzen im Datenrahmen mit einer bestimmten Kerzentypfunktion als bullisch oder bärisch gekennzeichnet werden können. Sie verwenden dies, um die Bedingung für ein Setup mit drei bullischen Kerzen zu erfüllen, indem sie die Kerzentyp-Spalte um eine, zwei und drei Kerzen nach vorne verschieben, wodurch eine Bedingung entsteht, bei der alle drei Kerzen bullisch sind. Sie berechnen dann die Wahrscheinlichkeit, dass die vierte Kerze für jedes Auftreten dieses Setups steigt oder fällt, und testen die Rentabilität des Kaufs dieser Setups.

  • 00:05:00 In diesem Abschnitt des Videos erläutert der Moderator, wie ein Backtest eines Drei-Kerzen-Setups mit Python durchgeführt wird. Das Setup beinhaltet die Identifizierung von Kerzen, bei denen die erste, zweite und dritte Kerze alle bullisch sind. Der Präsentator erstellt einen Datenrahmen mit dem vorherigen Schluss und vergleicht das Ergebnis mit der vorherigen Kerze, um die Anzahl der gewonnenen oder verlorenen Punkte zu berechnen. Anschließend analysieren sie die Daten statistisch, um festzustellen, ob es eine gute Idee wäre, zu kaufen oder zu verkaufen. Indem sie jedes einzelne Setup durchlaufen und die drei Kerzen-Setups auf einem Diagramm hinzufügen, zeigen sie, dass der Kauf am Ende jedes Setups und der Verkauf unmittelbar nach dem Schließen der nächsten Kerze in einigen Situationen rentabel wäre. Der Präsentator berechnet, wie oft das Setup auftritt und wie viel pro Setup durchschnittlich gewonnen oder verloren würde. Sie kommen zu dem Schluss, dass eine Long-Position bei jedem bullischen Setup ein gewisses Einkommen generiert hätte.

  • 00:10:00 In diesem Abschnitt stellt das Video ein Beispiel für das Backtesting des 3-Kerzen-Setups mit Python vor. Nach dem Zurücksetzen der Achse zeigt sie den Zeitraum mit Verlust- und Gewinntrades im Jahr 2019 mit der Gewinnkurve der kumulativen Punkte. Der Gewinn kommt in kurzer Zeit und erfordert Geduld, bis dieser Zeitraum kommt. Das Video zeigt auch, wie man XA USD auf dem Tages-Chart analysiert und seine Performance anzeigt, indem man historische Daten anfordert und den Datenrahmen zeichnet. Die Gewinnkurve wird verwendet, um die Höhen und Tiefen bei Gewinnen und Verlusten zu sehen. Schließlich kommt das Video zu dem Schluss, dass diese Testmethode auf einer beliebigen Anzahl von Märkten und Zeitrahmen verwendet werden kann, und impliziert, dass Benutzer ihre eigenen algorithmischen Strategien schreiben können.
 

Codieren Sie Echtzeit-Candlestick-Charts in Python



Codieren Sie Echtzeit-Candlestick-Charts in Python

In diesem Video erstellt der Autor eine Webanwendung in Python mit Dash, Pandas und Plotly, um ein Echtzeit-Candlestick-Datendiagramm für den FOREX-Handel zu erstellen. Die Anwendung verwendet die MetaTrader 5-Bibliothek zum Sammeln von Daten und ermöglicht es Benutzern, das Symbol, den Zeitrahmen und die Anzahl der anzuzeigenden Kerzen zu ändern. Das Video geht durch den Prozess der Erstellung des Layouts und der Rückrufe für die Anwendung, einschließlich der Anforderung historischer Balken von MetaTrader 5 und der Erstellung eines Figurenobjekts mit go.candlestick. Die resultierende Anwendung wird alle 20 Millisekunden aktualisiert und hat ein Aktualisierungsintervall von 200 Millisekunden. Zuschauer werden eingeladen, die GitHub-Seite zu besuchen, um die Anwendung herunterzuladen.

  • 00:00:00 In diesem Abschnitt beantwortet der YouTuber die Frage eines Zuschauers zum Erstellen eines Live-Forex-Datencharts mit Echtzeit-Streaming-Candlestick-Daten. Das Video erklärt, wie der YouTuber eine Webanwendung in Python mit Dash, Pandas und Plotly zur Datenanalyse und -visualisierung codiert, während er die MetaTrader5-Bibliothek verwendet, um Daten aus MetaTrader 5 zu sammeln. Sie erklären auch den Prozess zum Abrufen einer Liste von Symbolen und zum Übersetzen der Zeitrahmen mit einem Wörterbuch. Die resultierende Ausgabe der Anwendung ist ein Diagramm, in dem Benutzer das Symbol, den Zeitrahmen und die Anzahl der Kerzen ändern können, um Daten in Echtzeit mit einem Aktualisierungsintervall von 200 Millisekunden anzuzeigen.

  • 00:05:00 In diesem Abschnitt des Videos erklärt der Referent die Erstellung des Layouts für die Echtzeit-Candlestick-Chart-Anwendung. Die Dropdown-Komponenten für Symbol und Zeitrahmen werden aus MT5-Funktionen importiert und die Werte auf die Standardwerte gesetzt. Die Eingabe für die Anzahl der Balken wird mithilfe des DBC-Eingabefelds erstellt, das einen Standardwert von 20 hat. Das App-Layout besteht aus einem HTML-Div, das das Dropdown-Menü für Symbole, das Dropdown-Menü für den Zeitrahmen und die Eingabe für die Anzahl der Balken enthält. Ein kleines Trennzeichen wird hinzugefügt, gefolgt von der DCC-Intervallkomponente, die alle 200 Millisekunden einen neuen Callback erstellt, um das Echtzeitdiagramm zu aktualisieren. Der Seiteninhalt enthält einen Callback, der das Diagramm alle 20 Millisekunden aktualisiert und den Status des Symbol-Dropdown-Menüs, des Zeitrahmen-Dropdown-Menüs und die Anzahl der eingegebenen Balken erfasst. Der Callback fordert historische Balken von MetaTrader 5 an und erstellt ein Figurenobjekt mit go.candlestick. Abschließend dankt der Redner den Zuschauern für ihre Aufmerksamkeit und lädt sie ein, die GitHub-Seite zu besuchen, um die Anwendung herunterzuladen.
Grund der Beschwerde: