Cómo creamos la plataforma de trading más potente con aprendizaje automático: crónica del desarrollo de MQL y MetaTrader según los archivos, foros y lanzamientos
Desde los primeros asesores expertos hasta el AI Assistant basado en agentes, MCP y OpenBLAS: cómo ha evolucionado el ecosistema MQL.
La historia de MQL como un recorrido que va desde un sencillo lenguaje de estrategias de trading hasta un entorno completo de desarrollo y análisis con MetaEditor, MQL5, Python, ONNX, un AI Assistant basado en agentes, Model Context Protocol (MCP), OpenBLAS y la infraestructura Git de Algo Forge.

Del lenguaje para asesores expertos al entorno de desarrollo
Hoy en día, resulta difícil considerar MetaEditor simplemente como un editor de código. Incluye ayuda, compilador, depuración, perfilado, proyectos, integración con MQL5.COM, un repositorio de código fuente centralizado, integración con Python, compatibilidad con ONNX, un AI Assistant, trabajo con bases de datos SQLite y manejo de archivos CSV como tablas editables. Pero esta lógica no surgió de la nada.
Desde las primeras generaciones de plataformas, MetaQuotes se ha movido en una misma dirección: ofrecer al tráder no solo un gráfico y un botón para realizar operaciones, sino también la posibilidad de describir una idea de trading mediante un programa, probarla con datos históricos y ponerla en marcha sin intervención humana. La historia de MQL es la historia de cómo un sencillo lenguaje para asesores expertos se ha convertido poco a poco en un entorno de ingeniería completo.
Internet no lo ha conservado todo. Algunas páginas antiguas han desaparecido, otras solo se conservan en la Wayback Machine de Internet Archive y otras perviven en los archivos de los foros y en noticias antiguas. Pero se ha conservado lo suficiente como para apreciar la línea principal de desarrollo:
Fx Charts → MetaQuotes → MetaTrader → MetaTrader 4 → MetaTrader 5
Una aclaración importante. En los archivos pueden encontrarse distintos números de build, denominaciones internas y títulos de antiguos hilos del foro, pero conviene leer la historia pública de las plataformas como una sucesión de productos e ideas, y no como una cadena mecánica de números. En el centro de esta historia no está el número de versión, sino la transformación gradual del terminal de trading en un entorno de trabajo para desarrolladores.
Los asesores expertos aparecieron antes que el lenguaje
La primera mención del sitio web de MetaQuotes en el archivo web se remonta a febrero de 2001. La empresa MetaQuotes Software Corp se registró oficialmente el 27 de noviembre de 2000, pero los debates sobre la futura plataforma y la automatización del trading ya habían comenzado antes. En el archivo se conserva una entrada del foro del 23 de noviembre de 2000, cuatro días antes de la constitución de la empresa.

Lo más interesante de este hallazgo inicial no es el aspecto de la página web ni los detalles técnicos. Lo importante es otra cosa: el lenguaje MQL aún no existía, pero la idea de los asesores expertos ya estaba presente. Desde el principio, no se trataba simplemente de gráficos y cotizaciones, sino de programar sistemas de trading.
Esto marca la pauta de toda la historia posterior. Desde el principio, MetaQuotes no veía el terminal de trading como una ventana pasiva para observar el mercado, sino como un entorno en el que el usuario puede formalizar una estrategia y confiársela a la máquina.
MetaQuotes y el primer MQL
La primera mención pública destacable de MQL se remonta a noviembre de 2001. En aquel momento se lanzó la versión MetaQuotes 1.78, en la que se introdujo la posibilidad de crear estrategias de trading propias —asesores expertos— utilizando el lenguaje interno MetaQuotes Language.
En la noticia de aquella época quedó esbozada toda la futura línea de desarrollo: los asesores expertos debían implementar la lógica de trading, probarse con datos históricos, realizar automáticamente operaciones en la cuenta y controlar las posiciones abiertas sin intervención humana.
Según los estándares actuales, el primer MQL parecía sumamente modesto. Su descripción cabía en una pequeña página HTML. El lenguaje no contaba con bucles, arrays ni la estructura habitual de un programa completo. Para los cálculos se utilizaba un pequeño conjunto de variables reales predefinidas.
Sin embargo, sería un error evaluar esta etapa basándose únicamente en la sintaxis. El principal avance no radicó en la riqueza del lenguaje, sino en la profundidad de la integración. El programa de asesor experto se ejecutaba directamente dentro del terminal de cliente gratuito, accedía a las series temporales y a los indicadores técnicos, podía analizar el mercado y enviar órdenes de trading al servidor.
Es precisamente aquí donde surge el principio que más tarde se convertirá en la norma para todo el ecosistema MQL: una estrategia de trading no es una señal externa que haya que trasladar manualmente al terminal de trading, sino un programa ejecutable dentro de la plataforma de trading.
MetaTrader: una nueva plataforma y una nueva escala
En mayo de 2002 comenzó la fase de pruebas abiertas del nuevo sistema MetaTrader. Ya no se trataba de una actualización meramente cosmética, sino de una reescritura importante de los componentes de servidor y de administración. En los anuncios se hablaba de compatibilidad con cientos de instrumentos, con los mercados Forex, CFD, futuros y acciones, de nuevos protocolos de intercambio y de la posibilidad de atender a miles de usuarios en línea.
Esta etapa es importante para la historia de MQL por dos razones.
En primer lugar, el terminal pasó a formar parte de un complejo más grande. El trading automático no debía funcionar en una especie de entorno aislado y casi de juguete, sino en un sistema con servidor, herramientas de gestión, un gran número de usuarios y diferentes clases de instrumentos financieros.
En segundo lugar, quedó claro que el lenguaje antiguo no era suficiente. Si el usuario no solo debe activar un asesor experto listo para usar, sino describir realmente la lógica de trading, el lenguaje debe acercarse más a la programación habitual.
MQL II: el lenguaje empieza a parecerse a un lenguaje de programación
En otoño de 2002, en MetaTrader 2.03 apareció una nueva variante del lenguaje: MQL II.

Ya no se podía considerar como un conjunto de fórmulas sencillas para un asesor experto. La descripción de MQL II era aproximadamente tres veces más extensa que la del primer MQL, aunque aún cabía en una sola página HTML. MQL II incorporó variables de tipo real, de cadena y lógico, arrays, bucles «for» y «while», así como un conjunto ampliado de funciones integradas. Entre ellas aparecieron las funciones matemáticas Abs, Ceil, Cos, Exp, Floor, Log, Mod, Pow, Round, Sin, Sqrt y Tan.
Fue un cambio importante. El usuario seguía escribiendo el programa dentro de unos límites bastante estrictos: un solo archivo fuente describía, en la práctica, una única función ejecutable que se iniciaba al recibirse un tick del instrumento. Sin embargo, dentro de ese marco ya era posible escribir una lógica más compleja, utilizar condiciones, bucles, arrays y cálculos matemáticos.
Más tarde surgió la posibilidad de llamar a un archivo compilado externo, lo que resolvía en parte el problema de la falta de funciones propias dentro de un único archivo fuente. La implementación interna aún distaba mucho de lo que serían más adelante MQL4 y MQL5: el código se ejecutaba como una máquina de pila basada en la notación polaca inversa. Pero para el usuario eso no era lo más importante. Lo más importante era que la estrategia de trading se iba transformando poco a poco de un conjunto de condiciones en un programa completo.
En cuanto a la sintaxis, MQL II se parecía a Pascal. Esto tampoco era casualidad. Durante mucho tiempo, Pascal se consideró un lenguaje ideal para iniciarse en la programación, y la filosofía de MetaQuotes en aquella época era de lo más democrática: todo usuario del terminal de trading debía tener la oportunidad de programar su propia estrategia de negociación.
Indicadores personalizados: MQL va más allá de los asesores expertos
En la primavera de 2003, el desarrollo de MQL dio otro paso importante. En marzo se añadieron al terminal de trading nuevos indicadores integrados y funciones de archivo: FileOpen, FileClose, FileDelete, FileSize, FileTell, FileSeek, FileWrite, FileReadNumber, FileReadString y otras.
Pero el giro decisivo se produjo en abril de 2003: en la versión 3.10 de MetaTrader apareció la posibilidad de utilizar indicadores y funciones propios en MQL.

