← Back to Blog
Guides 12 min read

Modelos ONNX en MT5: Cómo Funciona Realmente el Trading con IA

La mayoría de 'bots de trading con IA' no usan IA en absoluto. ONNX cambió eso — permite ejecutar redes neuronales reales dentro de MetaTrader 5. Aquí tienes un análisis técnico profundo sobre cómo funciona, qué permite y cómo lo usamos para operar oro con 4 modelos ML en paralelo.

EN ES DE FR PT RU ZH JA AR

TL;DR

  • ONNX (Open Neural Network Exchange) es un formato open-source que permite ejecutar modelos ML entrenados directamente dentro de MT5 — sin servidores externos ni llamadas API.
  • MetaTrader 5 tiene soporte nativo de ONNX Runtime desde la build 3600+, con funciones MQL5 dedicadas para cargar, ejecutar y gestionar modelos.
  • Esto separa los EAs con IA real de los falsos: si no hay un archivo .onnx en el paquete del EA, no usa machine learning.
  • Karat Killer usa 4 modelos ONNX (XGBoost, LightGBM, CatBoost, Red Neuronal) funcionando como ensemble dentro de MT5 para trading de XAUUSD.

¿Qué Es ONNX? (Y Por Qué Debería Importarte Como Trader)

ONNX (Open Neural Network Exchange) es un formato open-source para modelos de machine learning. Piensa en él como un traductor universal: entrenas un modelo en Python usando frameworks como PyTorch, TensorFlow, XGBoost o scikit-learn — y luego lo exportas a formato .onnx para que pueda ejecutarse en cualquier lugar.

Para los traders, esto importa porque MetaTrader 5 tiene soporte nativo de ONNX Runtime. Eso significa que puedes entrenar un modelo ML sofisticado en tu estación de trabajo, exportarlo como archivo .onnx, incrustarlo directamente en un Expert Advisor y ejecutarlo en cada tick — sin servidores externos, llamadas API ni dependencias de internet.

Este es un cambio fundamental. Antes de ONNX, ejecutar modelos ML en MT5 significaba:

ONNX resolvió los tres problemas. El modelo se ejecuta nativamente dentro del terminal, a la velocidad de C++, con cero dependencias externas.

El proyecto ONNX está respaldado por Microsoft, Meta, Amazon y docenas de otras grandes empresas tecnológicas — así que no es un experimento de nicho. Es el estándar de la industria para interoperabilidad de modelos.

Cómo Funciona ONNX Dentro de MetaTrader 5

MetaQuotes añadió soporte nativo de ONNX a MT5 a partir de la build 3600+. Este es el flujo técnico:

El Pipeline: Entrenar → Exportar → Incrustar → Ejecutar

  1. Entrena tu modelo en Python (o cualquier framework ML). Aquí es donde haces ingeniería de features, validación cruzada, walk-forward testing — todo el trabajo pesado.
  2. Exporta el modelo entrenado a formato .onnx usando librerías como onnxmltools, skl2onnx o torch.onnx.export().
  3. Incrusta el archivo .onnx como recurso en tu Expert Advisor MQL5 (similar a incrustar imágenes o archivos de sonido).
  4. Ejecuta el modelo en cada tick usando las funciones ONNX nativas de MQL5: OnnxCreate(), OnnxRun(), OnnxRelease().

Funciones ONNX Clave en MQL5

MT5 proporciona un conjunto completo de funciones para trabajar con modelos ONNX:

El ONNX Runtime maneja la conversión automática de tipos de datos entre tipos MQL5 y los tipos tensor esperados por el modelo — así que no necesitas hacer casting manual entre formatos float/double.

Rendimiento

Como el ONNX Runtime es código C++ compilado ejecutándose dentro del proceso MT5, la inferencia es extremadamente rápida. Un modelo típico con 50-100 features se ejecuta en menos de 1 milisegundo por predicción. Eso es suficientemente rápido para análisis tick por tick incluso en los instrumentos más volátiles.

