Artículos con ejemplos de programación en el lenguaje MQL5

icon

Le espera una gran variedad de diferentes artículos sobre la creación de indicadores y robots comerciales para la plataforma MetaTrader usando el lenguaje MQL5. Cada artículo va acompañado con los códigos fuente, Usted puede abrir e iniciarlos en el editor MetaEditor de una manera independiente.

Estos artículos serán útiles tanto para los principiantes en el trading automático, como para los operadores experimentados en la programación y el trading. Aquí encontrará no sólo los ejemplos, sino también las nuevas ideas.

Nuevo artículo
últimas | mejores
preview
Del básico al intermedio: Eventos en objetos (I)

Del básico al intermedio: Eventos en objetos (I)

En este artículo, veré tres de los seis eventos que MetaTrader 5 puede disparar cuando algo sucede con un objeto presente en el gráfico. Estos eventos son muy útiles cuando se trata de interacción con el usuario. Esto se debe a que, sin entender estos eventos, tendrás mucho más trabajo para mantener cierta configuración en el gráfico, al intentar controlar objetos con finalidades específicas.
preview
Programación gráfica para principiantes (Parte I): Aprendiendo CCanvas con Crazy Scalper

Programación gráfica para principiantes (Parte I): Aprendiendo CCanvas con Crazy Scalper

Este artículo introduce la librería CCanvas en MQL5 mediante el desarrollo paso a paso de un minijuego que se ejecuta sobre el gráfico de MetaTrader 5. Se explican el sistema de coordenadas, el renderizado vectorial de formas, el canal alfa para transparencias, el bucle con temporizador, la máquina de estados, la física básica y la detección de colisiones AABB, además de la captura de teclado. Al finalizar, podrá crear superficies graficas interactivas y sentar las bases de paneles y minijuegos propios.
preview
Del básico al intermedio: Eventos en Objetos (II)

Del básico al intermedio: Eventos en Objetos (II)

En este artículo, veremos cómo funcionan los tres últimos tipos de eventos que puede disparar un objeto. Entender esto será muy divertido, ya que, al final, haremos algo que, para muchos, puede parecer una especie de locura, pero que es perfectamente posible y tiene un resultado bastante sorprendente.
preview
De novato a experto: Trayectorias predictivas del precio

De novato a experto: Trayectorias predictivas del precio

Los niveles de Fibonacci proporcionan un marco práctico que los mercados suelen respetar, destacando las zonas de precios donde es más probable que se produzcan reacciones. En este artículo, desarrollamos un asesor experto que aplica la lógica de retroceso de Fibonacci para anticipar posibles movimientos futuros y operar con retrocesos mediante órdenes pendientes. En este artículo recorremos todo el flujo de trabajo, desde la detección de oscilaciones hasta la representación gráfica de niveles, los controles de riesgo y la ejecución.
preview
Del básico al intermedio: Navegando por la SandBox

Del básico al intermedio: Navegando por la SandBox

En este artículo veremos dos formas de observar e incluso tener cierta interacción con el contenido de una SandBox, tomando MetaTrader 5 como base. Entender el contenido que se muestra en este artículo será fundamental para entender lo que se verá en los próximos artículos.
preview
Dominando los registros (Parte 9): Implementación del patrón Builder y adición de configuraciones predeterminadas

Dominando los registros (Parte 9): Implementación del patrón Builder y adición de configuraciones predeterminadas

Este artículo muestra cómo simplificar drásticamente el uso de la biblioteca Logify con el patrón Builder y las configuraciones predeterminadas automáticas. Explica la estructura de los constructores especializados, cómo utilizarlos con la función de autocompletado inteligente y cómo garantizar un registro funcional incluso sin configuración manual. También incluye ajustes para la versión 5100 de MetaTrader 5.
preview
Dominando los registros (Parte 8): Registros de errores con traducción automática

Dominando los registros (Parte 8): Registros de errores con traducción automática

En esta octava entrega de la serie «Dominando los registros», exploramos la implementación de mensajes de error multilingües en Logify, una potente biblioteca de registro de eventos para MQL5. Aprenderás a estructurar los errores con contexto, traducir mensajes a varios idiomas y formatear registros dinámicamente según su nivel de gravedad. Todo ello con un diseño limpio, extensible y listo para la producción.
preview
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (2)

Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (2)

