- 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
Ausführung eines Modells
Um ein ONNX-Modell in MQL5 auszuführen, führen Sie 3 Schritte aus:
- Laden Sie das Modell aus einer *.onnx-Datei mit der Funktion OnnxCreate oder aus einem Array mit OnnxCreateFromBuffer.
- Spezifizieren Sie die Formen der Eingangs- und Ausgangsdaten mit den Funktionen OnnxSetInputShape und OnnxSetOutputShape.
- Starten Sie das Modell mit der Funktion OnnxRun und übergeben Sie ihr die entsprechenden Eingangs- und Ausgangsparameter.
- Bei Bedarf können Sie den Modellbetrieb mit der Funktion OnnxRelease beenden.
Bei der Erstellung eines ONNX-Modells sollten Sie die bestehenden Grenzen und Einschränkungen berücksichtigen, die unter https://github.com/microsoft/onnxruntime/blob/rel-1.14.0/docs/OperatorKernels.md beschrieben sind.
Einige Beispiele für solche Einschränkungen sind im Folgenden aufgeführt:
Bedienung |
Unterstützte Datentypen |
---|---|
ReduceSum |
tensor(double), tensor(float), tensor(int32), tensor(int64) |
Mul |
tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int32), tensor(int64), tensor(uint32), tensor(uint64) |
Nachfolgend ein MQL5-Codebeispiel aus dem öffentlichen Projekt ONNX.Price.Prediction.
const long ExtOutputShape[] = {1,1}; // die Ausgangsform des Modells
|
Ausführungsbeispiel eines Skripts:
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|
Das MetaTrader 5 Terminal hat die optimale Ausführung für die Berechnungen ausgewählt — ONNX Runtime Execution Provider. In diesem Beispiel wurde das Modell auf der CPU ausgeführt.
Ändern wir das Skript, um den Prozentsatz erfolgreicher Prognose der Schlusskurse zu berechnen, die auf den Werten der vorangegangenen 10 Balken basieren.
#resource "Python/model.onnx" as uchar ExtModel[]// Modell als Ressource
|
Führen Sie das Skript aus: Die Vorhersagegenauigkeit beträgt etwa 51%.
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|