Por Qué ONNX Cambia las Reglas del Juego para Desarrollo de EAs

Antes de ONNX en MT5, la brecha entre investigación ML y trading real era enorme. Podías construir modelos increíbles en Python — pero meterlos en un EA de producción era una pesadilla. Esto es lo que ONNX resuelve específicamente:

1. Independencia de Framework

No estás atado a ningún toolkit ML específico. Entrena con XGBoost hoy, cambia a LightGBM mañana, añade una red neuronal PyTorch el mes que viene — todos exportan al mismo formato .onnx y se ejecutan idénticamente dentro de MT5.

2. Sin Dependencias Externas

El modelo se ejecuta dentro del proceso MT5. Sin servidor Python que mantener. Sin llamadas API que puedan fallar. Sin conexión a internet necesaria para predicciones. Esto es crítico para trading en vivo, donde la fiabilidad importa más que todo.

3. Compatibilidad Total con el Strategy Tester

Los modelos ONNX funcionan nativamente en el Strategy Tester de MT5. Puedes hacer backtest de un EA basado en ML con más de 10 años de datos de tick — exactamente igual que testearías un EA tradicional basado en reglas. Esto es enorme para la validación.

4. Actualizaciones de Modelo Sin Cambios de Código

Cuando re-entrenas un modelo con nuevos datos, simplemente reemplazas el archivo .onnx. El código del EA permanece igual. Esto hace que el mantenimiento y las actualizaciones sean dramáticamente más simples.

5. Arquitectura Multi-Modelo

MT5 puede cargar múltiples modelos ONNX simultáneamente. Esto permite enfoques de ensemble — ejecutar varios modelos diferentes y combinar sus predicciones para señales más robustas.

El Flujo de Trabajo de Entrenamiento ONNX (Paso a Paso)

Así es como se ve el proceso real de desarrollo para construir un EA potenciado por ONNX — no la versión de marketing, la real:

Paso 1: Ingeniería de Features

Los datos de precio crudos (OHLCV) son casi inútiles para modelos ML. Necesitas transformarlos en features significativas: indicadores técnicos, medidas estadísticas, métricas de volatilidad, patrones temporales, correlaciones entre mercados. Un buen conjunto de features puede incluir 50-200 features ingenierizadas por barra.

Aquí es donde ocurre el 80% del trabajo real. El modelo es tan bueno como sus inputs.

Paso 2: Entrenamiento y Validación

Divides tus datos en conjuntos de entrenamiento, validación y test — pero nunca aleatoriamente para series temporales. La validación walk-forward es el estándar: entrena en 2015-2020, valida en 2021, testea en 2022. Luego desplaza la ventana hacia adelante y repite.

Si tu modelo solo funciona en una ventana temporal específica, está sobreajustado. Los modelos ML genuinos deben demostrar estabilidad a través de múltiples regímenes de mercado.

Para más sobre por qué la mayoría de EAs ML fallan en esta etapa, consulta nuestro análisis profundo sobre Expert Advisors con machine learning: marketing vs realidad.

Paso 3: Exportación ONNX

Una vez validado, exportas el modelo. La conversión es directa con librerías como onnxmltools o skl2onnx. El archivo .onnx exportado típicamente va de 100KB a 5MB dependiendo de la complejidad del modelo.

Paso 4: Integración MQL5

Incrusta el archivo .onnx como recurso en tu EA, cárgalo en OnInit(), ejecuta predicciones en OnTick() y libera en OnDeinit(). El código MQL5 maneja el cálculo de features desde datos de precio en vivo y los alimenta al modelo.

Paso 5: Validación en Strategy Tester

Antes de ir en vivo, haz backtest del EA con el modelo ONNX incrustado a través de todo tu conjunto de datos — incluyendo períodos fuera de muestra. Si los resultados del backtest no coinciden con tu validación en Python, algo está mal con la integración.

Modelos Ensemble: Por Qué Un Solo ONNX No Es Suficiente

