- Support ONNX
- Conversion de Formats
- Conversion automatique des types
- Création d'un modèle
- Exécution d'un modèle
- Exécuter dans le Testeur de Stratégie
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- Structures de données
Exécution d'un modèle
Pour exécuter un modèle ONNX dans MQL5, effectuez 3 étapes :
- Chargez le modèle à partir d'un fichier *.onnx à l'aide de la fonction OnnxCreate ou à partir d'un tableau à l'aide de OnnxCreateFromBuffer.
- Spécifiez les formes de données d'entrée et de sortie à l'aide des fonctions OnnxSetInputShape et OnnxSetOutputShape.
- Exécutez le modèle à l'aide de la fonction OnnxRun, en lui transmettant les paramètres d'entrée et de sortie pertinents.
- Si nécessaire, vous pouvez mettre fin à l'opération du modèle à l'aide de la fonction OnnxRelease.
Lors de la création d'un modèle ONNX, vous devez tenir compte des limites et restrictions existantes, qui sont décrites sur https://github.com/microsoft/onnxruntime/blob/rel-1.14.0/docs /OperatorKernels.md
Certains exemples de telles restrictions sont présentés ci-dessous :
Opération |
Types de données supportés |
---|---|
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) |
Vous trouverez ci-dessous un exemple de code MQL5 du projet public ONNX.Price.Prediction.
const long ExtOutputShape[] = {1,1}; // forme de sortie du modèle
|
Exemple d'exécution du script :
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|
Le terminal MetaTrader 5 a sélectionné l'exécuteur optimal pour les calculs : ONNX Runtime Execution Provider. Dans cet exemple, le modèle a été exécuté sur le CPU.
Modifions le script pour calculer le pourcentage de prédictions de prix de clôture réussies basées sur les valeurs des 10 barres précédentes.
#resource "Python/model.onnx" as uchar ExtModel[]// modèle en tant que ressource
|
Exécution du script : la précision de la prédiction est d'environ 51 %
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|