Creazione di un Modello

Sono disponibili diversi metodi per ottenere un modello pronto nel formato ONNX. La popolare libreria ONNX Model Zoo contiene diversi modelli ONNX pre-addestrati per diversi tipi di attività. Il vantaggio di questa collezione è che il notebook di ogni modello contiene collegamenti al set di dati di addestramento e riferimenti al documento originale che descrive l'architettura del modello.

La maggior parte dei framework di apprendimento automatico usa Python. Per installare il runtime ONNX per Python, usare uno dei seguenti comandi:

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

Per richiamare il runtime ONNX in Python, usare il seguente comando:

import onnxruntime
session = onnxruntime.InferenceSession("path to model")

Per il modello d'ingresso e d'uscita, consultare la documentazione del modello pertinente. È anche possibile utilizzare strumenti di visualizzazione per visualizzare il modello, come Netron o WinML Dashboard. Nel runtime ONNX, puoi anche interrogare i metadati di un modello e i suoi ingressi e uscite:

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

È possibile creare modelli ONNX direttamente nel terminale MetaTrader 5 o in MetaEditor utilizzando Python.

Python in MetaTrader 5

MetaTrader 5 fornisce supporti preconfigurati per gli script Python. Per abilitare queste operazioni, gli sviluppatori del terminale forniscono il modulo MetaTrader5 per Python: https://pypi.org/project/MetaTrader5.

Nell'ambiente di sviluppo integrato Metaeditor, oltre a creare applicazioni in MQL5, è anche possibile eseguire script Python direttamente dall'editor. Per fare questo, specificare il percorso dell'eseguibile in Metaeditor settings:

Impostare il percorso del file eseguibile Python nelle impostazioni di Metaeditor

Se Python non è installato sul computer, fare clic su Installa per scaricare il file di installazione.

È possibile creare uno script Python in MetaEdtior o caricarlo nella cartella dati del terminale ed eseguirlo immediatamente utilizzando la chiave F7 (Compila). Questo aprirà il terminale MetaTrader 5 con lo script in esecuzione sul grafico corrente. I messaggi dalla console Python (stdout, stderr) saranno visualizzati sotto la sezione Errori.

Operazioni con i modelli in MetaTrader 5

Il linguaggio MQL5 consente di eseguire i modelli ONNX direttamente nel terminale MetaTrader 5. Questo viene fatto in tre passaggi:

  1. Addestra il modello in una piattaforma di terze parti, come Python.
  2. Convertire il modello in ONNX.
  3. Includere il modello ONNX in un Expert Advisor utilizzando le funzioni ONNX ed eseguire nel terminale MetaTrader 5.

L'ntegrazione di Python in MQL5 consente di eseguire uno script python e salvare un modello ONNX nel Metaeditor o eseguirlo direttamente su un grafico in MetaTrader 5. È possibile addestrare il modello utilizzando uno script Python pre-scritto tutte le volte che è necessario direttamente nel terminale. La libreria include funzioni pronte all'uso per ottenere i dati sui prezzi, che possono essere inseriti in un modello ONNX:

 

Esempio di modello #

Un esempio di modello ONNX finito è disponibile in progetti pubblici. Si dovrebbe prima attivare MQL5 Storage nel Navigatore specificando il login MQL5 nelle impostazioni di Metaeditor (distinzione tra maiuscole e minuscole).

activate_storage

Dopo l'attivazione, trovare il progetto ONNX.Price.Prediction e unirlo tramite il comando del menu contestuale.

project_join

 

Successivamente, aggiornare il progetto da MQL5 Storage.

update_project

Il progetto contiene un modello ONNX, due script python, uno script MQL5 per le operazioni del progetto e un file di progetto MQL5 (ONNX.Price.Prediction.mqproj).

python_script

 

 

È possibile creare il modello ONNX da soli utilizzando lo script PricePredictionTraining.py incluso nel progetto. Per fare questo, è necessario prima installare i moduli richiesti dalla riga di comando.

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

Dopo aver installato i moduli, aprire lo script PricePredictionTraining.py in Metaeditor ed eseguirlo con il pulsante Compila o con il tasto F7.

python_script_compile

 

Prima di eseguire lo script Python, assicurarsi che il terminale MetaTrader 5 sia collegato ad un server con il simbolo EURUSD disponibile. Ad esempio, connettersi al server MetaQuotes-Demo e controllare "Integrazione con Python" nelle impostazioni del terminale.

terminal_py_integration_check_box

 

Durante l'addestramento della rete, Metaeditor stamperà i messaggi dallo script Python fino al completamento dell'addestramento.

onnx_model_ready

 

Quando il risultato è 100%, il modello ONNX è pronto e viene salvato nella cartella del progetto all'indirizzo <cartella dati del terminale>\MQL5\Shared Projects\ONNX.Price.Prediction\Python.

È possibile controllare il modello risultante eseguendo il secondo script PricePrediction.py, premendo F7.

prediction_result