Únase a nosotros en nuestra próxima charla, donde combinaremos nuestras dos primeras estrategias de trading en una estrategia de trading conjunta. Demostraremos los diferentes esquemas posibles para combinar múltiples estrategias y también cómo ejercer control sobre el espacio de parámetros, para garantizar que la optimización efectiva siga siendo posible incluso a medida que aumenta el tamaño de nuestros parámetros.
preview
Programación gráfica para principiantes (Parte II): Dominando la Interfaz, POO y Persistencia

Programación gráfica para principiantes (Parte II): Dominando la Interfaz, POO y Persistencia

El artículo transforma un minijuego en un sistema UI profesional orientado a EAs y paneles. Introduce una clase de botón con detección AABB y estados hover/pressed, resuelve el rebote de clic mediante transición 0→1 y ajusta colores con manipulación ARGB. Los datos persisten con FileReadStruct/FileWriteStruct en .bin. El resultado es una base compilable y reutilizable para interfaces robustas.
preview
Del básico al intermedio: Sobrecarga de operadores (V)

Del básico al intermedio: Sobrecarga de operadores (V)

En este artículo vemos cómo manipular un código para implementar una solución completamente diferente de lo que muchos creen posible en MQL5. Una observación importante: para comprender adecuadamente este contenido, es necesario haber asimilado correctamente los conceptos tratados en los artículos anteriores.
preview
Del básico al intermedio: Acceso aleatorio (II)

Del básico al intermedio: Acceso aleatorio (II)

En este artículo, veremos cómo dos enfoques ligeramente diferentes pueden impactar de manera considerable en toda una metodología de implementación, tanto desde el punto de vista del rendimiento como desde el punto de vista de cómo deben pensarse los accesos al disco, con el fin de evitar problemas de compatibilidad entre distintas aplicaciones.
preview
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 28): Herramienta de ruptura del rango de apertura

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 28): Herramienta de ruptura del rango de apertura

Al comienzo de cada sesión de negociación, la tendencia direccional del mercado a menudo solo se hace evidente después de que el precio supera el rango de apertura. En este artículo, exploramos cómo crear un Asesor Experto MQL5 que detecte y analice automáticamente las rupturas del rango de apertura, proporcionándole señales oportunas basadas en datos para realizar entradas intradía con confianza.
preview
Predicción en el trading y modelos de Grey

Predicción en el trading y modelos de Grey

En este artículo se analiza la aplicación de los modelos Grey para la predicción de series temporales financieras. Analizaremos los principios de funcionamiento de los modelos Grey y las particularidades de su aplicación a las series financieras. Discutiremos las ventajas y las limitaciones del uso de estos modelos en el trading.
preview
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 7): Trading con múltiples períodos simultáneamente

Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 7): Trading con múltiples períodos simultáneamente

En esta serie de artículos, hemos analizado diversas formas de determinar cuál es el mejor período para utilizar nuestros indicadores técnicos. Hoy, demostraremos al lector cómo puede aplicar la lógica opuesta; es decir, en lugar de elegir un único período óptimo, le mostraremos cómo emplear todos los períodos disponibles de forma eficaz. Este enfoque reduce la cantidad de datos descartados y ofrece casos de uso alternativos para los algoritmos de aprendizaje automático, más allá de la predicción habitual de precios.
preview
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 33): Herramienta de teoría del rango de velas

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 33): Herramienta de teoría del rango de velas

Mejora tu análisis del mercado con el paquete «Candle-Range Theory» para MetaTrader 5, una solución totalmente nativa de MQL5 que convierte barras de precio en bruto en información de volatilidad en tiempo real. La biblioteca CRangePattern, de tamaño reducido, compara el rango real de cada vela con un ATR adaptativo y la clasifica en el instante en que cierra; a continuación, el indicador CRT muestra esas clasificaciones en el gráfico mediante rectángulos nítidos y flechas codificadas por color que revelan consolidaciones cada vez más estrechas, rupturas explosivas y envolvimientos completos del rango en el momento en que se producen.
preview
Análisis de espectro singular (SSA) en MQL5

