Lenguajes MQL4 y MQL5: diferencias y características

Tiempo de lectura: 3 minutos

MetaQuotes Language 4 y 5 son herramientas para desarrollar aplicaciones para MetaTrader Client Terminal basadas en las plataformas de la familia MetaTrader de cuarta y quinta generación respectivamente. Estos lenguajes proporcionan a los usuarios herramientas para desarrollar estrategias de trading automatizadas.




He elaborado una guía detallada sobre la programación de MetaTrader, el lenguaje MQL4 vs MQL5. Después de leer este artículo, comprenderá qué es MQL, las diferencias entre las dos últimas versiones de los lenguajes y cómo trabajar con ellos. Aquí encontrará instrucciones detalladas con imágenes sobre cómo escribir un asesor experto. ¡Empecemos!




Qué es MQL4 y MQL5

En muchos aspectos, los lenguajes MQL4 y MQL5 son muy similares. Por ello, hablaremos de las diferencias aparte, mientras tanto vamos a llamarlas a ambas MQL en singular y sin especificar la versión.

MQL es un lenguaje de programación integrado en la plataforma MetaTrader. El entorno de desarrollo que se utiliza para escribir sus propios robots de trading, indicadores u otras aplicaciones en MQL, así como para compilarlos y depurarlos es MetaQuotes Language Editor, el cual se suministra con la instalación de MetaTrader Client Terminal junto con toda la información de ayuda.




Si ha invertido en algún activo al menos una vez, tal vez simplemente compró dólares para guardarlos en el banco, entonces comprende que invertir requiere un control implacable. Seguramente se ha hecho preguntas como estas más de una vez:

  • ¿Es hora de salir de la transacción mientras el precio está en su punto máximo?
  • ¿Cómo saber si el precio de un activo seguirá subiendo o si el mercado se revertirá?
  • ¿Quizás esta vez se recibió una señal falsa y no hay necesidad de correr riesgos y apresurarse a abrir una posición?




Debe mantenerse al día con el mercado para tomar decisiones de trading oportunas. Es aconsejable hacerlo las 24 horas del día en las sesiones más activas. Cuando se trabaja con varios activos al mismo tiempo, la situación se complica cada vez más.

MQL le permite implementar cualquier estrategia o algoritmo de trading en forma de programa informático. Luego, este programa se inicia y se ejecuta constantemente en una estación de trabajo en MetaTrader Client Terminal. Además, el paquete de entrega incluye una serie de robots de trading, indicadores y scripts del desarrollador de la plataforma en forma de códigos fuente, lo que facilita enormemente el desarrollo del lenguaje y sus técnicas inherentes. Además, MQL se proporciona con información de referencia detallada en línea y fuera de línea. Hay una gran comunidad en torno al idioma.




Supongamos que ha creado un indicador interesante o un algoritmo de trading inteligente que desea utilizar en su trabajo o tal vez desea analizar el mercado utilizando redes neuronales. No hay restricciones. Con MQL, puede implementar cualquier idea en forma de indicador, experto u otra aplicación, compilar, depurar, verificar datos históricos en el probador de estrategias, todo sin involucrar riesgos financieros y usarlo activamente en el trading.




¡Resumamos! MQL resuelve el problema de escribir utilidades para monitorear el estado de una cuenta de trading, calcular indicadores y niveles, recibir señales de trading y determinar puntos de entrada y salida del mercado. El lenguaje como herramienta permite organizar el intercambio de información de un robot de trading o indicador con un servidor remoto a través del protocolo TCP, incluyendo el cifrado TLS o el protocolo HTTP. Es posible enviar datos a través de FTP, así como notificaciones push al dispositivo del cliente, MetaTrader o al correo electrónico del usuario. Una vez que un programa esté bien escrito y depurado, funcionará hasta que decida realizar cambios o reemplazarlo completamente por otro. Todo lo que necesita es el control total.




Historia de los lenguajes MQL4 y MQL5

MQL surgió como resultado del desarrollo evolutivo de la plataforma. Es una herramienta para la gestión automática de cuentas de trading en MetaTrader. No ahondaré en este punto, así que lo veré superficialmente.

