Artículos de programación MQL4 y MQL5

icon

Aprenda el lenguaje de programación de estrategias comerciales MQL5 leyendo numerosos artículos la mayor parte de los cuales han sido escritos por Ustedes - miembros de MQL5.community. Con el fin de buscar rápidamente la respuesta sobre una u otra cuestión de programación, todos los artículos están divididos en categorías: "Integración", "Probador", "Estrategias comerciales", etc.

Siga las nuevas publicaciones y participe en sus discusiones en el foro de MQL5.community!

Nuevo artículo
últimas | mejores
preview
Repetición y simulación de mercado: Gran final

Repetición y simulación de mercado: Gran final

Sé que muchos podrían haber imaginado que publicaría más artículos para explicar otros aspectos del sistema. Los elementos que faltan son sencillos de implementar. Aun así, su desarrollo te permitirá comprobar hasta qué punto estás realmente preparado.
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
Automatización de estrategias de trading en MQL5 (Parte 23): Recuperación por zonas con trailing stop y lógica de cestas

Automatización de estrategias de trading en MQL5 (Parte 23): Recuperación por zonas con trailing stop y lógica de cestas

En este artículo, mejoramos nuestro sistema de recuperación por zonas mediante la incorporación de órdenes stop dinámicas y funciones de negociación con cestas múltiples. Analizamos cómo la arquitectura mejorada utiliza stops dinámicos para asegurar las ganancias y un sistema de gestión de cestas para gestionar de forma eficiente múltiples señales de negociación. Mediante la implementación y las pruebas retrospectivas, demostramos que se trata de un sistema de negociación más sólido, diseñado para adaptarse al comportamiento del mercado.
preview
Robot de trading basado en un modelo GPT

Robot de trading basado en un modelo GPT

El artículo presenta la implementación completa de TimeGPT, una arquitectura especializada basada en el Transformer para la predicción de series temporales financieras en la plataforma MetaTrader 5. Se analiza la adaptación del mecanismo de atención a los datos financieros, la tokenización selectiva de las variaciones de precios, las optimizaciones adaptadas al hardware y las técnicas avanzadas de entrenamiento. Se incluyen los resultados de las pruebas prácticas, que mostraron una precisión de las predicciones del 87 % con un horizonte de 24 barras y un tiempo de entrenamiento de 15 minutos en la CPU. Le presentamos un asesor experto listo para usar con reentrenamiento automático.
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
Arbitraje estadístico mediante acciones cointegradas (Parte 1): Pruebas de cointegración de Engle-Granger y Johansen

Arbitraje estadístico mediante acciones cointegradas (Parte 1): Pruebas de cointegración de Engle-Granger y Johansen

El objetivo de este artículo es ofrecer una introducción sencilla y accesible para los operadores a las pruebas de cointegración más habituales, junto con una guía básica para comprender sus resultados. Las pruebas de cointegración de Engle-Granger y Johansen pueden revelar pares o grupos de activos estadísticamente significativos que comparten una dinámica a largo plazo. La prueba de Johansen resulta especialmente útil para carteras con tres o más activos, ya que calcula la fuerza de los vectores cointegrados de una sola vez.
preview
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

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

La automatización del análisis de la evolución de los precios es el camino a seguir. En este artículo, utilizamos el indicador CCI dual, la estrategia de cruce de la línea cero, la media móvil exponencial (EMA) y la acción del precio para desarrollar una herramienta que genere señales de trading y establezca los niveles de stop-loss (SL) y take-profit (TP) utilizando el ATR. Lea este artículo para conocer cómo abordamos el desarrollo del EA CCI Zero-Line.
preview
Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 02): Desarrollo de la biblioteca REQUESTS inspirada en requests de Python

Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 02): Desarrollo de la biblioteca REQUESTS inspirada en requests de Python

En este artículo, implementamos un un módulo similar a requests, como el que ofrece Python para facilitar el envío y la recepción de solicitudes web en MetaTrader 5 utilizando MQL5.
preview
Simulación de mercado: Position View (X)

Simulación de mercado: Position View (X)

Necesitamos un medio para manejar los objetos gráficos que se crearán. La propuesta mostrada en el artículo anterior encaja perfectamente en algunos escenarios. Aquí necesitamos algo un poco más elaborado, debido a la naturaleza del problema que estamos tratando. Por lo tanto, no intentaremos sustituir los mecanismos presentes en MetaTrader 5 para manejar ZOrder ni, por supuesto, comprobar qué objeto está en primer plano o queda oculto por otro objeto. Haremos algo completamente diferente. Aquí mostraré qué modificaciones hay que hacer en el código para aprovechar parte de lo que MetaTrader 5 ya hace por nosotros.
preview
Simulación de mercado: Position View (XVII)

