Création d'un modèle

Plusieurs méthodes sont disponibles pour obtenir un modèle prêt au format ONNX. La bibliothèque populaire ONNX Model Zoo contient plusieurs modèles ONNX pré-formés pour différents types de tâches. L'avantage de cette collection est que le bloc-notes de chaque modèle contient des liens vers l'ensemble de données de formation et des références vers l'article original qui décrit l'architecture du modèle.

La plupart des frameworks d'apprentissage automatique utilisent Python. Pour installer le runtime ONNX pour Python, utilisez l'une des commandes suivantes :

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

Pour invoquer le runtime ONNX en Python, utilisez la commande suivante :

import onnxruntime
session = onnxruntime.InferenceSession("chemin vers le modèle")

Pour les entrées et sorties du modèle, consultez la documentation du modèle concerné. Vous pouvez également utiliser des outils de visualisation pour afficher le modèle, tels que Netron ou WinML Dashboard. Dans le runtime ONNX, vous pouvez également interroger les métadonnées d'un modèle et ses entrées et sorties :

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

Vous pouvez créer des modèles ONNX directement dans le terminal MetaTrader 5 ou dans MetaEditor en utilisant Python.

Python dans MetaTrader 5

MetaTrader 5 fournit un support prêt à l'emploi pour les scripts Python. Pour activer ces opérations, les développeurs de terminaux fournissent le module MetaTrader5 pour Python : https://pypi.org/project/MetaTrader5.

Dans l'environnement de développement intégré MetaEditor, en plus de créer des applications dans MQL5, vous pouvez également exécuter des scripts Python directement depuis l'éditeur. Pour cela, indiquez le chemin d'accès à l'exécutable dans Paramètres MetaEditor :

Définition du chemin d'accès au fichier exécutable Python dans les paramètres de MetaEditor

Si Python n'est pas installé sur votre ordinateur, cliquez sur Installer pour télécharger le fichier d'installation.

Vous pouvez créer un script Python dans MetaEdtior ou le télécharger dans le dossier de données du terminal et l'exécuter immédiatement à l'aide de la touche F7 (Compiler). Cela ouvrira le terminal MetaTrader 5 avec le script exécuté sur le graphique actuel. Les messages de la console Python (stdout, stderr) seront affichés dans la section Erreurs.

Opérations avec des modèles dans MetaTrader 5

Le langage MQL5 vous permet d'exécuter des modèles ONNX directement dans le terminal MetaTrader 5. Cela se fait en trois étapes :

  1. Entraînez le modèle sur une plateforme tierce, telle que Python.
  2. Convertissez le modèle en ONNX.
  3. Incluez le modèle ONNX dans un Expert Advisor en utilisant la fonction ONNX et exécutez-le dans le terminal MetaTrader 5.

L'intégration de Python dans MQL5 permet d'exécuter un script python et d'enregistrer un modèle ONNX dans MetaEditor ou de l'exécuter directement sur un graphique dans MetaTrader 5. Vous pouvez entraîner le modèle à l'aide d'un script Python pré-écrit aussi souvent que nécessaire directement dans le terminal. La bibliothèque comprend des fonctions prêtes à l'emploi pour obtenir des données de prix, qui peuvent être entrées dans un modèle ONNX :

 

Exemple de modèle #

Un exemple de modèle ONNX fini est disponible dans les projets publics. Vous devez d'abord activer MQL5 Storage dans le Navigateur en spécifiant votre login MQL5 dans les paramètres MetaEditor (sensible à la casse).

activate_storage

Après l'activation, recherchez le projet ONNX.Price.Prediction et rejoignez-le via la commande du menu contextuel.

project_join

 

Ensuite, mettez à jour le projet à partir de MQL5 Storage.

update_project

Le projet contient un modèle ONNX, deux scripts python, un script MQL5 pour le fonctionnement du projet et un fichier de projet MQL5 (ONNX.Price.Prediction.mqproj).

python_script

 

 

Vous pouvez créer vous-même le modèle ONNX à l'aide du script PricePredictionTraining.py inclus dans le projet. Pour ce faire, vous devez d'abord installer les modules requis à partir de la ligne de commande.

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

Après avoir installé les modules, ouvrez le script PricePredictionTraining.py dans MetaEditor et exécutez-le avec le bouton Compiler ou avec la touche F7.

python_script_compile

 

Avant d'exécuter le script Python, assurez-vous que le terminal MetaTrader 5 est connecté à un serveur avec le symbole EURUSD disponible. Par exemple, connectez-vous au serveur MetaQuotes-Demo et cochez "Intégration avec Python" dans les paramètresdu terminal.

terminal_py_integration_check_box

 

Lors de la formation du réseau, MetaEditor imprimera les messages du script Python jusqu'à ce que la formation soit terminée.

onnx_model_ready

 

Lorsque le résultat est de 100 %, le modèle ONNX est prêt et il est enregistré dans le dossier du projet dans <répertoire des données du terminal>\MQL5\Shared Projects\ONNX.Price.Prediction\Python.

Vous pouvez vérifier le modèle résultant en exécutant le deuxième script PricePrediction.py, en appuyant sur F7.

prediction_result