MetaQuotes lanzó MetaQuotes Language junto con la plataforma MetaTrader, que anteriormente era la aplicación FXCharts. MQL creció a la segunda versión junto con la actualización de MetaTrader 3. Aquí, MetaQuotes implementó la API, que se proporcionó a los clientes como una capa adicional entre MetaTrader Client y MetaTrader Server.

El lanzamiento de la cuarta generación de la plataforma fue el 1 de julio del 2005. Junto con él, se lanzó MQL4. Se ha perdido la compatibilidad con la versión anterior del idioma. MetaQuotes también cesó de soportar la API de terminal de cliente, pero expandió las posibilidades del lenguaje en sí y proporcionó formas de integrar bibliotecas dll personalizadas en aplicaciones MQL. La API permaneció disponible solo para los brókeres en los niveles de servidor, administración y gestión.




En junio de 2010, después de numerosos lanzamientos, se lanzó MetaTrader 5. MetaQuotes rediseñó la lógica de negociación, eliminando la mayoría de las restricciones impuestas por la estructura interna de la plataforma. MT5 no tiene mucha popularidad que no compite con la cuarta generación en la actualidad.

En febrero de 2014, MQL4 se actualizó junto con la versión 600 del terminal de cliente MT4. MetaQuotes mejoró el lenguaje, introdujo la mayoría de las características de MQL5 y al mismo tiempo lo aceleró al nivel de un sucesor.




Características de los lenguajes de programación MQL4 y MQL5

MQL se utiliza para crear estrategias de trading automatizadas. El código MQL se interpreta preliminarmente en código C++, que luego se compila en un código ejecutable que funciona dentro del terminal como una biblioteca dinámica incluida. Si trazamos un paralelo con su predecesor, será similar a incluir la biblioteca dll en el código ejecutable del programa principal. Este enfoque contribuye a la facilidad de desarrollo y un umbral bajo para entrar en el campo del trading automatizado. Este idioma es popular entre los traders, a pesar de su estrecha especialización y dependencia del lenguaje de la plataforma.




MetaQuotes se ocupó de sus usuarios y proporcionó a todas sus aplicaciones información de ayuda detallada. La ayuda para la programación en MQL4 y MQL5 se suministran con MetaEditor en varios idiomas en forma de archivos htm. Así que, siempre tiene una guía detallada con ejemplos de código sobre cómo implementar el comportamiento necesario.

Se ha formado una gran comunidad de traders y programadores en torno a MQL. Existen herramientas para facilitar la comunicación entre programadores y traders. Ya se ha formado una capa de aplicaciones listas para simplificar el proceso de negociación. Existe un mercado para el intercambio de aplicaciones de forma gratuita o de pago disponible en https://mql5.com. En la plataforma de trading están: la tienda de aplicaciones, la base de código, los artículos y señales de otros traders. La tienda de aplicaciones ofrece cientos de soluciones de pago y gratuitas, como: indicadores, asesores, scripts y todo tipo de utilidades. Esto es en caso de que sea más fácil adquirir un programa hecho que “reinventar la rueda”.




Si ha decidido seriamente dominar MQL por su cuenta y sumergirse en el mundo de la creación de sus propias aplicaciones, puede utilizar este artículo para conocer los problemas que encuentra un principiante al dar los primeros pasos en este sendero. Es poco probable que un lector avanzado aprenda algo nuevo del material a continuación.

Los desarrolladores brindan soporte de información a la comunidad MQL mediante la publicación regular de tutoriales en forma de artículos sobre diversos temas del mundo del trading. Los autores de los artículos analizan nuevas técnicas de programación, por ejemplo, la creación de redes neuronales, análisis y solución de problemas y limitaciones del lenguaje, análisis y pruebas de estrategias de trading, búsqueda e implementación de nuevos algoritmos.

MQL Wizard ofrece 8 opciones para MQL4 y 10 opciones para MQL5. Aquí están las capturas de pantalla del asistente de archivos para ambas versiones del lenguaje.