Acceder
MQL4: Guía del lenguaje de programación para desarrollar sistemas de trading en Metatrader 4

MQL4: Guía del lenguaje de programación para desarrollar sistemas de trading en Metatrader 4

¿Cómo empezar a desarrollar tus propios sistemas de trading para operar de forma automática? Uno de los primeros pasos es aprender a usar el lenguaje MQL4 (MetaQuotes Lenguaje 4), nativo de la plataforma de trading Metatrader 4. ¿Qué debes saber para empezar? Descúbrelo aquí.
En este artículo hablaremos sobre MQL4, también conocido como MetaQuotes Language 4. De hecho, de ahí vienen sus siglas. MQ de MetaQuotes L de Language y 4 (MQL4). ¿Qué es?, ¿Cómo iniciarnos?, y sobre todo, ¿Qué ventajas aporta respecto a otros lenguajes de programación?

¿Que es MQL4 (MetaQuotes Language)?

MQL4 o MetaQuotes Language 4 es un lenguaje de programación usado en la plataforma de trading MetaTrader 4. Permite crear asesores expertos, scripts e indicadores personalizados para analizar y ejecutar operaciones en bolsa.

MQL4 es un lenguaje que se utiliza para programar ciertas instrucciones en una plataforma de trading concreta: Metatrader 4. Este lenguaje facilita a los traders cuantitativos a través de algunas funciones muy específicas, la creación de asesores expertos (robots de trading) y personalizados para supervisar sus operaciones o incluso ponerlas en marcha automáticamente. Pero eso no es todo, con MQL4 también puedes elaborar ‘scripts’ e indicadores personalizados para analizar el mercado.

Aunque por ahora no entiendas nada, así es cómo se ve el código inicial cuando vas a programar en MQL4. Pero como te digo, no te preocupes, ya que más adelante veremos qué es cada cosa, para que puedas empezar con este lenguaje.

¿Qué es el lenguaje MLQ4 (MetaQuotes Language)?
¿Qué es el lenguaje MLQ4 (MetaQuotes Language)?


Un punto importante aquí, como se ha indicado anteriormente es que MQL4 es un lenguaje de programación para una plataforma de trading concreta. Es decir, que no podemos programar en MQL4 en cualquier plataforma, solo en Metatrader. Afortunadamente, muchos brókers, además de ofrecer sus plataformas nativas o plataformas web, también ofrecen la integración de Metatrader 4 o, en su defecto, Metatrader 5.

¿Y de qué más hablaremos en este artículo? Pues hablaremos primero de su objetivo con una introducción sencilla, luego de su diferencia con otros lenguajes, de los beneficios de utilizarlo y finalmente veremos algunos ejemplos del mismo.

👉 Descubre más acerca del trading cuantitativo en nuestra siguiente guía

Introducción a MQL4 y sus objetivos

El propósito principal de MQL4 es permitir a los traders desarrollar herramientas personalizadas que pueden mejorar su proceso de toma de decisiones dentro de la operativa bursátil.

Estas herramientas pueden ser estrategias automatizadas denominadas Expert Advisors (EAs), scripts e indicadores personalizados. Y qué son cada uno de ellos, veamos:

  • Las Expert Advisors son programas construidos con MQL4 que se designan para automatizar las operaciones de trading según ciertas reglas predefinidas. A diferencia del trading manual donde el trader introduce sus operaciones manualmente, un EA puede realizar operaciones automáticamente sin que estemos siquiera delante del ordenador, ahorrando tiempo y facilitando la gestión emocional.

  • Los scripts generalmente realizan tareas específicas y sencillas sobre las gráficas o posiciones actuales. Pueden ser tan simples como cerrar todas las posiciones abiertas o tan complicados como calcular los niveles de riesgo antes de introducir una operación al mercado.

  • Por último, los indicadores personalizados son versiones modificadas o totalmente nuevas de indicadores técnicos convencionales diseñados usando MQL4 para adaptarse a necesidades específicas del trader. Es decir, básicamente, puedes crear un indicador totalmente nuevo.

Dicho esto, algo muy importante que tenemos que entender que MQL4 no solo simplifica las tareas repetitivas, sino que nos proporciona un control completo sobre las operaciones al eliminar errores humanos, permitiendo backtesting al máximo nivel de detalle y nos porporciona flexibilidad sobre cómo ejecutar sus estrategias. Por ejemplo, un script que nos permite introducir una operación fijando automáticamente el stop loss, el trailling stop y el take profit podría ser algo muy útil para un scalper.

¿Quién es quién en el código de MQL4?

Como te prometí al principio, vamos a ver en qué consiste cada bloque o para qué sirve cada bloque. Recuperemos la imagen del principio. Que, en este caso, muestra como sería un asesor experto. Recuerda, no obstante, que un asesor experto tan solo es uno de los tipos de algoritmo que se puede programar en este lenguaje.