Esto amplió el papel del lenguaje. Hasta entonces, MQL se asociaba principalmente con los asesores expertos: el usuario describe una estrategia de trading y el terminal la ejecuta en cada tick. Los indicadores personalizados añadieron otro escenario: ahora el tráder podía programar no solo decisiones de trading, sino también sus propios métodos de análisis del mercado.
Así, MQL pasó a abarcar dos capas del trabajo del tráder: la toma de decisiones de trading y la creación de herramientas analíticas. Más adelante, esta combinación se volvería natural para MetaTrader 4: los asesores expertos, los indicadores, los scripts y las bibliotecas se percibirían como distintos tipos de programas dentro de un mismo entorno.
Etapa de transición: de la simplicidad a un lenguaje completo
A mediados de 2003 quedó claro que la siguiente gran plataforma no debía ser una mera continuación de la arquitectura anterior. Se necesitaba un nuevo producto, un nuevo lenguaje y un nuevo entorno de desarrollo.
Dentro del desarrollo existían soluciones provisionales que apenas dejaron rastro en la Internet pública. Pero la tendencia de los cambios se aprecia claramente. Los desarrolladores decidieron abandonar el modelo «un archivo fuente, una función», la ejecución basada en pila y una sintaxis demasiado didáctica. El futuro lenguaje debía acercarse más a los lenguajes tipo C, admitir una estructura de programa más compleja y permitir escribir no solo asesores expertos sencillos, sino también grandes sistemas de trading.
Aquí también cambia la propia filosofía. En la primera etapa, la idea se formulaba más o menos así: cada tráder puede programar su propia estrategia. Para cuando se preparaba MQL4, esta idea se volvió más precisa: cualquier usuario cualificado puede programar una estrategia de trading tan compleja como desee sin salir del terminal de trading.
Al mismo tiempo, no se renunciaba a la sencillez. Las estrategias sencillas debían seguir siendo sencillas. Pero había que elevar drásticamente el límite de complejidad.
MetaTrader 4 y MQL4: el terminal se convierte en un IDE
El desarrollo de MetaTrader 4 comenzó en el verano de 2003. En los debates de aquella época, los desarrolladores fueron desvelando poco a poco las futuras posibilidades: pruebas más exhaustivas, acceso a series temporales de distintos símbolos y periodos, funciones de trading ampliadas, scripts, indicadores personalizados con una gran cantidad de búferes de indicadores y llamadas a funciones externas desde DLL. El 5 de febrero de 2004 se publicó un ejemplo del código fuente de un programa en MQL4 para familiarización.
A principios de 2004 quedó claro que no se trataba de una simple actualización. De hecho, el sistema se estaba reescribiendo por completo. Esto llevó más tiempo de lo previsto, pero precisamente por eso MetaTrader 4 acabó convirtiéndose no en un conjunto de mejoras, sino en una nueva plataforma.
El 18 de noviembre de 2004, MetaQuotes anunció el próximo lanzamiento de la versión beta de MetaTrader 4. En el anuncio no solo destacaban las capacidades de trading y análisis. Por primera vez, en un solo producto quedaba reunido con tanta claridad el futuro modelo del trading algorítmico masivo: el terminal, el lenguaje de programación MetaQuotes Language 4, el entorno de desarrollo MetaEditor 4, los asesores expertos, los indicadores personalizados y los scripts.

A partir de ese momento, MetaTrader dejó de ser un simple terminal de trading con capacidad de automatización. MetaTrader 4 se convirtió en una plataforma dentro de la cual el desarrollador disponía de un espacio de trabajo propio.
En el sitio web de MetaQuotes, la documentación de MQL4 se presentaba de forma muy concisa: tipos de datos, operaciones y expresiones, operadores, funciones, variables, preprocesador y, más adelante, sintaxis del lenguaje. Pero la ayuda completa estaba integrada en MetaEditor. Fue una decisión clave: el desarrollador no tenía que salir constantemente del editor para ir al navegador. La ayuda, el código y la compilación estaban juntos.

MQL4 ya era un lenguaje de programación procedimental plenamente funcional. En él aparecieron funciones propias, una estructura de programa más familiar, scripts de ejecución única, bibliotecas en forma de archivos EX4 y la posibilidad de llamar a funciones desde DLL de terceros.
MetaEditor dejó de ser simplemente un editor de texto. Ofrecía al usuario navegación por la ayuda, resaltado de sintaxis, compilación, gestión de los tipos de programas MQL y documentación integrada. En esta fase se perfila definitivamente la fórmula que permitirá que MetaTrader 4 se convierta en una plataforma de uso generalizado para el trading algorítmico:
TERMINAL + LENGUAJE + EDITOR + AYUDA + PRUEBAS + COMUNIDAD
El 1 de julio de 2005, tras un largo proceso de desarrollo, MetaTrader 4 se lanzó como una plataforma de trading lista para su uso. A partir de ahí, ya no solo comenzó la historia del lenguaje, sino también la del ecosistema: un sitio web específico para desarrolladores, Code Base, artículos, campeonatos de robots de trading y una enorme comunidad de usuarios de MQL4.
De eso precisamente trata la siguiente parte.
MQL4.COM: el lenguaje cuenta ya con su propia comunidad
Tras el lanzamiento de MetaTrader 4, quedó claro que la plataforma por sí sola no bastaba. Si un usuario puede crear asesores expertos, indicadores, scripts y bibliotecas, necesitará documentación, ejemplos, debates, artículos y un lugar donde compartir su código.
El 8 de noviembre de 2005 se abrió MQL4.COM, un sitio web especializado para desarrolladores de MQL4.
Fue un paso importante: MQL4 dejó de ser solo el lenguaje integrado del terminal para convertirse en el núcleo de un ecosistema independiente para desarrolladores. En el sitio web aparecieron un foro, documentación, Code Base y artículos. Más tarde, los materiales comenzaron a publicarse no solo en ruso y en inglés, sino también en chino.
Code Base empezó rápidamente a llenarse de programas listos para usar. En menos de un mes, la base ya contaba con más de 50 asesores expertos, unos 200 indicadores, 35 scripts y 17 bibliotecas. Los asesores expertos, los indicadores, los scripts y las bibliotecas hicieron que MQL4 pasara de ser un lenguaje «para iniciados» a una herramienta práctica de uso masivo. El usuario no solo podía escribir un programa desde cero, sino también estudiar el código de otros, modificar soluciones ya existentes, plantear preguntas a los autores e ir introduciéndose poco a poco en el mundo del desarrollo.
Es revelador que ya en 2006, entre las primeras publicaciones, apareciera un asesor experto que utilizaba inteligencia artificial: una red neuronal de una sola capa. Por aquel entonces, aún no era algo generalizado, no venía acompañado del revuelo actual en torno a la IA y el aprendizaje automático, pero la idea en sí ya estaba presente en la comunidad: una estrategia de trading puede basarse no solo en reglas e indicadores, sino también en un modelo entrenable.
Este episodio ilustra bien por qué la evolución posterior de MQL se orientó de forma natural hacia Python, ONNX, AI Assistant y OpenBLAS. El interés por el aprendizaje automático no surgió de repente. Simplemente esperó mucho tiempo a que la plataforma, el lenguaje y la potencia de cálculo alcanzaran el nivel necesario.
Automated Trading Championship: los asesores expertos salen a escena
El siguiente gran paso fue el Automated Trading Championship. El primer campeonato de sistemas de trading escritos en el lenguaje MQL4 se celebró a finales de 2006. No fue simplemente una competición por premios. El campeonato sirvió para demostrar públicamente la idea principal de MetaTrader 4: los asesores expertos pueden operar de forma autónoma y los resultados de su trabajo se pueden seguir en tiempo real.
En el campeonato de 2006 participaron 258 desarrolladores. El fondo de premios ascendía a 80 000 dólares estadounidenses y el trading se prolongó durante 12 semanas. Para aquella época, fue un gesto público de gran repercusión: el trading automático dejaba de ser un tema reservado a un reducido círculo de programadores para convertirse en un espectáculo que podían seguir tráders, brókers y desarrolladores.
Pero ni siquiera los premios eran lo más importante. El campeonato supuso una prueba de carga para toda la infraestructura. Para ello se prepararon equipos de servidor, se pusieron en marcha numerosos terminales de trading, se garantizaron las mismas condiciones de funcionamiento para los asesores expertos y se ofreció a los espectadores la posibilidad de seguir los resultados en línea.
De esta práctica surgieron muchas ideas que más tarde resultaron útiles en el ecosistema de MetaTrader: verificaciones automáticas de asesores expertos, protección de programas, alojamiento VPS y un terminal de cliente ligero, terminal web, señales de trading y el futuro Mercado de aplicaciones.
En 2007, el número de participantes aumentó hasta 603; en 2008, hasta 705. Ya no se trataba de una iniciativa aislada, sino de un indicador de la escala de la comunidad. La gente programaba robots de trading, debatía sobre algoritmos, comparaba enfoques, estudiaba las entrevistas de otros participantes y trataba de entender por qué algunos sistemas resistían el trading en condiciones reales, mientras que otros fallaban tras las primeras semanas.
Cabe destacar, por otra parte, que en los campeonatos volvía a surgir el tema de las redes neuronales. El ganador de 2007, Alexander Topchilo, utilizó en su asesor experto un enfoque basado en redes neuronales: primero desarrolló y probó el sistema en C++ y después lo trasladó a MQL4. Entrevista con Alexander Topchilo (Better)
En 2008, Leonid Velichkovsky presentó un asesor experto que utilizaba una red neuronal entrenada en NeuroShell. Entrevista con Leonid Velichkovsky (LeoV)
Es un detalle importante para todo el artículo. La historia de MQL no es solo la historia de su sintaxis, es la historia de cómo los tráders intentaron trasladar al terminal ideas cada vez más complejas: desde reglas sencillas basadas en indicadores hasta estadística, optimización, redes neuronales y aprendizaje automático.
En 2009 no se celebró el campeonato. MetaQuotes estaba ultimando el desarrollo de su próxima gran plataforma —MetaTrader 5— y del nuevo lenguaje MQL5.
MQL5: la nueva plataforma empieza por el lenguaje
Las conversaciones sobre el futuro de MQL5 comenzaron mucho antes del lanzamiento público de MetaTrader 5. Ya en 2007, en el foro de MQL4.COM se debatían activamente las sugerencias para el nuevo lenguaje. Una búsqueda con la palabra «MQL5» en octubre de 2007 arrojaba más de 15 páginas con enlaces a mensajes del foro de MQL4.COM. Los usuarios querían mayor velocidad, una estructura más estricta, nuevas posibilidades de prueba, un manejo más cómodo de los datos y una programación más moderna.
En el desarrollo interno, la orientación era aún más radical. El nuevo lenguaje debía abandonar la representación intermedia, característica de MQL4, y pasar a la generación de código nativo. Esto implicaba un nivel de rendimiento diferente y un nivel diferente de exigencias para la arquitectura del lenguaje.
La primera mención del dominio MQL5.COM en el archivo web se remonta a noviembre de 2007. El mero hecho de que apareciera un dominio independiente ya indicaba que no se trataba simplemente de una nueva sintaxis, sino de un futuro ecosistema.

