- ONNX Unterstützung
- Format-Konvertierung
- Automatische Konvertierung von Datentypen
- Erstellen eines Modells
- Ausführung eines Modells
- Ausführen im Strategy Tester
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- Datenstrukturen
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
|
Um die ONNX-Laufzeit in Python aufzurufen, verwenden Sie den folgenden Befehl
import onnxruntime
|
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"], {
|
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:
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:
- Trainieren Sie das Modell auf der Plattform eines Drittanbieters, z. B. Python.
- Konvertieren Sie das Modell zu ONNX.
- 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:
- copy_rates_from – Abruf der Balken ab dem angegebenen Datum
- copy_rates_from_pos – Abruf der Balken ab dem angegebenen Index
- copy_ticks_range – Abruf der Balken für die angegebene Zeitspanne
- copy_ticks_from – Abruf der Ticks ab dem angegebenen Datum
- copy_ticks_range – Abruf der Ticks für die angegebene Zeitspanne
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).
Suchen Sie nach der Aktivierung das Projekt ONNX.Price.Prediction und verbinden Sie es über den Kontextmenübefehl.
Als Nächstes aktualisieren Sie das Projekt aus dem MQL5-Speicher.
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).
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
|
Ö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.
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.
Während das Netzwerk trainiert wird, druckt MetaEditor Nachrichten aus dem Python-Skript, bis das Training abgeschlossen ist.
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.