Simulación de mercado: Position View (XVII)

En el artículo anterior hicimos que el indicador mostrara el resultado financiero. Sin embargo, no a todos les gusta utilizar este modo de visualización. El motivo puede variar de un operador a otro, aunque en algunos casos me parece bastante razonable y justificable. Adaptar el código para ofrecer esta posibilidad no es, ni mucho menos, una de las tareas más complejas. En realidad, se trata de algo bastante sencillo. En este artículo veremos cómo hacerlo.
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
De novato a experto: Períodos del mercado Forex

De novato a experto: Períodos del mercado Forex

Cada período de mercado tiene un principio y un final, y cada uno cierra con un precio que define su sentimiento, al igual que cualquier sesión de velas japonesas. Comprender estos puntos de referencia nos permite evaluar el estado de ánimo predominante del mercado, revelando si las fuerzas alcistas o bajistas tienen el control. En este análisis, damos un paso importante al desarrollar una nueva función dentro del Sincronizador de Períodos de Mercado, que visualiza las sesiones del mercado Forex para facilitar la toma de decisiones de trading más informadas. Esta herramienta puede ser especialmente útil para identificar, en tiempo real, qué bando —alcistas o bajistas— domina la sesión. Exploremos este concepto y descubramos las conclusiones que ofrece.
preview
De novato a experto: Trading con filtrado temporal

De novato a experto: Trading con filtrado temporal

El hecho de que los ticks lleguen constantemente no significa que cada momento sea una oportunidad para operar. Hoy, realizaremos un estudio en profundidad del arte de la sincronización, centrándonos en el desarrollo de un algoritmo de aislamiento temporal para ayudar a los operadores a identificar y operar dentro de sus ventanas de mercado más favorables. Cultivar esta disciplina permite a los traders minoristas sincronizarse más estrechamente con el timing institucional, donde la precisión y la paciencia suelen ser clave para el éxito. Acompáñanos en esta discusión mientras exploramos la ciencia del timing y el trading selectivo a través de las capacidades analíticas de MQL5.
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
Simulación de mercado: Position View (XIV)

Simulación de mercado: Position View (XIV)

Ahora implementaremos esta solución porque MQL5 sigue el mismo principio que la programación basada en eventos. Los desarrolladores utilizan este modelo con frecuencia al crear DLL. Sé que, al principio, el funcionamiento basado en eventos parecerá confuso y carente de lógica. Pero, en este artículo, presentaré los principios de la programación basada en eventos con mayor claridad para que tú, que estás empezando, comprendas adecuadamente su funcionamiento. Entender lo que comenzaré a explicar en este artículo te ayudará en tu vida como programador.
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
Características del Wizard MQL5 que debe conocer (Parte 74): Uso de patrones de Ichimoku y del ADX-Wilder con aprendizaje supervisado

Características del Wizard MQL5 que debe conocer (Parte 74): Uso de patrones de Ichimoku y del ADX-Wilder con aprendizaje supervisado

Retomamos el tema de nuestro último artículo, donde presentamos el par de indicadores Ichimoku y ADX, analizando cómo se podría mejorar este dúo con el aprendizaje supervisado. Ichimoku y ADX forman una combinación complementaria de soporte/resistencia y tendencia. Nuestro enfoque de aprendizaje supervisado utiliza una red neuronal que emplea el núcleo de mezcla espectral profunda para ajustar con precisión las predicciones de este par de indicadores. Como de costumbre, esto se realiza en un archivo de clase de señal personalizado que funciona con el asistente MQL5 para ensamblar un Asesor Experto.
preview
Redes neuronales en el trading: descomposición en lugar de escalado (SSCNN)

Redes neuronales en el trading: descomposición en lugar de escalado (SSCNN)

En este artículo iniciamos la presentación del framework SSCNN, una solución arquitectónica moderna para el análisis de series temporales que combina precisión, una estructura definida y una elevada eficiencia computacional. Analizaremos paso a paso sus aspectos teóricos, prestaremos atención a las diferencias clave con respecto a sus predecesores y comenzaremos la implementación práctica de los componentes básicos en el entorno MQL5.
preview
Introducción a MQL5 (Parte 27): Cómo dominar las API y la función WebRequest() en MQL5

Introducción a MQL5 (Parte 27): Cómo dominar las API y la función WebRequest() en MQL5

Este artículo explica cómo utilizar la función WebRequest() y las API en MQL5 para comunicarse con plataformas externas. Aprenderá a crear un bot de Telegram, obtener identificadores de chat y de grupo, y enviar, editar y eliminar mensajes directamente desde MT5, sentando así una base sólida para dominar la integración de API en tus futuros proyectos MQL5.
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
Simulación de mercado: Position View (XVI)