Análisis de espectro singular (SSA) en MQL5

Este artículo pretende servir de guía para aquellas personas que no estén familiarizadas con el concepto de análisis de espectro singular (SSA) y que deseen adquirir los conocimientos necesarios para poder aplicar las herramientas integradas disponibles en MQL5.
preview
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias

Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias

¿Cuál es la mejor manera de combinar múltiples estrategias para crear una estrategia de conjunto eficaz? Únete a nosotros en este debate mientras analizamos cómo integrar tres estrategias diferentes en nuestra aplicación de trading. Los operadores suelen emplear estrategias especializadas para abrir y cerrar posiciones, y queremos saber si nuestras máquinas pueden realizar esta tarea mejor. Para esta introducción nos familiarizaremos con las funcionalidades del probador de estrategias y los principios de la programación orientada a objetos que necesitaremos para esta tarea.
preview
Negociamos con opciones sin opciones (Parte 2): Aplicación en el trading real

Negociamos con opciones sin opciones (Parte 2): Aplicación en el trading real

En este artículo se analizan estrategias de opciones sencillas y su implementación en MQL5. Vamos a escribir un asesor experto básico que iremos modernizando y haciendo más complejo.
preview
Reimaginando las estrategias clásicas en MQL5 (Parte 13): Llevando nuestra estrategia de cruce a nuevas dimensiones (Parte 2)

Reimaginando las estrategias clásicas en MQL5 (Parte 13): Llevando nuestra estrategia de cruce a nuevas dimensiones (Parte 2)

Únase a nosotros en nuestra discusión mientras buscamos mejoras adicionales para nuestra estrategia de cruce de medias móviles con el fin de reducir el retraso en nuestra estrategia de negociación a niveles más confiables, aprovechando nuestras habilidades en ciencia de datos. Es un hecho ampliamente estudiado que aumentar la dimensionalidad de los conjuntos de datos puede, en ocasiones, mejorar el rendimiento de los modelos de aprendizaje automático. Demostraremos qué significa esto en la práctica para usted como trader y le mostraremos cómo puede aprovechar este poderoso principio utilizando su terminal MetaTrader 5.
preview
Del básico al intermedio: Colas, listas y árboles (IV)

Del básico al intermedio: Colas, listas y árboles (IV)

En este artículo, finalizaremos la parte relativa a la implementación y explicación de una lista enlazada. Sin embargo, la implementación mostrada aquí no incluirá cierto detalle que podemos implementar en una lista enlazada. Esto se verá más adelante, en otro artículo.
preview
Del básico al intermedio: Acceso aleatorio (I)

Del básico al intermedio: Acceso aleatorio (I)

En este artículo tendremos nuestra primera experiencia con el acceso aleatorio al contenido de un archivo. Esto apunta tanto a la escritura como a la lectura de información y datos almacenados en un archivo. Sin embargo, como este tema es bastante extenso para explicarlo en un único artículo, aquí solo haremos una introducción a esta cuestión del acceso aleatorio.
preview
Del básico al intermedio: Colas, listas y árboles (III)

Del básico al intermedio: Colas, listas y árboles (III)

En este artículo daremos el siguiente paso para implementar y entender qué es y cómo funciona una lista enlazada. Aunque el contenido de este artículo pueda resultar bastante denso y confuso para quienes se están iniciando, intenté explicarlo de la forma más didáctica posible. Así podrás entender por qué y cuándo usar una lista enlazada.
preview
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 9): Cruce de dos medias móviles

Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 9): Cruce de dos medias móviles

Este artículo describe el diseño de una estrategia de cruce de medias móviles dobles que utiliza señales de un marco temporal superior (D1) para orientar las entradas en un marco temporal inferior (M15), calculándose los niveles de stop-loss a partir de un marco temporal de riesgo intermedio (H4). Introduce constantes del sistema, enumeraciones personalizadas y la lógica para los modos de seguimiento de tendencias y de retorno a la media, al tiempo que hace hincapié en la modularidad y en la optimización futura mediante un algoritmo genético. Este enfoque permite establecer condiciones flexibles de entrada y salida, con el objetivo de reducir el retraso de la señal y mejorar la sincronización de las operaciones, alineando las entradas en los marcos temporales más cortos con las tendencias de los marcos temporales más largos.
preview
Del básico al intermedio: Sobrecarga de operadores (IV)