El 31 de marzo de 2008 se anunció oficialmente el nuevo lenguaje MQL5 en una entrevista sobre las características de este futuro lenguaje. El texto de esta entrevista no se conserva en acceso público, pero la fecha en sí es importante: incluso antes del lanzamiento de MetaTrader 5, los desarrolladores ya habían empezado a preparar a la comunidad para el nuevo modelo de programación.
Para el verano de 2009, el sitio web MQL5.COM ya prometía expresamente un lanzamiento inminente.

El 12 de octubre de 2009 comenzó la fase de pruebas beta de MetaTrader 5. Un mes después, el 18 de noviembre de 2009, se abrió la versión beta de MQL5.community, un nuevo sitio web para desarrolladores de MQL5.
MQL5.community: no un foro, sino una infraestructura
MQL5.community no se concibió desde el principio como un foro convencional. En él se sentaron desde el principio las bases del futuro ecosistema: documentación, foro, Code Base, artículos, materiales didácticos y nuevos servicios que irían apareciendo a medida que se desarrollara la plataforma.
Los desarrolladores se esforzaron por conservar todo lo que ya funcionaba en MQL4.COM: los debates, la Code Base, los artículos y el modelo habitual de intercambio de conocimientos. Pero la nueva página web tenía que ser más amplia. MQL5 era más complejo, MetaTrader 5 tenía mayor alcance y, por lo tanto, la comunidad necesitaba una infraestructura más potente.
Un gesto importante fue la migración de las cuentas desde MQL4.COM. Los usuarios no tenían que empezar desde cero: podían iniciar sesión en la nueva página web con sus cuentas anteriores. Esto servía de puente entre dos épocas y ponía de manifiesto que MQL5 no anulaba la experiencia acumulada con MQL4, sino que le daba continuidad en un nuevo nivel.
Así surgió un nuevo punto de articulación: el lenguaje, la documentación, los artículos, el código, el foro y los futuros servicios quedaron reunidos en un solo lugar. MQL5.community no pasó a ser un complemento del terminal, sino una parte de la plataforma.
MetaTrader 5 y MQL5: el lenguaje se convierte en una herramienta de ingeniería
El 1 de junio de 2010 se lanzó la plataforma de trading MetaTrader 5. A diferencia de la generación anterior, estaba orientada no solo a Forex, sino también al trabajo con mercados bursátiles. Esto requirió cambios no solo en el terminal, sino también en el lenguaje.
MQL5 supuso un gran avance con respecto a MQL4. Se trataba ya de un lenguaje de programación orientado a objetos, similar a C++. Los programas MQL5 se compilaban en código nativo x86 o x64, lo que ofrecía otro nivel de rendimiento. Al mismo tiempo, se mantuvo la idea principal de MQL: el usuario debía poder escribir tanto programas sencillos como sistemas de trading complejos.
El modelo de trading también se volvió más complejo. En MetaTrader 5 aparecieron entidades independientes para las órdenes, las operaciones y las posiciones. Las operaciones de trading se acercaron más a la realidad de la infraestructura bursátil, pero para el desarrollador esto suponía más detalles. Por eso, junto con el lenguaje, se fue desarrollando la biblioteca estándar, que incluía, entre otras cosas, clases de trading para facilitar el trabajo con escenarios típicos.
Al principio, MQL5 contaba con unas 400 funciones integradas, aproximadamente tantas como MQL4 en aquella época. Pero lo más importante no era el número de funciones, sino la dirección que tomaba el desarrollo. MQL5 se creó como un lenguaje que permite desarrollar sistemas de gran envergadura: con clases, gestión de eventos, una biblioteca estándar, pruebas, optimización y futuros servicios relacionados con la plataforma.
Para los usuarios de MQL4 se preparó una sección específica de la documentación sobre la transición a MQL5. Era necesario: el nuevo lenguaje era más potente, pero exigía una forma diferente de pensar. Si MQL4 llevó el trading algorítmico a un público masivo, MQL5 debía hacerlo más orientado a la ingeniería.
Campeonatos de MQL5: la nueva plataforma se somete a una prueba pública
En 2010, el Automated Trading Championship regresó ya como una competición de asesores expertos de MQL5. Era lógico: la nueva plataforma necesitaba una demostración pública, y los desarrolladores tenían que ver cómo se comportaba MQL5 no en los ejemplos de la documentación, sino en una carrera real de robots de trading de tres meses de duración.
En el campeonato de 2010 se inscribieron 314 participantes. En 2011, 395; en 2012, 451. Estos campeonatos no solo dieron continuidad a la tradición de los campeonatos de MQL4, sino que también sirvieron de escaparate para las ventajas de la nueva plataforma: un mayor rendimiento, un nuevo simulador de estrategias, un modelo de trading más complejo y posibilidades para desarrollar asesores expertos de gran envergadura.
Los campeonatos volvieron a desempeñar múltiples funciones. Para los tráders, fue todo un espectáculo y una oportunidad para ver el trading automático en acción. Para los desarrolladores, fue una escuela donde poner a prueba sus ideas en la práctica. Para MetaQuotes, aportaron feedback sobre el lenguaje, el terminal de trading, el simulador de estrategias, la infraestructura y el comportamiento de los programas en condiciones reales. Y, por supuesto, también estaba la popularización del lenguaje MQL5.
El nuevo MQL4: cómo MQL5 influyó en sentido inverso
Tras el lanzamiento de MetaTrader 5, podría haber parecido que el desarrollo de MQL4 pasaría progresivamente a un segundo plano. Pero no fue así. La enorme base de usuarios de MetaTrader 4 y el código acumulado a lo largo de los años no requerían una congelación, sino una actualización cuidadosa.
En julio de 2013 se anunciaron importantes cambios en MetaTrader 4 y MQL4. La idea era poco convencional: no obligar a todo el mundo a migrar el código de MQL4 a MQL5, sino incorporar en MQL4 el máximo de posibilidades que ofrecía la nueva base tecnológica.
Así surgieron un compilador unificado para MQL4 y MQL5, un único MetaEditor, la compatibilidad con nuevas herramientas de desarrollo, una protección más sólida de los archivos EX4/EX5 y la posibilidad de utilizar el Mercado en MetaTrader 4.
Fue una decisión importante para todo el ecosistema. MQL4 no quedó como un «lenguaje anticuado de la generación anterior». Recibió clases, estructuras, nuevos tipos de datos, manejadores de eventos, un modelo de compilación más estricto, compatibilidad con recursos, nuevas capacidades gráficas y un conjunto de herramientas común con MQL5.
Apenas un mes después se lanzó la versión beta del IDE de MetaTrader 4, que incluía un nuevo compilador de MQL4 y un editor. A finales de 2013 comenzó la fase de pruebas públicas de la versión actualizada de MetaTrader 4, con el nuevo MQL4 y el Market de aplicaciones. El 3 de febrero de 2014 se lanzó MetaTrader 4 Client Terminal build 600.
En la práctica, este lanzamiento dividió la historia de MQL4 en dos épocas. El antiguo MQL4 era un lenguaje sencillo, similar a C, cómodo para crear asesores expertos e indicadores. El nuevo MQL4 se acercó mucho más a MQL5: con programación orientada a objetos, un MetaEditor unificado, un nuevo compilador y la posibilidad de crear aplicaciones más complejas.
Al mismo tiempo, se conservó la principal ventaja de MetaTrader 4: no se dejó de lado la enorme base existente de usuarios, programas y conocimientos. Al contrario, se dotó al antiguo ecosistema de una nueva base tecnológica.
Así, MQL4 y MQL5 dejaron de parecer dos mundos completamente distintos. Un lenguaje surgió de la práctica generalizada del trading automático, y el otro, del intento de crear una plataforma de ingeniería más rigurosa y potente. Y después del build 600 apareció una capa común entre ellos: MetaEditor, el compilador, el estilo de desarrollo, la protección de programas y los servicios de MQL5.community.
Para entonces, la historia de MQL hacía ya tiempo que había superado los límites de un «lenguaje para asesores expertos». A su alrededor había terminales, un editor, documentación, Code Base, artículos, campeonatos, el Mercado, señales, VPS y una enorme comunidad. Pero la siguiente etapa de desarrollo exigió aún más: trabajo con datos externos, computación distribuida, aprendizaje automático, matrices, redes neuronales y un uso avanzado del álgebra lineal.
De esto hablaremos en la siguiente parte.
El desarrollo de MQL5: el lenguaje madura
Tras el lanzamiento de MetaTrader 5, el desarrollo de MQL5 se expandió de inmediato en varias direcciones. Una de las líneas de desarrollo se centró en el propio lenguaje: este se fue acercando al C++ y se volvió más adecuado para proyectos de gran envergadura. La segunda se refería a los entornos de ejecución: los programas MQL5 empezaron a funcionar no solo como asesores expertos e indicadores en el gráfico. La tercera, a los cálculos: el simulador de estrategias, la optimización en la nube, OpenCL, las matrices, Python y ONNX fueron ampliando poco a poco los límites de lo que se puede hacer directamente desde la plataforma.
Si se analizan estas actualizaciones por separado, parecen una larga lista de lanzamientos. Pero, en conjunto, muestran una imagen más importante: MQL5 pasaba de ser un lenguaje para robots de trading a convertirse en un entorno universal para el desarrollo, los cálculos, el análisis de datos y la integración con tecnologías externas.
El lenguaje se parece cada vez más a C++
Al principio, MQL5 se desarrolló como un sucesor más riguroso y rápido de MQL4. Pero ya en los primeros años quedó claro que una simple sintaxis orientada a objetos no era suficiente. Los desarrolladores necesitaban herramientas para proyectos de gran envergadura: reutilización de código, algoritmos genéricos, herencia más segura, espacios de nombres y trabajo con tipos de datos complejos.
Los recursos aparecieron el 19 de enero de 2011. MetaTrader 5 Client Terminal build 384. Esto permitió integrar en el programa imágenes, datos y otros archivos complementarios. Más tarde aparecieron las variables de recurso: el código OpenCL, los datos binarios o el texto podían incorporarse como parte del programa MQL5 sin convertir el proyecto en un conjunto de dependencias externas.
Las plantillas de funciones se introdujeron el 16 de noviembre de 2012. MetaTrader 5 Trading Terminal build 722.
Las plantillas de clases aparecieron el 23 de octubre de 2015. MetaTrader 5 build 1200: obtención de la historia de ticks y pago directo de los servicios. Fueron pasos importantes hacia la programación genérica. Se podía utilizar el mismo código para distintos tipos de datos, sin tener que reescribir los algoritmos manualmente.
En 2016, el lenguaje incorporó simultáneamente varias funcionalidades habituales para los desarrolladores de C++:
Las clases abstractas aparecieron el 1 de abril de 2016. MetaTrader 5 build 1295.
La conversión dinámica de tipos dynamic_cast apareció en junio de 2016.
Las interfaces aparecieron el 15 de agosto de 2016.
Los modificadores final y override se añadieron el 16 de septiembre de 2016. Nueva versión de la plataforma MetaTrader 5 build 1430: pestaña Exposure actualizada.
Ninguno de estos cambios fue meramente cosmético. Permitieron construir jerarquías de clases más estrictas y seguras, fijar explícitamente las intenciones del desarrollador y detectar parte de los errores ya en la fase de compilación.
Los espacios de nombres aparecieron el 5 de octubre de 2019. MetaTrader 5 build 2170: ámbitos en MQL5, actualización global del simulador de estrategias y hosting integrado. Esto es especialmente importante en el caso de proyectos grandes y bibliotecas de terceros: los nombres de las clases, las funciones y las variables dejan de entrar en conflicto entre sí, y resulta más fácil organizar el código en módulos.
El tipo de datos complex se añadió el 21 de mayo de 2021. MetaTrader 5 build 2940: transferencia de los escaparates de los servicios MQL5 al espacio de trabajo y actualización del diseño. Ya no se trata de una función «para asesores expertos», sino de un paso hacia los cálculos de ingeniería y científicos. Los números complejos son necesarios en el análisis espectral, el álgebra lineal, el procesamiento de señales y diversos métodos numéricos.
Los tipos matrix y vector se añadieron el 28 de enero de 2022. MetaTrader 5 build 3180: vectores y matrices en MQL5 y mayor comodidad de trabajo. Se dan varios pasos más hacia los cálculos de ingeniería y científicos. Se refuerzan las bases para la integración con ONNX y el futuro uso de la biblioteca OpenBLAS.
Los tipos de datos «complexf», «vectorcf» y «matrixcf» se añadieron el 27 de septiembre de 2024. MetaTrader 5 build 4570: mejoras en la versión web e integración con OpenBLAS en MQL5.
Así, MQL5 fue adquiriendo poco a poco las características de un lenguaje con el que se puede escribir no solo lógica de trading, sino también grandes bibliotecas, módulos computacionales, envoltorios para modelos y código de infraestructura.
El simulador de estrategias como entorno computacional
Una línea de desarrollo independiente está relacionada con el simulador de estrategias. En MetaTrader, el simulador siempre ha sido importante: sin comprobación con datos históricos, el trading automático se convierte en una sucesión de conjeturas. Sin embargo, en MQL5, el simulador empezó a ir más allá de una simple comprobación de un asesor experto.
En 2012 se introdujeron los manejadores OnTesterInit, OnTesterDeinit y OnTesterPass, así como las funciones para trabajar con frames de datos: FrameAdd, FrameFirst, FrameNext y FrameInputs. Esto permitió a los agentes de prueba enviar al terminal no solo un resultado final, sino también datos arbitrarios.
Resulta fácil subestimar la importancia de esta actualización. En la práctica, esto convirtió la optimización en un proceso computacional más flexible. El asesor experto podía no solo devolver el criterio de optimización, sino también transmitir un conjunto de resultados intermedios, estadísticas, métricas propias o datos para su análisis posterior.
En combinación con MQL5 Cloud Network, esto abría el camino hacia la computación distribuida. Formalmente, todo seguía dentro de la infraestructura del simulador de estrategias, pero, en esencia, MQL5 obtenía un mecanismo para el procesamiento paralelo de tareas que no necesariamente se reducían al clásico barrido de parámetros de un robot de trading.
Este es otro ejemplo de una línea general de desarrollo: las herramientas creadas para el trading algorítmico resultan cada vez más útiles también para escenarios computacionales más amplios.
MQL5 va más allá del gráfico
El modelo clásico de un programa MQL estaba vinculado al gráfico: el asesor experto funciona sobre un instrumento, el indicador se dibuja en una ventana y el script ejecuta una acción puntual. MQL5 ha ido ampliando poco a poco este modelo.
La compatibilidad con OpenCL se añadió el 3 de febrero de 2012. MetaTrader 5 Trading Terminal build 581. Esto permitió utilizar la computación paralela en los dispositivos disponibles y acelerar las tareas que se prestan bien al procesamiento masivo de datos.
Las funciones para trabajar con instrumentos financieros personalizados se añadieron el 20 de diciembre de 2017. MetaTrader 5 build 1730: proyectos en el MetaEditor e instrumentos sintéticos. El desarrollador obtuvo la posibilidad de crear sus propios símbolos, completar su historia, actualizar los ticks y construir instrumentos sintéticos. Esto es importante para la investigación: permite comprobar ideas no solo con los datos estándar del bróker, sino también con series temporales propias, instrumentos agregados y conjuntos específicos de cotizaciones.
La compatibilidad nativa con las bibliotecas .NET se añadió el 26 de octubre de 2018. MetaTrader 5 build 1930: ventanas de gráficos flotantes y bibliotecas .NET en MQL5. MetaEditor se encargó de parte del trabajo de importación de funciones, y los desarrolladores obtuvieron una vía más sencilla para utilizar código externo sin tener que escribir manualmente wrappers complejos.
El 21 de febrero de 2019 se añadió un nuevo tipo de programas MQL5: los servicios (programas que no están vinculados a ningún gráfico). MetaTrader 5 build 2005: calendario económico, programas MQL5 como servicios y API para el lenguaje R. Un servicio puede ejecutarse en segundo plano, iniciarse junto con el terminal y realizar tareas de infraestructura. Esto cambia radicalmente la concepción de un programa MQL: ya no tiene por qué ser un asesor experto, un indicador o un script.
Las funciones de red para establecer conexiones TCP también se añadieron el 21 de febrero de 2019 en la actualización MetaTrader 5 build 2005. Un programa MQL5 obtuvo la posibilidad de intercambiar datos con sistemas externos a través de sockets, siempre que las direcciones estuvieran permitidas explícitamente en la configuración del terminal. Esto amplió los escenarios de integración: fuentes de datos propias, servicios locales, analítica externa e intercambio entre aplicaciones.
La compatibilidad con bases de datos y la compatibilidad con DirectX se añadieron el 6 de diciembre de 2019. MetaTrader 5 build 2265: funciones DirectX para la visualización 3D en MQL5 y ajuste de instrumentos en el simulador de estrategias. Estas actualizaciones parecen diferentes, pero tienen un objetivo común: MQL5 ya no se limita a las llamadas de trading y a los búferes de indicadores. Ahora dispone de herramientas de almacenamiento de datos, visualización, integración externa y procesamiento en segundo plano.
Python: un puente hacia el análisis de datos y el aprendizaje automático
El 14 de junio de 2019 se incorporó la integración con Python en MetaTrader 5. Integración con Python, soporte del Mercado y Señales en Wine (Linux/macOS) y potente optimización del funcionamiento del simulador de estrategias en MetaTrader 5 build 2085. Fue uno de los puentes más importantes entre la plataforma de trading y el mundo exterior del análisis de datos.
Para entonces, Python ya se había convertido en una herramienta estándar para el aprendizaje automático, la estadística, el procesamiento de datos y la visualización. La compatibilidad con Python permitió obtener datos de MetaTrader 5 y utilizarlos en escenarios de investigación externos: crear modelos, comprobar hipótesis, preparar conjuntos de datos, analizar resultados y, posteriormente, incorporar las ideas a la plataforma de trading.
Aquí se aprecia de nuevo la misma lógica de desarrollo. MetaTrader no pretende sustituir a todo el mundo exterior. En cambio, la plataforma ofrece al desarrollador un puente: los datos y la infraestructura de trading permanecen en el terminal, mientras que los escenarios de investigación y aprendizaje automático pueden ejecutarse allí donde ya existe un amplio ecosistema de bibliotecas para ellos.
ONNX: los modelos de aprendizaje automático llegan a MQL5
El siguiente paso acercó aún más la plataforma al aprendizaje automático. El 10 de marzo de 2023, MetaTrader 5 incorporó la compatibilidad con ONNX, un formato abierto para el intercambio de modelos de aprendizaje automático. MetaTrader 5 build 3620: mejoras en el terminal web, soporte de ONNX y multiplicación acelerada de matrices en MQL5.
La idea de ONNX encaja muy bien con una plataforma como MetaTrader. El modelo se puede entrenar fuera del terminal —por ejemplo, en Python utilizando las bibliotecas habituales— y, a continuación, exportarlo a ONNX y utilizarlo dentro de un programa MQL5. Esto separa dos tareas: el entrenamiento del modelo y su aplicación en la lógica de trading.
Para el desarrollador, esto supone una importante simplificación. No tiene que reescribir manualmente la red neuronal en MQL5 ni crear toda la infraestructura de entrenamiento dentro del terminal. Se pueden utilizar herramientas externas para preparar el modelo y, en MQL5, centrarse en la integración del modelo en un asesor experto, un indicador o un programa de investigación.
Así, el interés que la comunidad MQL venía mostrando desde hacía tiempo por las redes neuronales ha adquirido una forma tecnológica más madura. Si bien entre 2006 y 2008 los asesores expertos basados en redes neuronales eran experimentos aislados de entusiastas, con ONNX los desarrolladores disponen ahora de una vía oficial para conectar modelos entrenados a MQL5.
AI Assistant: de la sugerencia a un agente completo
La primera versión de AI Assistant apareció en MetaEditor el 14 de junio de 2023. Ya acortaba el camino desde la pregunta hasta el código: el desarrollador podía seleccionar un fragmento, pedir una explicación, obtener una variante de función o una corrección y, a continuación, integrar manualmente el resultado en el programa. Era útil, pero en cuanto a su funcionamiento seguía siendo una evolución del chat clásico: pregunta, respuesta textual, copia y comprobación.
El 24 de julio de 2026, en MetaTrader 5 build 6060, la plataforma adoptó otro modelo. En el terminal de trading y en el MetaEditor se incorporó compatibilidad integrada con el Model Context Protocol (MCP) y con la inteligencia artificial basada en agentes. El AI Assistant ya no se limita a generar texto: puede planificar secuencias de acciones e invocar las herramientas que ofrece la plataforma —leer datos, buscar y modificar archivos, compilar proyectos, analizar el entorno de trading y devolver un resultado estructurado—.
Los desarrolladores han explicado claramente en qué consiste la diferencia: en lugar del modo cada vez más obsoleto de «pregunta — respuesta — copiar», se crea un agente completo, capaz de realizar tareas complejas. Se trata de un cambio de escala importante. El asistente deja de ser un mero generador de fragmentos de código MQL5 y pasa a formar parte del flujo de trabajo del desarrollador y del tráder.

