- Supporto ONNX
- Conversione Di Formato
- Conversione automatica del tipo di dati
- Creazione di un Modello
- Esecuzione di un modello
- Eseguire nello Strategy Tester
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- Strutture dati
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
|
Per richiamare il runtime ONNX in Python, usare il seguente comando:
import onnxruntime
|
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"], {
|
È 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:
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:
- Addestra il modello in una piattaforma di terze parti, come Python.
- Convertire il modello in ONNX.
- 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:
- copy_rates_from - ottiene le barre a partire dalla data specificata
- copy_rates_from_pos - ottiene le barre a partire dall'indice specificato
- copy_rates_range - ottiene le barre per l'intervallo di date specificato
- copy_ticks_from - ottiene i tick a partire dalla data specificata
- copy_ticks_range - ottiene i tick per l'intervallo di date specificato
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).
Dopo l'attivazione, trovare il progetto ONNX.Price.Prediction e unirlo tramite il comando del menu contestuale.
Successivamente, aggiornare il progetto da MQL5 Storage.
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).
È 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
|
Dopo aver installato i moduli, aprire lo script PricePredictionTraining.py in Metaeditor ed eseguirlo con il pulsante Compila o con il tasto F7.
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.
Durante l'addestramento della rete, Metaeditor stamperà i messaggi dallo script Python fino al completamento dell'addestramento.
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.