Del básico al intermedio: Sobrecarga de operadores (IV)

En este artículo, haremos una primera aproximación para mostrar cómo podemos implementar la sobrecarga del operador de subíndice y también del operador de asignación, intentando ofrecer un enfoque práctico e interesante para todos. Lo que veremos aquí es solo una parte de lo que aún pretendo mostrar y que está directamente relacionado con la sobrecarga de estos operadores.
preview
Del básico al intermedio: Sobrecarga de operadores (III)

Del básico al intermedio: Sobrecarga de operadores (III)

En este artículo veremos cómo implementar la sobrecarga tanto de operadores lógicos como de operadores relacionales. Hacerlo requiere cierto cuidado y una buena dosis de atención. Un simple descuido al implementar la sobrecarga de estos operadores puede hacer que todo el código termine siendo completamente inservible. Si la sobrecarga presenta algún problema, toda una base de datos creada a partir de los resultados generados por el código deberá descartarse por completo o, como mínimo, revisarse íntegramente.
preview
Del básico al intermedio: Colas, listas y árboles (VIII)

Del básico al intermedio: Colas, listas y árboles (VIII)

En este artículo veremos cómo implementar un algoritmo de equilibrado del árbol. Lo que presentaré aquí es mi propuesta para implementar este algoritmo. Existen muchos otros algoritmos con el mismo objetivo. Sin embargo, cada uno tiene sus ventajas y sus inconvenientes. Depende de ti, mi querido lector, estudiarlos y encontrar el que mejor se adapte a tus necesidades.
preview
Del básico al intermedio: Clases (I)

Del básico al intermedio: Clases (I)

En este artículo explicamos qué es una clase y por qué surgió este concepto. Aunque el tema es interesante, aquí nos centraremos en los principios que rigen la programación en MQL5. Este artículo es solo una introducción.
preview
Del básico al intermedio: Colas, listas y árboles (I)

Del básico al intermedio: Colas, listas y árboles (I)

En este artículo comenzaremos a explorar una pequeña serie de conceptos de suma importancia para quienes realmente desean aprender a programar correctamente. Como al principio puede resultar muy complicado, aunque se base en elementos sencillos, lo veremos poco a poco. Entonces, aquí comenzaremos a ver qué son las colas de datos.
preview
Del básico al intermedio: Colas, listas y árboles (VII)

Del básico al intermedio: Colas, listas y árboles (VII)

En este artículo mostraremos y explicaremos con claridad cómo se elimina un nodo de un árbol. Este proceso suele confundir a los principiantes más que ayudarlos a comprender cómo se lleva a cabo y por qué debe realizarse de una forma determinada.
preview
Del básico al intermedio: Clases (II)

Del básico al intermedio: Clases (II)

Este artículo busca ser lo más didáctico posible, porque el tema que abordaremos ya suele generar bastante confusión. Por eso, mi querido lector, intenta poner en práctica lo que se explica aquí. Ante cualquier duda, no dejes de comentar, pues comprender los destructores no es precisamente una de las tareas más sencillas.
preview
Del básico al intermedio: Clases (III)

Del básico al intermedio: Clases (III)

En este artículo veremos cómo controlar mejor el código cuando trabajamos con programación orientada a objetos. Aunque apenas estamos comenzando a estudiar la programación orientada a objetos, lo que veremos aquí te ayudará a comprender diversos aspectos. También reducirá las dudas que puedan surgir más adelante.
preview
Del básico al intermedio: Sobrecarga de operadores (II)

Del básico al intermedio: Sobrecarga de operadores (II)

Este artículo puede parecer bastante confuso al principio por el contenido que presentaré. Sin embargo, he intentado presentar todo de la forma más sencilla y didáctica posible. Espero que comprendas lo que voy a mostrar aquí y que te resulte útil en algún momento.
preview
Del básico al intermedio: Colas, listas y árboles (II)