MCP: el puente estándar entre la IA y MetaTrader
El Model Context Protocol (MCP) es un estándar abierto a través del cual un agente de IA se conecta a los datos y las funciones de las aplicaciones. En el caso de MetaTrader, esto significa que el terminal de trading y MetaEditor no son simplemente ventanas en las que se abre un chat, sino proveedores de herramientas especializadas. El modelo no recibe una descripción abstracta de la plataforma, sino una interfaz de programación controlada para operaciones concretas.
En el MetaEditor, el agente puede obtener información sobre el espacio de trabajo, buscar archivos y texto, leer y modificar el código fuente, crear nuevos programas, comprobar la sintaxis, compilar archivos individuales y compilar proyectos. En el terminal de trading tiene acceso a datos de mercado, gráficos abiertos, parámetros de la cuenta, posiciones, órdenes e historia de operaciones. Determinados servidores MCP pueden añadir fuentes externas, por ejemplo, cotizaciones públicas, noticias y otros datos para su análisis.
Esta arquitectura es bidireccional. El AI Assistant integrado utiliza las herramientas MCP de MetaTrader y el MetaEditor, pero esos mismos servidores pueden conectarse a sistemas externos basados en agentes compatibles con el protocolo, incluidos OpenAI Codex, Claude Code y otras soluciones. De este modo, el usuario no queda vinculado a una única interfaz ni a un único modelo: la plataforma proporciona las herramientas y el agente se elige en función de la tarea.
Se admiten claves de API propias de OpenAI, Anthropic, Gemini, DeepSeek, Ollama y otros proveedores compatibles. Para el usuario que haya iniciado sesión en una cuenta de MQL5.community, se configura automáticamente el plan gratuito MQL5 Lite: los parámetros del AI Assistant se sincronizan entre el terminal y MetaEditor.
El AI Assistant en el terminal de trading
El asistente integrado en MetaTrader 5 funciona con el contexto del propio terminal. Puede explicar la situación actual de un instrumento, consultar la historia de cotizaciones, examinar los instrumentos de la «Observación del Mercado», analizar las posiciones abiertas y la historia de operaciones, identificar las operaciones de riesgo y elaborar un informe.