En ML competitivo, los modelos individuales raramente ganan. Los ensembles — combinaciones de múltiples modelos — superan consistentemente a los modelos individuales en precisión y robustez. Lo mismo aplica al trading.

Por Qué Funcionan los Ensembles

Diferentes algoritmos ML ven los datos de manera diferente:

Cuando combinas sus predicciones, los errores de un modelo son corregidos por otros. La señal del ensemble es más estable y fiable que cualquier modelo individual.

Cómo Funcionan los Ensembles en MT5

El soporte ONNX de MT5 hace esto práctico. Puedes cargar 2, 3, 4 o más modelos ONNX simultáneamente — cada uno ejecutando su propia inferencia sobre las mismas features de entrada. Luego tu código MQL5 combina las predicciones usando votación, promediado o esquemas ponderados.

La sobrecarga es mínima. Ejecutar 4 modelos ONNX en lugar de 1 podría añadir 2-3 milisegundos por tick — insignificante para cualquier estrategia de trading.

Ejemplo Real: Ensemble de 4 Modelos para Oro

Nuestro Karat Killer EA usa exactamente este enfoque para trading de XAUUSD: 4 modelos ONNX diferentes (XGBoost, LightGBM, CatBoost y una red neuronal) ejecutándose en paralelo. Cada modelo vota sobre si ir largo, corto o quedarse fuera. Las operaciones solo se ejecutan cuando el ensemble alcanza consenso — reduciendo señales falsas significativamente.

El resultado: un retorno en backtest de +7.229% en 10 años de datos XAUUSD, con el modelo validado a través de walk-forward testing en múltiples regímenes de mercado.

ONNX vs Otros Enfoques de IA en MT5

ONNX no es la única forma de añadir inteligencia a un EA. Así se compara con las alternativas:

EnfoqueProsContrasMejor Para
ONNX RuntimeSoporte nativo MT5, rápido, fiable, backtesteableRequiere experiencia ML para entrenamientoEAs ML de grado producción
API Externa (servidor Python)Ecosistema Python completo, fácil prototiparLatencia, fiabilidad, no se puede backtestear bienInvestigación y prototipos
Pesos hardcodeadosSimple, sin dependenciasFrágil, difícil actualizar, tipos de modelo limitadosSolo modelos muy simples
Imports DLLFlexibilidad totalRiesgos de seguridad, problemas de compatibilidad, MQL5 Market no lo permiteSistemas institucionales custom
Solo etiqueta "IA"Fácil de comercializarNo es realmente IA — engañosoMarketing (desafortunadamente común)

Para cualquiera serio sobre ML en trading, ONNX es el claro ganador. Es el único enfoque que te da fiabilidad de grado producción, compatibilidad con el Strategy Tester Y la capacidad de vender en el MQL5 Market (ya que los DLLs están restringidos).

Esta es también la razón por la que es el indicador más fiable de si un EA realmente usa machine learning. Si un EA dice ser "potenciado por IA" pero no incluye archivos .onnx en sus recursos — no está usando ML real. Punto.

Cómo BLODSALGO Usa ONNX (Nuestra Arquitectura Real)

Vamos a ser específicos — porque las afirmaciones vagas de "IA" son exactamente contra lo que luchamos.

Karat Killer — Ensemble de 4 Modelos para XAUUSD

Karat Killer es nuestro EA más técnicamente avanzado. Esto es lo que hay dentro:

Stability Killer AI — ML Especializado en AUDCAD

Stability Killer AI usa un enfoque diferente — un único modelo ONNX especializado optimizado para las características únicas de reversión a la media del AUDCAD. La prioridad aquí es la preservación de capital:

Ambos EAs incluyen los archivos del modelo .onnx como recursos incrustados — puedes verificarlo tú mismo comprobando la estructura de recursos del EA en MetaEditor. Si quieres entender cómo se cruzan el oro y la IA en el trading, escribimos un artículo dedicado sobre IA y machine learning para trading de XAUUSD.

