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:
- Codificar los pesos del modelo directamente en código MQL5 (frágil, limitado)
- Hacer llamadas HTTP a un servidor Python externo (latencia, problemas de fiabilidad)
- Usar importaciones DLL (preocupaciones de seguridad, pesadillas de compatibilidad)
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
- 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.
- Exporta el modelo entrenado a formato .onnx usando librerías como
onnxmltools,skl2onnxotorch.onnx.export(). - Incrusta el archivo .onnx como recurso en tu Expert Advisor MQL5 (similar a incrustar imágenes o archivos de sonido).
- 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:
OnnxCreate()/OnnxCreateFromBuffer()— Cargar un modelo desde archivo o memoriaOnnxRun()— Ejecutar el modelo con datos de entrada y obtener prediccionesOnnxGetInputCount()/OnnxGetOutputCount()— Inspeccionar la estructura del modeloOnnxSetInputShape()/OnnxSetOutputShape()— Configurar dimensiones del tensorOnnxRelease()— Cerrar la sesión y liberar memoria
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:
- XGBoost excele capturando relaciones no lineales en datos estructurados
- LightGBM es más rápido y maneja features de alta dimensión eficientemente
- CatBoost maneja features categóricas y es resistente al sobreajuste
- Redes Neuronales pueden capturar patrones temporales complejos e interacciones
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:
| Enfoque | Pros | Contras | Mejor Para |
|---|---|---|---|
| ONNX Runtime | Soporte nativo MT5, rápido, fiable, backtesteable | Requiere experiencia ML para entrenamiento | EAs ML de grado producción |
| API Externa (servidor Python) | Ecosistema Python completo, fácil prototipar | Latencia, fiabilidad, no se puede backtestear bien | Investigación y prototipos |
| Pesos hardcodeados | Simple, sin dependencias | Frágil, difícil actualizar, tipos de modelo limitados | Solo modelos muy simples |
| Imports DLL | Flexibilidad total | Riesgos de seguridad, problemas de compatibilidad, MQL5 Market no lo permite | Sistemas institucionales custom |
| Solo etiqueta "IA" | Fácil de comercializar | No es realmente IA — engañoso | Marketing (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:
- 4 modelos ONNX: XGBoost, LightGBM, CatBoost y una red neuronal profunda
- Conjunto de features: 60+ features ingenierizadas incluyendo patrones de precio, medidas de volatilidad, timing por sesión y correlaciones entre activos
- Sistema de consenso: Los 4 modelos deben estar de acuerdo en la dirección antes de abrir una operación
- Entrenado con: 10+ años de datos tick de XAUUSD con validación walk-forward
- Resultado en backtest: +7.229% de retorno con drawdown controlado en todo el período de validación
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:
- Drawdown máximo en señal en vivo: 4,08%
- Crecimiento en vivo: +15,6% verificado
- Enfoque: Retornos consistentes y de baja volatilidad en lugar de crecimiento agresivo
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
- Python 3.8+ con scikit-learn, XGBoost o PyTorch instalados
- MetaTrader 5 build 3600 o superior
- Comprensión básica de conceptos de machine learning
- Datos históricos de tu instrumento objetivo (mínimo 5+ años)
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
- Desajuste de features: Las features que calculas en MQL5 deben coincidir exactamente con lo que el modelo fue entrenado en Python. Errores off-by-one o métodos de cálculo diferentes producirán predicciones basura.
- Errores de forma: Los modelos ONNX esperan formas de tensor específicas. Siempre llama a
OnnxSetInputShape()antes de ejecutar inferencia. - Sobreajuste: El mayor riesgo no es la integración ONNX — es el modelo en sí. Usa validación walk-forward, no solo divisiones train/test.
- Normalización de datos: Si tu modelo Python espera features normalizadas (0-1 o z-scores), tu código MQL5 debe aplicar exactamente la misma normalización.
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
- Modelos transformer: Arquitecturas basadas en atención (la misma tecnología detrás de ChatGPT) están siendo adaptadas para predicción de series temporales. Cuando versiones ligeras puedan ejecutarse eficientemente como modelos ONNX, aparecerán en EAs.
- Aprendizaje por refuerzo: Entrenar modelos que aprenden políticas óptimas de trading a través de experiencia simulada — y luego desplegarlos como modelos ONNX para ejecución en vivo.
- Conjuntos de features más grandes: A medida que el rendimiento del ONNX Runtime mejore, los EAs incorporarán datos más amplios — fuentes de datos alternativos, correlaciones entre mercados, indicadores de sentimiento.
- Reentrenamiento automatizado: Pipelines que periódicamente re-entrenan modelos con nuevos datos y actualizan los archivos .onnx — manteniendo el EA adaptativo sin intervención manual.
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.