Como descifrar el lenguaje MQL4
Como descifrar el lenguaje MQL4


Encabezado del Archivo

Esto es como la portada de un libro. Te dice el nombre del archivo (Ejemplo.mq4), quién lo hizo (en este caso, "MetaQuotes Ltd."), y un enlace web donde puedes obtener más información sobre MQL4.

Propiedades del Script

Piensa en esto como la etiqueta de un producto. Te dice quién tiene los derechos de autor (copyright), dónde encontrar más información (link), y qué versión es el script (version).

Función de Inicialización (OnInit)

Es como preparar tu estación de trabajo antes de empezar un proyecto. Aquí pones todo lo que necesitas para que tu programa funcione correctamente desde el inicio. Si todo está listo y en orden, le dices al programa "estamos listos para comenzar" usando return(INIT_SUCCEEDED).

Por ejemplo, imagina que tu EA es un robot que va a pintar un cuadro. En OnInit, le darías al robot sus pinceles y pinturas, y asegurarte de que está listo para pintar.

Función de Desinicialización (OnDeinit)

Esta parte es como limpiar tu área de trabajo cuando terminas tu proyecto. Aquí puedes guardar tu progreso o tirar lo que ya no necesitas.

Cuando el robot termina de pintar, en OnDeinit, le dirías que limpie sus pinceles y guarde el cuadro.

Función de Ejecución (OnTick)

Por último, esta es la parte donde realmente sucede la acción. Se ejecuta cada vez que hay un cambio en el mercado, como un nuevo precio. Aquí es donde tu EA decide qué hacer: ¿Comprar? ¿Vender? ¿Esperar?

Por ejemplo, siguiendo nuestro ejemplo, cada vez que alguien te dice un color, el robot pinta una línea con ese color. OnTick es como ese momento en que alguien dice un nuevo color y el robot reacciona pintando.

Diferencias entre MQL4 y otros lenguajes

Aunque similar a otros en algunos aspectos, MQL4 tiene características únicas que lo distinguen.

Para comenzar, una importante diferencia entre MQL4 y otros lenguajes de programación como C++ o Java es su especificidad. MQL4 está diseñado para funcionar en el entorno MetaTrader 4. Sus funciones permiten realizar operaciones específicas de trading como abrir y cerrar operaciones, administrar órdenes pendientes o extraer datos históricos de precios. En cambio, C++ y Java son lenguajes generalistas que se pueden utilizar para un amplio rango de aplicaciones.

Un ejemplo es que otros lenguajes te permiten moverte libremente entre diferentes plataformas. Mientras que puedes usar Python tanto en Jupyter como en PyCharm, los códigos escritos en MQL4 solo se pueden ejecutar dentro del entorno MetaTrader 4.

Quiero destacar otra gran diferencia: la facilidad de uso. En comparación con Python o JavaScript, MQL4 es un lenguaje más sencillo. Posee menos librerías e incorpora una base de código que resume sus posibilidades a las necesidades del específicas del trading. Por tanto, su curva de aprendizaje puede ser más suave que otros lenguajes.

Sin embargo, esto no significa que MQL4 sea inferior a otros lenguajes. Aunque tenga características simplificadas, esta simplificación permite al usuario concentrarse más en estrategias de trading en vez del desarrollo técnico.

Para finalizar, pero no menos importante, está la comunidad. Los lenguajes más generalistas tienen comités masivos de usuarios activos que pueden ayudar a resolver problemas y proporcionar tutoriales detallados. Aunque el número de usuarios de MQL4 es mucho menor debido a su naturaleza específica, hay una gran comunidad dispuesta a ayudarte a resolver cualquier problema relacionado con tus estrategias de trading automatizadas.

Es decir, tanto MQL4 como otros lenguajes de programación tienen ventajas e inconvenientes únicos dependiendo del uso específico que les quieras dar. Es importante entender estas diferencias para poder elegir el lenguaje correcto para tus necesidades.

Beneficios de usar MQL4 en trading