Simulación de mercado: Position View (XVI)

En este artículo realizaremos las modificaciones necesarias para que el indicador de posición muestre un resultado financiero. De este modo, el operador podrá hacerse una idea del resultado financiero que se obtiene con una posición abierta. Además, compartiré contigo algo que muchos desconocen, incluso quienes llevan mucho tiempo utilizando MQL5: cómo utilizar variables estáticas para compartir memoria y evitar declarar una variable global en el código principal.
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
Simulación de mercado: Position View (XX)

Simulación de mercado: Position View (XX)

En este artículo veremos cómo modificar el código del indicador de posición para crear una especie de sombra que nos permita visualizar dónde se encuentra actualmente el precio que continúa vigente en el servidor de trading. Este mecanismo pretende facilitar la planificación de operaciones en las que desplazamos las líneas de stop loss o take profit. Añadir esta función, es decir, las sombras de precio, puede parecer extremadamente complejo. En este artículo mostraré que puedes implementarla de una forma muy sencilla y práctica.
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
Características del Wizard MQL5 que debe conocer (Parte 68): Uso de patrones de TRIX y Williams Percent Range con una red de núcleo coseno

Características del Wizard MQL5 que debe conocer (Parte 68): Uso de patrones de TRIX y Williams Percent Range con una red de núcleo coseno

Retomamos nuestro último artículo, donde presentamos el par de indicadores TRIX y Williams Percent Range, y ahora analizamos cómo se podría ampliar este par de indicadores con aprendizaje automático. TRIX y Williams Percent Range forman un par complementario de tendencia y soporte/resistencia. Nuestro enfoque de aprendizaje automático utiliza una red neuronal convolucional que incorpora el núcleo coseno en su arquitectura a la hora de ajustar las previsiones de este par de indicadores. Como siempre, esto se hace en un archivo de clase de señal personalizado que funciona con el asistente de MQL5 (Wizard MQL5) para crear un asesor experto.
preview
Características del Wizard MQL5 que debe conocer (Parte 70): Uso de patrones del SAR y el RVI con una red de kernel exponencial

Características del Wizard MQL5 que debe conocer (Parte 70): Uso de patrones del SAR y el RVI con una red de kernel exponencial

Retomamos nuestro último artículo, donde presentamos el par de indicadores SAR y RVI, y ahora analizamos cómo se podría ampliar este par de indicadores con el aprendizaje automático. SAR y RVI forman una combinación complementaria de tendencia e impulso. Nuestro enfoque de aprendizaje automático usa una CNN 1D con escalado exponencial en el tamaño de los kernels y en el número de canales, al tiempo que ajusta las previsiones de este par de indicadores. Como siempre, esto se realiza en un archivo de clase de señal personalizado que funciona con el asistente MQL5 para ensamblar un Asesor Experto.
preview
Algoritmo del duelista — Duelist Algorithm

Algoritmo del duelista — Duelist Algorithm

¿Y si nuestras estrategias de trading pudieran aprender unas de otras, como auténticos luchadores? Duelist Algorithm es un nuevo método de optimización en el que los parámetros de los sistemas de trading se enfrentan literalmente en duelos por el derecho a ser considerados los mejores.
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
Redes neuronales en el trading: Extracción eficaz de características para una clasificación precisa (Implementación de objetos)

Redes neuronales en el trading: Extracción eficaz de características para una clasificación precisa (Implementación de objetos)

Mantis es una herramienta universal para el análisis profundo de series temporales, escalable de forma flexible para cualquier escenario financiero. Descubre cómo la combinación de patching, convoluciones locales y atención cruzada permite obtener una interpretación de alta precisión de los patrones de mercado.
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
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 31): Motor de reconocimiento de velas japonesas en Python (I) — Detección manual

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 31): Motor de reconocimiento de velas japonesas en Python (I) — Detección manual

Los patrones de velas japonesas son fundamentales para el trading basado en la evolución de los precios, ya que ofrecen información valiosa sobre posibles reversiones o continuaciones del mercado. Imagina una herramienta fiable que supervise continuamente cada nueva barra de precios, identifique formaciones clave como los patrones envolvente, martillo, doji y estrella, y te avise de inmediato cuando detecte una oportunidad de negociación significativa. Esta es precisamente la funcionalidad que hemos desarrollado. Tanto si eres nuevo en el mundo del trading como si eres un profesional con experiencia, este sistema ofrece alertas en tiempo real sobre patrones de velas japonesas, lo que te permite centrarte en ejecutar operaciones con mayor confianza y eficiencia. Sigue leyendo para descubrir cómo funciona y cómo puede mejorar tu estrategia de trading.
preview
Características del Wizard MQL5 que debe conocer (Parte 77): Uso del oscilador Gator y del oscilador de acumulación/distribución