Con las herramientas de red conectadas, el agente puede combinar los datos internos del terminal con la información externa. En el anuncio se mostró un escenario en el que el asistente obtiene las últimas noticias sobre un instrumento, estudia los materiales de forma secuencial y los compara con las cotizaciones. Ya no se trata de una consulta puntual a la documentación de referencia, sino de un análisis en varias etapas en el que el agente recopila por sí mismo los elementos de contexto necesarios.
Las operaciones de trading quedan sujetas a un control independiente. En la configuración, es posible prohibirlas por completo, permitirlas o activar la confirmación manual. Las solicitudes de red y las operaciones de línea de comandos se regulan por separado. Las recomendaciones del asistente tienen carácter meramente informativo: la decisión final y la responsabilidad sobre el trading recaen en el usuario.
El AI Assistant en el MetaEditor
En el MetaEditor, el agente puede crear un nuevo programa en MQL5 a partir de una descripción en lenguaje natural, analizar un proyecto existente, detectar errores, proponer correcciones, llevar a cabo una refactorización, mejorar la legibilidad del código y explicar un algoritmo complejo. La principal diferencia con respecto a la primera versión es que el resultado no tiene por qué terminar necesariamente en texto en el chat: el agente es capaz de crear o modificar un archivo, iniciar una compilación y comprobar el resultado.