Veamos en resumidas cuentas cuáles son los principales beneficios de usar el lenguaje MQL4 en el trading: 

  • Sistemas de trading a la carta: En primer lugar, una gran ventaja es la personalización amplia que ofrece MQL4. Permite a los usuarios idear y diseñar sus propios indicadores técnicos, scripts y Expert Advisors (EA). Estos componentes personalizados se pueden adaptar completamente a diferentes enfoques. Por ejemplo, aquí tienen cabida tanto los traders de precio y volumen, como los análisis técnicos y por supuesto los cuantitativos puros.

  • Trading automático: Un segundo beneficio clave es la automatización del trading que permite MQL4. Los EA, creados con este lenguaje, pueden operar automáticamente basándose en criterios preestablecidos por nosotros. Es decir, puede realizar operaciones sin intervención humana directa. Esta característica nos libera mucho tiempo y, por supuesto, evita grandes dolores de cabeza en términos de psicología del trading.

  • Backtesting: Además, la eficiencia en el backtesting con MQL4 se considera superior a muchos otros lenguajes similarmente destinados para trading automático. El backtesting es vital para comprobar cómo habrían funcionado nuestros sistemas sobre datos pasados antes de aplicarlo en real permitiéndonos que podamos mejorar nuestros sistemas.

  • Sencillez: MQL4 también destaca por su accesibilidad y facilidad de uso comparado a otros lenguajes de programación más complejos. Aunque posee profundidad suficiente para permitir enfocarse en tareas avanzadas como la programación orientada a objetos, su sintaxis es lo suficientemente sencilla para que los que empiezan puedan aprender a generar y configurar sus propios robots.

  • Comunidad nicho: Finalmente, como hemos dicho anteriormente, otra ventaja notable es la amplia comunidad de MQL4. Hay una cantidad increíble de recursos disponibles, desde documentación oficial hasta foros de usuarios. Esta comunidad activa, al menos en mi experiencia, está siempre dispuesta a ayudar y compartir información sobre lo que nos interesa: el trading. En otras comunidades es más difícil porque puede que necesitemos resolver un problema más generalista y que la persona de la comunidad que nos ayuda no se dedique necesariamente al mundo del trading.

Ejemplos de scripts y asesores expertos en MQL4

En la plataforma MetaTrader 4 (MT4), estas herramientas se desarrollan utilizando MQL4, el lenguaje de programación nativo de la plataforma.

Veamos algunos ejemplos de scripts y asesorías expertas.

Scripts

Un script es un programa simple desarrollado en MQL4 que permite a los traders realizar tareas específicas en su plataforma MT4. En el siguiente listado, te enseño algunos de los más famosos:

  1. a) «Close All»: Este es un script comúnmente utilizado que cierra todas las posiciones abiertas. Es útil cuando desea liquidar rápidamente todas sus operaciones.

  2. «Delete All Pending Orders»: Como sugiere su nombre, este script elimina todas las órdenes pendientes establecidas por el trader en la plataforma MT4.

  3. «Open Buy Order»: Permite al trader abrir una orden de compra al precio actual del mercado con solo un clic.

  4.  «Open Sell Order»: Similar al anterior pero para abrir una orden de venta al precio actual del mercado.

Asesores Expertos (EA)

Los asesores expertos son programas más complejos que ayudan a los traders a automatizar sus sistemas de trading. Aquí hay algunos buenos ejemplos:

  1. «Moving Average EA»: Es uno de los predeterminados que ya incluye Metatrader. Este EA realiza transacciones basándose únicamente en el indicador técnico Moving Average (Media móvil). Según la configuración establecida por el trader, puede abrir y cerrar operaciones cuando los precios cruzan la línea del indicador de media móvil.

  2. «MACD Sample EA»: Este EA utiliza el indicador técnico MACD (Moving Average Convergence Divergence). Compra cuando la línea MACD cruza por encima de la línea de señal y vende cuando la línea MACD cruza por debajo de la línea de señal.

  3. «Multi-timeframe EAs»: Son asesores expertos que analizan múltiples marcos temporales (por ejemplo, 1 minuto, 5 minutos, una hora, etc.) antes de introducir una operación. Esto ayuda a obtener una visión más completa del mercado antes de abrir o cerrar posiciones.

  4. «News-based EAs»: Estos son EAs programados para reaccionar a eventos específicos o lanzamientos de noticias. Pueden ajustar automáticamente las órdenes según el comportamiento del mercado después del lanzamiento de noticias importantes.

Para finalizar veamos un ejemplo muy básico de un EA que compra cuando el precio cruza hacia arriba la línea móvil de 50 y vende cuando el precio la cruza hacia abajo:

Ejemplo de orden en MQL4
Ejemplo de orden en MQL4


Aunque se trata de un ejemplo muy básico, te puede ayudar a entender cual sería la estructura de un EA. A partir de aquí, ya sabes, no hay trucos ni atajos, con los manuales disponibles y su documentación, puedes comenzar a elaborar tu primer EA.

Estos son solo algunos ejemplos para ilustrar cómo funcionan los scripts y asesores expertos en MQL4. Eso sí, asegúrate siempre de probar cualquier script o asesor experto en un entorno controlado, como una cuenta demo, antes de usarlo en una cuenta real. Algo, todo sea dicho, que también puedes hacer en Metatrader 4 con dinero virtual.

¿Qué Bróker se adapta mejor a tu perfil?

¿Quieres dar tus primeros pasos en bolsa o cambiar a un bróker que se adapte mejor a tus necesidades?

  • Te ayudamos a encontrar el mejor bróker de acciones y derivados
  • El bróker que mejor se adapta a ti
  • En menos de 2 minutos
  • Estudio es gratuito y sin compromiso
  • Trading
  • inversión
  • MQL
Accede a Rankia
¡Sé el primero en comentar!