Características del Wizard MQL5 que debe conocer (Parte 77): Uso del oscilador Gator y del oscilador de acumulación/distribución

El oscilador Gator de Bill Williams y el oscilador de acumulación/distribución constituyen otro binomio de indicadores que podría utilizarse de forma armoniosa en un asesor experto de MQL5. Utilizamos el oscilador Gator por su capacidad para corroborar fases de tendencia, mientras que el A/D se utiliza para proporcionar confirmación de las tendencias mediante comprobaciones del volumen. Al explorar esta combinación de indicadores, como siempre, utilizamos el Asistente de MQL5 para montar y poner a prueba una estrategia basada en ambos.
preview
Implementación de un circuito cuántico para Quantum Reservoir Computing (QRC)

Implementación de un circuito cuántico para Quantum Reservoir Computing (QRC)

Hoy hablaremos de un enfoque revolucionario del aprendizaje automático en el trading mediante la computación cuántica. El artículo muestra la implementación práctica de un sistema QRC adaptativo con aprendizaje adicional continuo para predecir los movimientos del mercado en tiempo real.
preview
Asesor experto de trading neuronal basado en PatchTST

Asesor experto de trading neuronal basado en PatchTST

El artículo presenta la revolucionaria arquitectura PatchTST: un modelo de Transformer especialmente adaptado para el análisis de series temporales financieras que divide los datos de mercado en parches de 16 barras para un procesamiento eficiente. También se analiza con detalle la implementación completa de un robot de trading en MQL5, desde los fundamentos matemáticos y las estructuras de datos hasta un asesor experto listo para usar con sistemas de gestión de riesgos y de aprendizaje continuo.
preview
Redes neuronales en el trading: Desentrañando las componentes estructuradas (Final)

Redes neuronales en el trading: Desentrañando las componentes estructuradas (Final)

En este artículo se describe detalladamente la arquitectura SCNN y una de las formas de implementarla usando MQL5. Mostraremos cómo la descomposición de series temporales se combina con los métodos de redes neuronales y la atención.
preview
Simulación de mercado: Position View (XII)

Simulación de mercado: Position View (XII)

En este artículo, aprenderás a crear una señal visual en tu plataforma de trading para identificar directamente en el gráfico si la posición es larga o corta, sin necesidad de acceder al terminal. Además, el texto aborda la implementación de una funcionalidad que mejora la visualización al mover las líneas de take profit y stop loss, ocultando la línea horizontal que sigue al cursor del mouse mientras se reposicionan dichas líneas para evitar confusiones. La lectura ofrece conocimientos prácticos para personalizar sistemas de simulación de mercado.
preview
Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 01): Desarrollo de una biblioteca SQLite3 inspirada en Python

Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 01): Desarrollo de una biblioteca SQLite3 inspirada en Python

El módulo sqlite3 de Python ofrece una forma sencilla de trabajar con bases de datos SQLite; es rápido y práctico. En este artículo, vamos a crear un módulo similar a partir de las funciones integradas de MQL5 para trabajar con bases de datos, con el fin de facilitar el trabajo con bases de datos SQLite3 en MQL5, al igual que en Python.
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
Redes neuronales en el trading: entrenamiento de metaparámetros basado en la heterogeneidad (HimNet)

Redes neuronales en el trading: entrenamiento de metaparámetros basado en la heterogeneidad (HimNet)

Te invitamos a conocer el framework HimNet, que combina la flexibilidad de la adaptación espaciotemporal con una alta eficiencia computacional, lo que permite obtener pronósticos precisos y estables en series temporales financieras. En el artículo se muestra en detalle cómo interactúan entre sí sus componentes clave, convirtiendo algoritmos complejos en una arquitectura manejable.
preview
Simulación de mercado: Position View (XV)

Simulación de mercado: Position View (XV)

En este artículo intentaré explicar, de la forma más sencilla posible, cómo puedes utilizar el intercambio de mensajes entre aplicaciones. El objetivo es que puedas desarrollar algo funcional de la manera más simple y eficaz, siempre que sea posible. No sé si lograré transmitir la idea que sustenta este concepto, pues no resulta fácil de asimilar para quien lo encuentra por primera vez. También aprovecharé para mostrarte cómo modificar el sistema de repetición/simulador, de modo que puedas depurar un Asesor Experto o cualquier otro código que estés desarrollando. Todo ello de una forma igualmente sencilla y directa.