Erstellen eines Modells

Mehrere Methoden sind verfügbar, um ein fertiges Modell im ONNX-Format zu erhalten. Die verbreitete Bibliothek ONNX Modell Zoo enthält mehrere vortrainierte ONNX-Modelle für verschiedene Aufgabentypen. Der Vorteil dieser Zusammenstellung ist, dass das Notizbuch jedes Modells Links zum Trainingsdatensatz und Verweise auf die Originalarbeit enthält, die die Modellarchitektur beschreibt.

Die meisten Frameworks für maschinelles Lernen verwenden Python. Um die ONNX-Laufzeitumgebung für Python zu installieren, verwenden Sie einen der folgenden Befehle:

pip install onnxruntime       # CPU build
pip install onnxruntime-gpu   # GPU build

Um die ONNX-Laufzeit in Python aufzurufen, verwenden Sie den folgenden Befehl

import onnxruntime
Session = onnxruntime.InferenceSession("Pfad zum Modell")

Für die Eingänge und Ausgänge des Modells sehen Sie sich die Dokumentation des jeweiligen Modells an. Es können auch Visualisierungswerkzeuge verwendet werden, um das Modell zu betrachten, wie Netron oder WinML Dashboard. In der ONNX-Laufzeit können Sie auch die Metadaten eines Modells sowie seine Eingänge und Ausgänge abfragen:

results = session.run(["output1""output2"], {
                      "input1"indata1"input2"indata2})
results = session.run([], {"input1"indata1"input2"indata2})

Sie können ONNX-Modelle direkt im MetaTrader 5-Terminal oder im MetaEditor mit Python erstellen.

Python im MetaTrader 5

MetaTrader 5 bietet sofort einsatzbereite Unterstützung für Python-Skripte. Um diese Vorgänge zu ermöglichen, stellen die Terminalentwickler das MetaTrader5-Modul für Python bereit: https://pypi.org/project/MetaTrader5.

In der integrierten Entwicklungsumgebung MetaEditor können Sie nicht nur Anwendungen in MQL5 erstellen, sondern auch Python-Skripte direkt aus dem Editor ausführen. Geben Sie dazu in den MetaEditor-Einstellungen den Pfad zur ausführbaren Datei an:

Festlegen des Pfads zur ausführbaren Python-Datei in den MetaEditor-Einstellungen

Wenn Python nicht auf Ihrem Computer installiert ist, klicken Sie auf Installieren, um die Installationsdatei herunterzuladen.

Sie können ein Python-Skript in MetaEdtior erstellen oder es in den Datenordner des Terminals hochladen und es sofort mit der Taste F7 (Kompilieren) ausführen. Dadurch wird das MetaTrader 5-Terminal geöffnet, wobei das Skript auf dem aktuellen Diagramm ausgeführt wird. Meldungen von der Python-Konsole (stdout, stderr) werden unter dem Abschnitt Fehler angezeigt.

Operationen mit Modellen in MetaTrader 5

Mit der MQL5-Sprache können Sie ONNX-Modelle direkt im MetaTrader 5-Terminal ausführen. Dies erfolgt in drei Schritten:

  1. Trainieren Sie das Modell auf der Plattform eines Drittanbieters, z. B. Python.
  2. Konvertieren Sie das Modell zu ONNX.
  3. Fügen Sie das ONNX-Modell mithilfe der ONNX-Funktion in einen Expert Advisor ein und führen Sie es im MetaTrader 5-Terminal aus.

Die Python-Integration in MQL5 ermöglicht die Ausführung eines Python-Skripts und das Speichern eines ONNX-Modells im MetaEditor oder die direkte Ausführung in einem Diagramm in MetaTrader 5. Sie können das Modell mithilfe eines vorgefertigten Python-Skripts beliebig oft direkt im Terminal trainieren. Die Bibliothek enthält vorgefertigte Funktionen zum Erhalt von Preisdaten, die in ein ONNX-Modell eingegeben werden können:

 

Beispiel eines Modells #

Ein Beispiel eines fertigen ONNX-Modells ist in öffentlichen Projekten verfügbar. Sie müssten zunächst im Navigator den MQL5 Storage aktivieren, indem Sie in den MetaEditor-Einstellungen Ihr MQL5-Login angeben (Groß-/Kleinschreibung beachten).

activate_storage

Suchen Sie nach der Aktivierung das Projekt ONNX.Price.Prediction und verbinden Sie es über den Kontextmenübefehl.

project_join

 

Als Nächstes aktualisieren Sie das Projekt aus dem MQL5-Speicher.

update_project

Das Projekt enthält ein ONNX-Modell, zwei Python-Skripte, ein MQL5-Skript für den Projektbetrieb und eine MQL5-Projektdatei (ONNX.Price.Prediction.mqproj).

python_script

 

 

Sie können das ONNX-Modell selbst erstellen, indem Sie das im Projekt enthaltene Skript PricePredictionTraining.py verwenden. Dazu sollten Sie zunächst die benötigten Module über die Kommandozeile installieren.

python.exe -m pip install --upgrade pip
python -m pip install --upgrade tensorflow
python -m pip install --upgrade pandas
python -m pip install --upgrade scikit-learn
python -m pip install --upgrade matplotlib
python -m pip install --upgrade tqdm
python -m pip install --upgrade metatrader5
python -m pip install --upgrade onnx==1.12
python -m pip install --upgrade tf2onnx
python -m pip install --upgrade numpy
python -m pip install onnxruntime

Öffnen Sie nach der Installation der Module das Skript PricePredictionTraining.py im MetaEditor und führen Sie es mit der Schaltfläche „Kompilieren“ oder der Taste F7 aus.

python_script_compile

 

Stellen Sie vor der Ausführung des Python-Skripts sicher, dass das MetaTrader 5-Terminal mit einem Server verbunden ist, auf dem das EURUSD-Symbol verfügbar ist. Stellen Sie beispielsweise eine Verbindung zum MetaQuotes-Demo-Server her und aktivieren Sie „Integration mit Python“ in den Terminal-Einstellungen.

terminal_py_integration_check_box

 

Während das Netzwerk trainiert wird, druckt MetaEditor Nachrichten aus dem Python-Skript, bis das Training abgeschlossen ist.

onnx_model_ready

 

Wenn das Ergebnis 100 % beträgt, ist das ONNX-Modell fertig und wird im Projektordner unter <Verzeichnis des Terminals>\MQL5\Shared Projects\ONNX.Price.Prediction\Python gespeichert.

Sie können das resultierende Modell überprüfen, indem Sie das zweite Skript PricePrediction.py ausführen und dabei F7 drücken.

prediction_result