Primeros Pasos con ONNX en Tus Propios EAs

Si eres un desarrollador MQL5 buscando añadir capacidades ML a tus EAs, aquí tienes una hoja de ruta práctica:

Requisitos Previos

Ejemplo Mínimo Funcional

La integración ONNX más simple en MQL5 se ve así:

// En OnInit()
int handle = OnnxCreate("model.onnx", 0);
OnnxSetInputShape(handle, 0, input_shape);
OnnxSetOutputShape(handle, 0, output_shape);

// En OnTick()
float features[];
// ... llenar features desde datos de precio ...
float prediction[];
OnnxRun(handle, 0, features, prediction);

// En OnDeinit()
OnnxRelease(handle);

Errores Comunes

MetaQuotes ha publicado extensa documentación ONNX con ejemplos de código para varios tipos de modelos.

El Futuro de ONNX en Trading Algorítmico

La adopción de ONNX en MT5 todavía está en etapas tempranas. La mayoría de EAs en el MQL5 Market son puramente basados en reglas — lo cual no es necesariamente malo, pero significa que la ventaja competitiva del ML genuino es significativa.

Lo Que Viene

Por Qué Importa Ahora

La ventaja en trading algorítmico viene de hacer lo que otros no pueden — o no quieren. Ahora mismo, la barrera para construir EAs potenciados por ONNX es suficientemente alta como para que muy pocos desarrolladores lo intenten. Esa barrera caerá con el tiempo.

Para traders evaluando EAs, entender ONNX es una habilidad práctica: te permite distinguir entre productos ML genuinos y etiquetas de "IA" solo de marketing. Busca archivos .onnx, pregunta sobre metodología de entrenamiento, exige resultados walk-forward. La tecnología es real — pero solo cuando está realmente implementada.

FAQ: Modelos ONNX en MetaTrader 5

¿Qué versión de MT5 soporta ONNX?
El soporte de ONNX Runtime se añadió en MetaTrader 5 build 3600+. Asegúrate de que tu terminal está actualizado a la última versión. Puedes comprobar tu número de build en Ayuda → Acerca de en el terminal.
¿Los modelos ONNX ralentizan mi EA?
Impacto mínimo. Un modelo típico con 50-100 features de entrada ejecuta la inferencia en menos de 1 milisegundo. Incluso un ensemble de 4 modelos solo añade 2-3ms por tick. Para la mayoría de estrategias, esto es imperceptible.
¿Puedo usar modelos ONNX en el Strategy Tester de MT5?
Sí — esta es una de las mayores ventajas de ONNX. Los modelos se ejecutan nativamente en el Strategy Tester, así que puedes hacer backtest de EAs basados en ML con años de datos históricos igual que cualquier otro EA.
¿Qué frameworks ML pueden exportar a ONNX?
La mayoría de frameworks principales: scikit-learn, XGBoost, LightGBM, CatBoost, PyTorch, TensorFlow, Keras, y más. Las herramientas de conversión (onnxmltools, skl2onnx, torch.onnx) manejan el proceso de exportación.
¿Cómo sé si un EA realmente usa ONNX?
Abre el EA en MetaEditor y comprueba la pestaña de Recursos. Los EAs basados en ONNX reales incluyen archivos .onnx como recursos incrustados. Si no hay archivos .onnx, el EA no usa machine learning — independientemente de lo que diga el marketing.
¿Funciona ONNX con hosting VPS?
Sí. Como el ONNX Runtime se ejecuta dentro del proceso MT5, funciona en cualquier sistema que pueda ejecutar MetaTrader 5 — incluyendo servidores VPS. No se requiere instalación de software adicional.

Risk Disclaimer: Trading foreign exchange, gold (XAUUSD), and other financial instruments involves significant risk of loss and is not suitable for all investors. The information in this article is for educational purposes only and does not constitute financial advice. Past performance of any Expert Advisor does not guarantee future results. Always test strategies on a demo account before trading with real capital, and never risk money you cannot afford to lose.