Diskussion zum Artikel "Wie man ONNX-Modelle in MQL5 verwendet"

 

Neuer Artikel Wie man ONNX-Modelle in MQL5 verwendet :

ONNX (Open Neural Network Exchange) ist ein offenes Format, das zur Darstellung von Modellen des maschinellen Lernens entwickelt wurde. In diesem Artikel wird untersucht, wie ein CNN-LSTM-Modell zur Vorhersage von Finanzzeitreihen erstellt werden kann. Wir werden auch zeigen, wie man das erstellte ONNX-Modell in einem MQL5 Expert Advisor verwendet.

Es gibt zwei Möglichkeiten, ein Modell zu erstellen: Sie können OnnxCreate verwenden, um ein Modell aus einer Onnx-Datei zu erstellen, oder OnnxCreateFromBuffer, um es aus einem Datenfeld zu erstellen.

Wenn ein ONNX-Modell als Ressource in einem EA verwendet wird, müssen Sie den EA jedes Mal neu kompilieren, wenn Sie das Modell ändern.


Nicht alle Modelle haben vollständig definierte Größen für den Eingangs- und/oder Ausgangstensor. Dies ist normalerweise die erste Dimension, die für die Paketgröße verantwortlich ist. Vor dem Ausführen eines Modells, müssen die Größen mit den Funktionen OnnxSetInputShape und OnnxSetOutputShape explizit angeben werden. Die Eingabedaten des Modells sollten in der gleichen Weise aufbereitet werden, wie dies beim Training des Modells geschehen ist.

Autor: MetaQuotes

 

Müssen Sie Python Version 3.9.16 verwenden?

  1. Laden Sie den Quellcode als .tar.gz herunter
  2. Entpacken Sie den Quellcode mit einem Programm wie7-Zip
  3. Befolgen Sie die Anweisungen in PCbuild\readme.txt
 

Ich habe die Konvertierung in ONNX-Modelle für LightGBM in python 3.10 und 3.11, mit den Paketen onnxmltools und onnxconverter_common. Die Ausgabe funktionierte nur in python 3.10 mit dem onnxruntime-Paket, das in 3.11 nicht passte. Vielleicht hat sich in den letzten drei Wochen etwas geändert.

Schade, dass ME5 den python py launcher nicht unterstützt.

 
Könnten Sie mir bitte sagen, wo ich hier experimentieren kann?

Was ist zu ändern, welche Zahlen in welchem Bereich sind einzufügen usw. Mechanische Arbeit, bitte
 
Ivan Butko #:
Können Sie mir bitte sagen, wo ich hier experimentieren kann?

Instrument/Zeitrahmen und Daten in copy_rates_range, Anzahl der Eingangsschlusskurse für die Prognose (hier time_step = 120 und input_shape=(120,1) in model.add(Conv1D)), - in diesem Fall ist es die Anzahl der stündlichen Schlusskurse, auf denen die nächste Kursprognose basiert.

die Architektur der Modelle selbst, z. B.

model = Sequential()
model.add(LSTM(units = 50, return_sequences = True, input_shape = (time_step, 1)))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50))
model.add(Dropout(0.2))
model.add(Dense(units = 1))
model.compile(optimizer='adam',loss= 'mse',metrics=[rmse()])

EA-Parameter

input double InpLots       = 1.0;    // Lotsbetrag zur offenen Position
input bool   InpUseStops   = true;   // Verwendung von Stopps beim Handel
input int    InpTakeProfit = 500;    // TakeProfit-Level
input int    InpStopLoss   = 500;    // StopLoss-Level

der Handelsalgorithmus selbst, usw.

 
Quantum #:

instrument/timeframe und dates in copy_rates_range, die Anzahl der Eingabe-Schlusskurse für die Prognose (hier time_step = 120 und input_shape=(120,1) in model.add(Conv1D)) in der EA ändert

die Architektur der Modelle selbst, z. B.

EA-Parameter

der Handelsalgorithmus selbst, usw.

Dankeschön

 
Quantum #:

instrument/timeframe und dates in copy_rates_range, die Anzahl der Eingabe-Schlusskurse für die Prognose (hier time_step = 120 und input_shape=(120,1) in model.add(Conv1D)) in der EA ändert

die Architektur der Modelle selbst, z. B.

EA-Parameter

der Handelsalgorithmus selbst, usw.

Die GPU-Berechnungen wurden auf der NVIDIA GeForce GeForce RTX 2080 Ti Grafikkarte mit Hilfe der Bibliotheken ... und CUDNN 8.1.0.7.


Könnten Sie mir bitte sagen, wo ich diese Dateien ablegen kann? (Ich habe sie von der Website heruntergeladen, und es gibt kein Installationsprogramm, nur Dateien in einem Ordner).

 
Ivan Butko #:
Die GPU-Berechnungen wurden auf einer NVIDIA GeForce GeForce RTX 2080 Ti-Grafikkarte unter Verwendung der Bibliotheken ... und CUDNN 8.1.0.7.


Könnten Sie mir bitte sagen, wo ich diese Dateien finden kann? (Ich habe sie von der Website heruntergeladen, und es gibt kein Installationsprogramm, nur Dateien in einem Ordner).

Es gibt ein Video über die Installation von CUDA, CUDNN, Keras und TensorFlow unter Windows 11 für GPU Deep Learning

Beachten Sie im 1. Kommentar des Videos, dass Sie explizit die Tensorflow 2.10.0 Version angeben müssen.

18:35 an dieser Stelle einfach auf tensorflow==2.10.0 installieren ändern. danach alles befolgen was Jeff sagt.
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
  • 2022.01.05
  • www.youtube.com
Complete walkthrough of installing TensorFlow/Keras with GPU support on Windows 11. We make use of a "pip install" rather than conda, to ensure that we get t...
 
Ivan Butko #:

Verstanden!

Bitte beachten Sie im 1. Kommentar zum Video, dass Sie tensorflow 2.10.0 explizit angeben müssen.

18:35 An diesem Punkt ändern Sie einfach zu install tensorflow==2.10.0 . danach folgen Sie allem was Jeff sagt.
 
Ivan Butko #:
Könnten Sie mir bitte sagen, wo ich hier experimentieren kann?

Was ist zu ändern, welche Zahlen in welchem Bereich sind einzufügen usw. Mechanische Arbeit, bitte

Es hat keinen Sinn, hier zu experimentieren, denn eine solche Prognose unterscheidet sich nicht von einer naiven Prognose (der Wert des letzten Schlusskurses wird als Prognose genommen). In diesem Fall erhält man tatsächlich fast den kleinsten Lernfehler (RMS), was nichts über die Vorhersagefähigkeit des Modells aussagt. Vielmehr ist es ein lehrreiches Beispiel auf ONNX, dass auch komplexe Architekturen leicht auf das Terminal übertragen werden können. Ich weiß nicht, was die Autoren des Artikels über die Erforschung neuronaler Netzarchitekturen für die Zeitreihenprognose geraucht haben :) hier ist entweder eine angemessene Schätzung erforderlich oder eine Klassifizierung anstelle einer Regression.

Optionen der Metriken für Experimente

Time Series Forecasting: Error Metrics to Evaluate Model Performance
Time Series Forecasting: Error Metrics to Evaluate Model Performance
  • Pablo Cánovas
  • medium.com
The idea of this post comes from the different error metrics I have dealt with working with time series data and forecasting models. Among other things, we make energy production forecasts of renewable power plants of different capacities and technologies. Our aim is to develop forecasting models that reduce the penalties caused by the...