En el caso de las bases de código grandes, esto resulta fundamental. El asistente puede buscar las definiciones y los usos de los identificadores en varios archivos, leer los módulos include relacionados, tener en cuenta la estructura del proyecto y realizar la tarea como una serie de operaciones. La historia de consultas se guarda en la pestaña «Chats» del Navegador, por lo que la interacción con el agente pasa a formar parte del proyecto, en lugar de ser una consulta puntual.
El Build 6060 mejoró al mismo tiempo el propio editor: se añadieron el plegado de bloques de código y el resaltado de todas las apariciones del identificador seleccionado. Estas funciones no están directamente relacionadas con la IA, pero refuerzan ese mismo escenario: el análisis y el mantenimiento de grandes proyectos.
De la escritura de código al ciclo «desarrollar — comprobar — mejorar»
La línea de desarrollo más importante está relacionada con el simulador de estrategias. En las respuestas publicadas en el hilo de pruebas públicas se describe el ciclo automático previsto:
- Desarrollo de una estrategia a partir de la especificación del tráder;
- Inicio de pruebas y optimización de los parámetros;
- Análisis del informe, modificación del código o ajustes y repetición de la prueba;
- Detención en caso de fallo o al alcanzar un resultado aceptable;
- Presentación al usuario de la versión definitiva y el informe.
Hay que diferenciar este escenario de la promesa de que «la IA encontrará una estrategia rentable». El agente automatiza el ciclo de ingeniería y puede probar más hipótesis, pero no elimina el sobreajuste, los errores en los datos de partida, la inestabilidad del mercado ni la necesidad de una verificación independiente. El valor de MCP aquí es otro: el simulador de estrategias, el compilador, los archivos del proyecto y los resultados de la optimización pueden vincularse en una única cadena de acciones gestionada.
Durante las pruebas beta, este circuito se fue ampliando gradualmente: aún se añadían y configuraban herramientas independientes de alto nivel del simulador de estrategias. Por lo tanto, el ciclo totalmente autónomo descrito debe entenderse como una línea de desarrollo del sistema basado en agentes, y no como una garantía de que cualquier tarea compleja ya se realice sin la intervención del usuario.
Seguridad: al agente se le proporcionan herramientas, no un ordenador sin restricciones
Cuantas más acciones sea capaz de realizar el agente, más importantes son los límites. El acceso se rige por el principio de permisos explícitos. La carpeta de trabajo de MQL5 está disponible para realizar operaciones con archivos fuente; los directorios del simulador de estrategias y de los registros pueden tener acceso restringido solo a lectura, y el acceso al perfil de usuario se habilita por separado. El trading, la red y la línea de comandos también se controlan mediante ajustes independientes.
Las operaciones por comandos —PowerShell, Python y otros procesos externos— son especialmente potentes y potencialmente peligrosas, por lo que en la interfaz están señaladas como tales y se desactivan por separado. Este modo convierte al asistente en un agente de uso general, pero al mismo tiempo amplía la superficie de riesgo.
En el debate con los tráders en el foro se subrayó especialmente que las copias de seguridad y el sistema de control de versiones eran imprescindibles. Para el desarrollo basado en agentes, Git no es una comodidad adicional, sino un mecanismo básico de seguridad: los cambios deben ser visibles, comparables y reversibles. Aquí, la nueva arquitectura de IA se integra de forma natural con MQL5 Algo Forge.
Instrucciones del proyecto y skills
Al agente no le basta con ver los archivos: necesita comprender las reglas de esa base de código concreta. Para ello, en el directorio MQL5\Profiles\Agents se utilizan los archivos de instrucciones para el MetaEditor y MetaTrader. El usuario puede sustituir las instrucciones predeterminadas por las suyas propias para definir el estilo del código, las normas de nomenclatura, el orden de comprobación y otros requisitos fijos.
Como estos archivos se encuentran dentro de la zona MQL5, se pueden almacenar junto con los proyectos en Algo Forge. Así pues, el repositorio no solo contiene el código fuente y el archivo README, sino también instrucciones para la IA: cómo compilar el proyecto, qué archivos no deben modificarse, qué pruebas deben ejecutarse y en qué formato debe presentarse el resultado.
En sus respuestas en el foro, los desarrolladores también presentaron instrucciones locales a nivel de proyecto individual y skills, es decir, procedimientos especializados reutilizables para el agente. Esto muestra hacia dónde se dirige el sistema: de un chat universal a un colaborador digital personalizable que conoce las herramientas de la plataforma y las normas de un equipo concreto.
Matrices y vectores: MQL5 se prepara para el álgebra lineal avanzada
Para el aprendizaje automático, la estadística y los métodos numéricos, no basta con las clases, las plantillas y las integraciones externas. Es necesario poder trabajar con facilidad con vectores, matrices y operaciones básicas del álgebra lineal.
El 28 de enero de 2022 se incorporaron a MQL5 los tipos matrix y vector. Fue un cambio importante, y no solo desde el punto de vista sintáctico. Las matrices y los vectores no se concibieron como los arrays habituales, sino como objetos con propiedades y métodos.
El vector pasó a tener tamaño; la matriz adquirió número de filas y columnas, y en torno a ellos empezó a formarse una sección independiente de métodos. El desarrollador obtuvo una forma más natural de escribir código computacional: crear matrices, transponerlas, multiplicarlas, calcular descomposiciones, resolver sistemas de ecuaciones y trabajar con las normas, el rango y otras características numéricas.
En esta fase, MQL5 ya se diferenciaba notablemente del lenguaje que, en su día, partió de la sencilla lógica de un asesor experto en cada tick. En el lenguaje aparecieron estructuras para modelos matemáticos y, en la plataforma, integraciones con Python, ONNX, OpenCL y optimización en la nube.
Pero para una verdadera base numérica no basta con disponer de un tipo matrix cómodo. Se necesita una biblioteca de álgebra lineal contrastada en la que poder apoyarse a la hora de implementar métodos complejos. Precisamente por eso, el siguiente gran paso fue la integración de OpenBLAS.
De ello trata la siguiente parte.
¿Por qué precisamente OpenBLAS?
Cuando aparecieron en MQL5 las matrices, los vectores, los números complejos, ONNX y los escenarios de aprendizaje automático, la siguiente pregunta se hizo inevitable: ¿en qué fundamento matemático debemos apoyarnos a partir de ahora?
Se pueden escribir métodos individuales a mano. Se pueden añadir algunas operaciones rápidas para matrices. Podemos limitarnos a la multiplicación, las descomposiciones y la resolución de sistemas de ecuaciones. Sin embargo, este enfoque conduce rápidamente a un conjunto de funciones inconexas que resultan difíciles de desarrollar, probar y mantener.
Para una plataforma del nivel de MetaTrader 5 no se necesitaba «otra biblioteca rápida más», sino una base estándar de álgebra lineal: amplia, probada, portable y apta para la ampliación gradual de los métodos de MQL5.
Antes de elegir OpenBLAS, también se consideraron otras opciones: ALGLIB, LIBXSMM, Eigen y oneMKL. Cada biblioteca tiene sus puntos fuertes, pero el objetivo de MQL5 iba más allá de acelerar una sola operación o abarcar una sola clase de algoritmos.
ALGLIB resulta interesante como toolkit numérico universal: optimización, aproximación, álgebra lineal, estadística y otros algoritmos. Sin embargo, para desempeñar el papel de capa base dentro de la plataforma, no solo son importantes las funciones, sino también el modelo de licencia, las ediciones de la biblioteca, las condiciones de distribución, la previsibilidad de la integración y el soporte a largo plazo.
LIBXSMM destaca en operaciones especializadas con matrices densas y dispersas, especialmente en tareas con matrices pequeñas y primitivas de aprendizaje profundo. Es una herramienta útil, pero con un ámbito de aplicación más limitado. Encaja bien allí donde hay que obtener el máximo rendimiento de una clase concreta de operaciones, pero no sustituye a una base amplia orientada a LAPACK para un gran conjunto de métodos de álgebra lineal.
Eigen es una excelente biblioteca de plantillas de C++ para matrices, vectores, solucionadores numéricos y algoritmos relacionados. Pero Eigen es, ante todo, un enfoque basado en C++: una biblioteca con solo encabezados, plantillas, expression templates y una integración estrecha con el código C++. Para la integración interna de la plataforma MQL5 se requería un enfoque diferente: una capa computacional estable en la que poder basarse a la hora de implementar los métodos matrix, matrixf, matrixc y matrixcf.
También se consideró oneMKL. Se trata de una potente biblioteca matemática con una larga trayectoria, un alto grado de optimización y un amplio abanico de funciones. Pero en un producto de plataforma no solo importa la velocidad. También son importantes la portabilidad, el grado de dependencia de un proveedor, las condiciones de distribución, el control sobre la integración y la previsibilidad del comportamiento en las distintas configuraciones de los usuarios.
OpenBLAS resultó ser el equilibrio más adecuado. Se trata de una biblioteca BLAS optimizada de código abierto que ofrece un alto rendimiento en las operaciones básicas del álgebra lineal y sirve de base para métodos más complejos. Para MQL5, el argumento clave fue precisamente la cobertura de las tareas de LAPACK: no una sola operación rápida, sino una amplia base para la SVD, los valores propios, la resolución de sistemas de ecuaciones lineales, los mínimos cuadrados, las factorizaciones y el refinamiento de soluciones.
En otras palabras, la elección de OpenBLAS fue una decisión de ingeniería, no decorativa. Se necesitaba una biblioteca que permitiera desarrollar de forma sistemática los métodos matemáticos de MQL5: desde las operaciones matriciales básicas hasta algoritmos numéricos cada vez más complejos.
OpenBLAS en MQL5: de las matrices a una base numérica completa
El 27 de septiembre de 2024, en MetaTrader 5 build 4570, se añadió la integración nativa con OpenBLAS. Al mismo tiempo, aparecieron en MQL5 nuevos tipos de datos necesarios para admitir cálculos con números complejos sobre datos de tipo float:
- complexf — número complejo con datos de tipo float;
- vectorcf — vector que contiene elementos de tipo complexf;
- matrixcf — matriz que contiene elementos de tipo complexf.
A primera vista, parece un detalle técnico. En realidad, es una capa importante de la futura matemática de MQL5. Antes ya existían matrix, vector, los números complejos y los métodos matriciales. Sin embargo, OpenBLAS requería un conjunto más completo de tipos: datos reales y complejos, double y float, así como diferentes variantes de matrices y vectores.
Así, MQL5 no obtiene simplemente un «método SVD» o un «método Eigen». Esto le proporciona una base sobre la que se pueden desarrollar familias de algoritmos para distintos tipos de datos y distintos problemas numéricos.
Los primeros métodos OpenBLAS en MQL5 estaban relacionados con la descomposición en valores singulares y el cálculo de valores propios. Es un punto de partida natural. La SVD y los problemas de valores propios constituyen la base de un gran número de algoritmos prácticos: desde el análisis de estabilidad y la reducción de dimensionalidad hasta el aprendizaje automático, la estadística, el procesamiento de señales y la construcción de modelos.
Así, se añadieron diferentes variantes algorítmicas para SVD: divide and conquer, QR, QR con pivotado, bisección, Jacobi de alto nivel, Jacobi de bajo nivel y métodos para matrices bidiagonales. Esto es importante porque, en los métodos numéricos, rara vez existe un único algoritmo «óptimo» para todos los casos. Una variante rápida puede ser menos precisa con datos problemáticos, mientras que una más estable puede resultar más costosa desde el punto de vista computacional. La plataforma debe dar al desarrollador la posibilidad de elegir.
Los métodos de valores propios resuelven otro grupo de problemas. Son necesarios para analizar matrices cuadradas, matrices simétricas y hermitianas, la estabilidad de los sistemas, las características espectrales y muchos procedimientos computacionales que se usan en estadística, optimización y modelado.
Más adelante, la sección dedicada a OpenBLAS en la documentación de MQL5 comenzó a ampliarse. Este es un punto importante: la integración de OpenBLAS no es un lanzamiento puntual, sino una línea de desarrollo. Los métodos de matrices y vectores van adquiriendo progresivamente cada vez más capacidades aplicables a distintos tipos de matrices: matrix, matrixf, matrixc y matrixcf.
La siguiente capa natural son los métodos para refinar las soluciones, la evaluación de errores, la mejora de la estabilidad numérica y las factorizaciones adicionales. Así es precisamente como se desarrolla una base matemática sólida: no mediante un salto de «no hay nada» a «ya está todo», sino abarcando progresivamente un número cada vez mayor de problemas estándar de LAPACK.
¿Por qué es importante para un desarrollador de MQL?
Para un tráder habitual, puede parecer que OpenBLAS es algo muy lejano: una biblioteca para matemáticos, ingenieros y cálculo científico. Pero para el ecosistema MQL, su aparición tiene una implicación muy práctica.
El desarrollador tiene la posibilidad de crear modelos más complejos directamente en MQL5. No se trata solo de llamar a un indicador, comparar dos valores y enviar una orden de trading, sino de trabajar con los datos como arrays, vectores y matrices. Calcular descomposiciones. Resolver sistemas de ecuaciones. Evaluar la estabilidad. Utilizar métodos que antes había que externalizar a Python, C++ o bibliotecas de terceros.
Esto no excluye el uso de Python, ONNX o herramientas externas. Al contrario, empiezan a complementarse mejor entre sí. Python resulta muy útil para la investigación, el entrenamiento de modelos y la preparación de datos. ONNX resulta muy práctico para transferir un modelo entrenado al terminal de trading. OpenBLAS proporciona a MQL5 una sólida base numérica para aquellos casos en los que los cálculos deben realizarse dentro de la plataforma.
Como resultado, MetaTrader 5 se está convirtiendo gradualmente en un entorno en el que no solo se puede hacer trading y probar asesores expertos, sino también construir un circuito computacional completo:
- obtener datos de mercado;
- preparar las características y las matrices;
- utilizar un modelo ONNX;
- realizar cálculos numéricos basados en matrix/vector;
- probar la idea en el simulador de estrategias;
- paralelizar la optimización;
- integrar el resultado en un asesor experto, un indicador o un servicio.
Por eso resulta importante considerar OpenBLAS no de forma aislada, sino en conjunto con los pasos anteriores: MQL5, el MetaEditor, Python, ONNX, matrices, vectores y el AI Assistant.
El AI Assistant basado en agentes, MCP y OpenBLAS: las tres capas de un mismo entorno de ingeniería
A primera vista, el AI Assistant basado en agentes, MCP y OpenBLAS pertenecen a diferentes partes de la plataforma. El AI Assistant interpreta la intención del usuario, MCP vincula el modelo con las herramientas y OpenBLAS ejecuta los algoritmos numéricos. Pero, en conjunto, forman un circuito computacional completo.
El AI Assistant se encarga de plantear y descomponer la tarea: comprender la solicitud, elaborar un plan, seleccionar acciones e interpretar los resultados. MCP proporciona al agente acceso controlado al terminal de trading, al MetaEditor, a los proyectos, al mercado, a la historia de trading y a los datos externos. OpenBLAS, matrix/vector, ONNX y otras tecnologías proporcionan al programa MQL5 la potencia de cálculo necesaria para implementar el propio modelo.
Antes, el desarrollador tenía que alternar manualmente entre el editor, la documentación, el foro, el simulador de estrategias, el notebook de Python y las bibliotecas externas. Ahora, parte de estas transiciones puede describirse como una sola tarea: estudiar el proyecto, modificar el código, compilar el programa, preparar los datos, ejecutar el análisis y elaborar el informe. El agente no sustituye al compilador, al simulador de estrategias ni a la biblioteca matemática: los conecta.
Precisamente por eso, MCP es tan importante como el propio modelo de lenguaje. Sin herramientas especializadas, incluso un modelo potente no pasa de ser un simple interlocutor. Con MCP, el modelo obtiene la capacidad de actuar dentro de la plataforma, aunque siempre dentro de los permisos definidos por el usuario.
Algo Forge: el código se convierte en un proyecto
El entorno de ingeniería actual cuenta con otro componente sin el cual es imposible concebir un desarrollo serio: el control de versiones, la historia de cambios, el trabajo colaborativo y la publicación del proyecto como un repositorio activo. En el ecosistema MQL, MQL5 Algo Forge ha ido asumiendo progresivamente este papel.
El predecesor de Algo Forge fue MQL5 Storage, un repositorio en línea de código fuente MQL4/MQL5 integrado en el MetaEditor. Ya cumplía una función importante: permitía guardar el código en un repositorio seguro, consultar la historia de cambios, volver a versiones anteriores y trabajar en proyectos en equipo directamente desde el editor.
Pero el repositorio anterior se basaba en Subversion y había quedado obsoleto. Su lógica resultaba muy adecuada para guardar y sincronizar los archivos fuente, pero el desarrollo actual exige más: una historia local, operaciones rápidas, ramas para experimentos, fusión de cambios, trabajo sin conexión y la colaboración transparente de varios desarrolladores en un mismo proyecto.
El 6 de junio de 2025, en MetaTrader 5 build 5100, se rediseñó por completo el repositorio de código fuente: MQL5 Storage pasó de Subversion a Git y, al mismo tiempo, se inauguró un nuevo portal para la gestión de proyectos en línea: MQL5 Algo Forge.
Este es un punto de inflexión importante. Si Code Base respondía a la pregunta «¿dónde encontrar un ejemplo ya preparado?», Algo Forge responde a otra pregunta: «¿cómo gestionar un proyecto en evolución?». Un asesor experto complejo o una biblioteca compleja ya no se limita a un único archivo MQ5. Hay archivos include, configuraciones de pruebas, conjuntos de parámetros, modelos, documentación, README, scripts auxiliares, historia de experimentos y varias ramas de desarrollo.
Git cambia la forma de trabajar con este tipo de código. El desarrollador puede crear una rama independiente para una nueva idea, probarla en el simulador de estrategias, comparar los cambios, volver a un estado anterior, integrar un experimento que haya dado buenos resultados en la versión principal y enviar el resultado a un repositorio en la nube. La historia del proyecto ya no se guarda en la cabeza del autor ni en carpetas del tipo «final_new_2». Se convierte en parte del propio entorno de desarrollo.
Algo Forge añade a esto una capa social. Los desarrolladores pueden explorar proyectos públicos, seguir a autores, crear equipos, hacer forks, clonar repositorios, consultar archivos, commits y ramas, redactar documentación y compartir el proyecto en Internet. Para el ecosistema MQL, esto supone pasar del intercambio de archivos fuente aislados a una verdadera cultura de desarrollo colaborativo.
Esto resulta especialmente importante en el caso de los artículos y los materiales didácticos. El código del artículo no debe quedar solo en un archivo comprimido o en un conjunto de archivos adjuntos. Se puede presentar como un proyecto en Algo Forge: añadir una estructura clara, un archivo README.md, registrar la historia de cambios y ofrecer al lector no solo un texto, sino un punto de entrada funcional. El artículo explica la idea, y el repositorio muestra cómo funciona en la práctica.
Así, el MetaEditor vuelve a ampliar su papel. Al principio era un lugar donde se escribía y se compilaba código. Después incorporó ayuda, proyectos, depuración, perfilado, AI Assistant e integraciones. Ahora a todo ello se suma un flujo de trabajo Git completo: historia, ramas, commits, sincronización y colaboración.
Siguiendo esta lógica, Algo Forge no es un servicio independiente «al margen», sino una continuación de esa misma línea de desarrollo. El programa MQL ha pasado de ser un simple asesor experto en un único gráfico a convertirse en un proyecto de ingeniería que se puede versionar, debatir, desarrollar en equipo, publicar y mantener durante años.
De los asesores expertos al entorno de ingeniería
Si se analiza la historia en su conjunto, la trayectoria de MQL resulta sorprendentemente coherente.
Al principio existían los asesores expertos, incluso antes de que se desarrollara un lenguaje propiamente dicho. A continuación apareció el primer MQL: una pequeña página de documentación, unas cuantas variables y la posibilidad de ejecutar una estrategia de trading directamente en el terminal de trading. Posteriormente, MQL II incorporó bucles, arrays, tipos de datos y funciones matemáticas. Los indicadores personalizados ampliaron el lenguaje más allá de los asesores expertos.
MetaTrader 4 reunió todo esto en un modelo de uso masivo, con terminal de trading, MQL4, MetaEditor, documentación, asesores expertos, indicadores, scripts, bibliotecas y pruebas. MQL4.COM incorporó una comunidad, Code Base y artículos. Los campeonatos demostraron que el trading automático podía ser público, competitivo y de alcance masivo.
MetaTrader 5 y MQL5 elevaron el límite de complejidad. La programación orientada a objetos, el código nativo, la biblioteca estándar, el nuevo modelo de trading, el simulador de estrategias avanzado, la optimización en la nube y MQL5.community convirtieron el lenguaje en una herramienta de ingeniería más rigurosa.
Después, la influencia de retorno de MQL5 actualizó MQL4: un compilador unificado, un MetaEditor unificado, un nuevo lenguaje, protección de programas y el Mercado de aplicaciones. El antiguo producto de uso masivo recibió una nueva base tecnológica.
A partir de ahí, MQL5 empezó a ir más allá del asesor experto clásico: OpenCL, símbolos personalizados, .NET, servicios, funciones de red, SQLite, DirectX, Python, ONNX, matrices y vectores. Todo ello fue ampliando poco a poco la idea de lo que podía ser un programa MQL.
El AI Assistant basado en agentes, MCP y OpenBLAS no son simples adornos casuales en esta historia. Forman parte de su continuación lógica, ya que desarrollan el mismo principio que ya se vislumbraba en 2001: ofrecer al usuario una mayor autonomía dentro de la plataforma.
En aquel entonces, la autonomía comprendía la posibilidad de escribir un asesor experto y ejecutar una operación de trading sin intervención humana. Hoy en día significa mucho más: encargar una tarea a un agente en lenguaje natural, darle acceso controlado a las herramientas a través de MCP, escribir y compilar el código, utilizar un modelo externo de aprendizaje automático, ejecutar métodos numéricos de álgebra lineal, probar el sistema con datos históricos y ponerlo en marcha en la infraestructura de MetaTrader.
No es la historia de las versiones, sino la de una idea
Es fácil convertir la historia de MQL en una larga lista de fechas, números de build y nombres de funciones. Pero entonces se pierde lo esencial.
Esta no es una historia sobre cómo una sintaxis sustituyó a otra. Y tampoco es la historia de cómo se fueron añadiendo poco a poco más opciones al menú del terminal.
Esta es la historia de cómo una plataforma de trading fue incorporando en sí misma, paso a paso, cada vez más trabajo de los desarrolladores. Primero, la ejecución del asesor experto. Después, el lenguaje. Después, el editor. Después, la ayuda, las pruebas, Code Base, los artículos, los campeonatos, el Mercado, la optimización en la nube, las integraciones externas, el aprendizaje automático, el AI Assistant, el álgebra lineal numérica y la gestión de proyectos a través de Algo Forge.
En este sentido, el MetaEditor actual no es simplemente el sucesor de la antigua ventana de edición de asesores expertos. Es el punto de convergencia de todo el ecosistema MQL: el lenguaje, la documentación, los proyectos, la depuración, el perfilado, los modelos, los métodos matemáticos, la asistencia basada en agentes, las herramientas MCP y la infraestructura Git para el desarrollo en equipo.
Precisamente por eso, el camino desde los primeros asesores expertos hasta el AI Assistant basado en agentes, MCP y OpenBLAS no parece un conjunto de acontecimientos aislados, sino una única y larga línea de desarrollo. Desde el principio, MetaQuotes no construyó simplemente un terminal para observar el mercado, sino un entorno en el que una idea de trading se convierte en un programa y el programa, a su vez, en un proceso de ingeniería gestionable.
Y precisamente esta idea es la que sigue impulsando a MQL hacia adelante.
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/22768
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Negociamos con opciones sin opciones (Parte 2): Aplicación en el trading real
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 30): Commodity Channel Index (CCI), Zero Line EA
Particularidades del trabajo con números del tipo double en MQL4
Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 01): Desarrollo de una biblioteca SQLite3 inspirada en Python
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
¡Menudo viaje tan increíble!
¡Espero que el futuro traiga novedades aún más emocionantes para la plataforma MetaTrader!😊
Pero, ¿por qué demonios la versión de 2001 de Marketwatch muestra un huso horario?