Del básico al intermedio: Colas, listas y árboles (II)

Este es un artículo que tú, mi estimado lector, deberás estudiar con mucha calma. Esto se debe al tipo de contenido que se explicará en él. Aunque hemos procurado mantener las cosas lo más simples y didácticas posible, el contenido presentado aquí es, sin duda, algo muy complicado para quienes se están iniciando en la programación. Sin embargo, esto no es motivo para que te desanimes o ignores lo que se explica aquí, ya que este artículo establecerá un vínculo entre dos temas completamente diferentes, aunque íntimamente relacionados.
preview
Del básico al intermedio: Colas, listas y árboles (V)

Del básico al intermedio: Colas, listas y árboles (V)

En este artículo, implementamos los primeros componentes de una estructura arbórea. Como sé que esta estructura puede resultar extremadamente compleja cuando se empieza a aprender, la implementaremos con calma y paso a paso. Así, todos podrán entender cómo funciona un árbol y cuál es el mejor momento para utilizarlo.
preview
Del básico al intermedio: Sobrecarga de operadores (I)

Del básico al intermedio: Sobrecarga de operadores (I)

En este artículo comenzaremos a estudiar cómo se implementa la denominada sobrecarga de operadores. Primero veremos qué motiva esta implementación. También comprobaremos que las cosas no siempre son tan complicadas como parecen.
preview
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (3) — Política de votación ponderada

Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (3) — Política de votación ponderada

Este artículo analiza por qué determinar el número óptimo de estrategias en un conjunto puede ser una tarea compleja y cómo el optimizador genético de MetaTrader 5 facilita su resolución. MQL5 Cloud también se utiliza como recurso clave para acelerar las pruebas retrospectivas y la optimización. En síntesis, nuestro análisis aquí sienta las bases para desarrollar modelos estadísticos que permitan evaluar y mejorar las estrategias de negociación a partir de nuestros resultados iniciales del conjunto de estrategias.
preview
Del básico al intermedio: Colas, listas y árboles (VI)

Del básico al intermedio: Colas, listas y árboles (VI)

En este artículo retomaremos la implementación de un árbol. Ahora que conocemos los conceptos básicos sobre el funcionamiento de los constructores y destructores, finalmente podremos corregir el código presentado en el último artículo. Prepárate para una verdadera aventura en la programación con MQL5.
preview
Reimaginando las estrategias clásicas en MQL5 (Parte 14): Análisis de múltiples estrategias

Reimaginando las estrategias clásicas en MQL5 (Parte 14): Análisis de múltiples estrategias

En este artículo, continuamos nuestro análisis sobre cómo crear un conjunto de estrategias de trading y utilizar el optimizador genético de MT5 para ajustar los parámetros de las estrategias. Hoy hemos analizado los datos en Python, demostrando que nuestro modelo podía predecir mejor qué estrategia obtendría mejores resultados, logrando una mayor precisión que al pronosticar directamente la rentabilidad del mercado. Sin embargo, cuando probamos nuestra aplicación con sus modelos estadísticos, nuestros niveles de rendimiento se desplomaron. Posteriormente descubrimos que, lamentablemente, el optimizador genético favorecía estrategias muy correlacionadas, lo que nos llevó a revisar nuestro método para mantener fijas las ponderaciones de los votos y centrar la optimización en los ajustes de los indicadores.
preview
Superando las limitaciones del aprendizaje automático (Parte 2): Falta de reproducibilidad

Superando las limitaciones del aprendizaje automático (Parte 2): Falta de reproducibilidad

El artículo analiza por qué los resultados de las operaciones pueden diferir significativamente entre distintos brókeres, incluso utilizando la misma estrategia y el mismo símbolo financiero, debido a la descentralización de los precios y a las discrepancias en los datos. Este artículo ayuda a los desarrolladores de MQL5 a comprender por qué sus productos pueden recibir opiniones mixtas en el Market de MQL5, e insta a los desarrolladores a adaptar sus estrategias a los brókers específicos para garantizar resultados transparentes y reproducibles. Esto podría convertirse en una práctica recomendada importante y específica del sector, que beneficiaría a nuestra comunidad si se adoptara de forma generalizada.