Creación de un modelo

Hay varias formas de obtener un modelo terminado en formato ONNX. La biblioteca reconocida es ONNX Model Zoo, que contiene varios modelos ONNX previamente entrenados para diferentes tipos de tareas. La ventaja de esta colección es que el notebook de cada modelo contiene enlaces al conjunto de datos de entrenamiento, además de enlaces al documento científico original que describe la arquitectura del modelo.

La mayoría de plataformas para el aprendizaje automático usa Python, para instalar el entorrno ONNX para Python, use uno de los comandos siguientes:

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

Para invocar el tiempo de ejecución de ONNX en Python, use el siguiente comando

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

Los datos de entrada y salida para usar el modelo deben encontrarse en la documentación del modelo correspondiente. También puede usar recursos de visualización como Netron o WinML Dashboard para ver el modelo. El tiempo de ejecución de ONNX también permite consultar los metadatos del modelo y sus datos de entrada y salida:

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

Puede crear un modelo ONNX directamente en el terminal MetaTrader 5 o en el entorno de trabajo del MetaEditor en Python.

Python в MetaTrader 5

La plataforma MetaTrader 5 ofrece soporte al trabajo con scripts de Python listos para usar. Para ello, los desarrolladores del terminal ofrecen y mantienen un módulo MetaTrader5 para Python – https://pypi.org/project/MetaTrader5.

El entorno de desarrollo integrado de MetaEditor permite escribir no solo aplicaciones en MQL5, sino también ejecutar scripts de Python directamente desde el editor. Para hacer esto, debe especificar la ruta al archivo ejecutable en los ajustes del MetaEditor:

Establecemos la ruta al archivo ejecutable de Python en la configuración de MetaEditor

Si no tiene Python en su computadora, pulse "Instalar" para descargar el archivo de instalación.

Puede crear un script de Python en el MetaEdtior o cargarlo en la carpeta de datos del terminal y ejecutarlo directamente usando la tecla F7 ("Compilar"). Después de eso, se abrirá el terminal MetaTrader 5 y se iniciará el script en el gráfico actual. Los mensajes de la consola Python (stdout, stderr) se mostrarán en el apartado "Errores".

Esquema de trabajo con modelos en MetaTrader 5

El lenguaje MQL5 le permite ejecutar modelos ONNX directamente en el terminal MetaTrader 5. Esto se hace en 3 pasos:

  1. Entrene el modelo en una plataforma de terceros, como Python.
  2. Convierta modelo a ONNX
  3. Incluya el modelo ONNX en el asesor utilizando las funciones ONNX y ejecútelo en el terminal MetaTrader 5.

La integración de Python del lenguaje MQL5 permite ejecutar un script de Python y guardar un modelo ONNX en MetaEditor o incluso ejecutarlo en un gráfico en MetaTrader 5. Puede entrenar el modelo usando un script de Python escrito una vez con la frecuencia que necesite directamente en el terminal. Como la biblioteca contiene funciones integradas preparadas para obtener datos de precio que se pueden suministrar a la entrada del modelo ONNX:

 

Ejemplo de modelo preparado #

Puede encontrar un ejemplo de un modelo ONNX terminado en los proyectos públicos. Para hacer esto, primero debe activar MQL5 Storage en el Navegador especificando su login MQL5 en la configuración del MetaEditor, distinguiendo entre mayúsculas y minúsculas.

activate_storage

Después de la activación, busque el proyecto ONNX.Price.Prediction y únase a él usando el comando del menú contextual.

project_join

 

A continuación, actualice el proyecto desde MQL5 Storage.

update_project

Después de eso, para usted estará disponible un proyecto en el que encontrará un modelo ONNX listo para usar, dos scripts de python, un script MQL5 para el funcionamiento del proyecto y un archivo de proyecto MQL5 (ONNX.Price.Prediction.mqproj).

python_script

 

 

Puede crear un modelo ONNX usted mismo utilizando el script PricePredictionTraining.py incluido en el proyecto. Para hacer esto, primero debe instalar los módulos necesarios en la computadora desde la línea de 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

Después de instalar los módulos, abra el script PricePredictionTraining.py en MetaEditor y ejecútelo con el botón "Compilar" o con la tecla F7.

python_script_compile

 

Antes de ejecutar el script Python, asegúrese de que el terminal MetaTrader 5 esté conectado a un servidor que tenga el símbolo EURUSD. Por ejemplo, conéctese al servidor MetaQuotes-Demo y compruebe en los ajustes  del terminal la casilla de verificación "Integración con Python"

terminal_py_integration_check_box

 

Durante el entrenamiento de la red, el MetaEditor mostrará mensajes del script de Python hasta que se complete el entrenamiento.

onnx_model_ready

 

Cuando el resultado es del 100%, el modelo ONNX está listo y se guarda en la carpeta del proyecto <directorio de datos del terminal>\MQL5\Shared Projects\ONNX.Price.Prediction\Python.

Puede comprobar el modelo resultante ejecutando el segundo script PricePrediction.py haciendo clic en el botón F7.

prediction_result