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
Del básico al intermedio: Objetos (I)

Del básico al intermedio: Objetos (I)

En este artículo, empezaremos a ver cómo podremos trabajar con objetos directamente en el gráfico. Esto usando un código construido especialmente para mostrarnos algo. Trabajar con objetos es algo muy interesante y bastante divertido. Como este será el primer contacto, empezaremos con algo muy simple.
preview
Redes neuronales en el trading: Optimización LSTM para la previsión de series temporales multivariantes (DA-CG-LSTM)

Redes neuronales en el trading: Optimización LSTM para la previsión de series temporales multivariantes (DA-CG-LSTM)

En este artículo presentamos el algoritmo DA-CG-LSTM, que ofrece nuevos enfoques para el análisis y la previsión de series temporales. En él aprenderemos cómo los innovadores mecanismos de atención y la flexibilidad de los modelos mejoran la precisión de las predicciones.
preview
Simulación de mercado (Parte 07): Sockets (I)

Simulación de mercado (Parte 07): Sockets (I)

Sockets. ¿Sabes para qué sirven o cómo usarlos en MetaTrader 5? Si la respuesta es no, comencemos aprendiendo un poco sobre ellos. Este artículo trata de lo más básico. Pero, como existen diversas maneras de hacer lo mismo, y lo que realmente nos interesa es siempre el resultado, quiero mostrar que sí, existe una forma sencilla de pasar datos desde MetaTrader 5 hacia otros programas, como, por ejemplo, Excel. Sin embargo, la idea principal no es transferir datos de MetaTrader 5 a Excel, sino hacer lo contrario. Es decir, transferir datos desde Excel, o desde cualquier otro programa, hacia MetaTrader 5.
preview
Del básico al intermedio: Objetos (III)

Del básico al intermedio: Objetos (III)

En este artículo veremos cómo podemos implementar un sistema de interacción muy atractivo e interesante, sobre todo para quienes están empezando a practicar programación en MQL5. No se trata de algo realmente nuevo. La forma en que abordaré el tema hará que todo sea mucho más fácil de entender, ya que veremos, en la práctica, cómo se desarrolla una programación estructural con un objetivo bastante divertido.
preview
Descarga de datos del Fondo Monetario Internacional en Python

Descarga de datos del Fondo Monetario Internacional en Python

Descarga de datos del Fondo Monetario Internacional en Python: extraemos datos del FMI para su uso en estrategias monetarias macroeconómicas. ¿Cómo puede la macroeconomía ayudar a los tráders y tráders algorítmicos?
preview
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte VI): Cómo aprovechar el doble descenso profundo

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte VI): Cómo aprovechar el doble descenso profundo

El aprendizaje automático tradicional enseña a los profesionales a estar atentos para no sobreajustar sus modelos. Sin embargo, esta ideología está siendo cuestionada por nuevos hallazgos publicados por diligentes investigadores de Harvard, quienes han descubierto que lo que parece ser un sobreajuste puede, en algunas circunstancias, ser el resultado de finalizar prematuramente los procedimientos de entrenamiento. Demostraremos cómo podemos utilizar las ideas publicadas en el artículo de investigación para mejorar nuestro uso de la IA en la previsión de retornos del mercado.
preview
Símbolos personalizados MQL5: Creamos un símbolo de barras 3D

Símbolos personalizados MQL5: Creamos un símbolo de barras 3D

Este artículo ofrece una guía detallada para crear el innovador indicador 3DBarCustomSymbol.mq5, que genera símbolos personalizados en MetaTrader 5 que combinan precio, tiempo, volumen y volatilidad en una única representación tridimensional. Asimismo, analizaremos los fundamentos matemáticos, la arquitectura del sistema y los aspectos prácticos de su implementación y aplicación en estrategias de negociación.
preview
Características del Wizard MQL5 que debe conocer (Parte 66): Uso de patrones FrAMA y Force Index con el núcleo de producto escalar

Características del Wizard MQL5 que debe conocer (Parte 66): Uso de patrones FrAMA y Force Index con el núcleo de producto escalar

El indicador FrAMA y el oscilador Force Index son herramientas de tendencia y volumen que pueden combinarse al desarrollar un asesor experto. Retomamos nuestro último artículo, en el que presentamos este par, para analizar la aplicabilidad del aprendizaje automático al mismo. Estamos utilizando una red neuronal convolucional que emplea el núcleo de producto escalar para realizar previsiones a partir de los datos de estos indicadores. Esto se lleva a cabo en un archivo de clase de señal personalizado que funciona con el asistente de MQL5 para crear un asesor experto.
preview
Simulación de mercado: Iniciando SQL en MQL5 (I)

Simulación de mercado: Iniciando SQL en MQL5 (I)

En este artículo, comenzaremos a explorar el uso de SQL dentro de un código MQL5. Veremos cómo podemos crear una base de datos. O, mejor dicho, cómo podemos crear un archivo de base de datos en SQLite, utilizando, para ello, recursos o procedimientos incluidos en el lenguaje MQL5. Veremos también cómo crear una tabla y, después, cómo crear una relación entre tablas mediante una clave primaria y una clave foránea. Todo esto usando, nuevamente, MQL5. Veremos lo sencillo que es crear un código que, en el futuro, podrá portarse a otras implementaciones de SQL, usando una clase que nos ayude a ocultar la implementación creada. Y, lo más importante de todo, veremos que, en diversos momentos, podemos correr el riesgo de que algo no salga bien al usar SQL. Esto se debe a que, dentro del código MQL5, un código SQL siempre se colocará dentro de una STRING.
preview
Simulación de mercado: Iniciando SQL en MQL5 (V)

Simulación de mercado: Iniciando SQL en MQL5 (V)

En el artículo anterior mostré cómo debías proceder para poder añadir el mecanismo de consulta. Esto para que, dentro del código MQL5, pudieras usar SQL plenamente y obtener los resultados al usar el comando SELECT FROM de SQL. Pero faltó hablar de la última función que necesitamos implementar. Esta es la función DatabaseReadBind. Y, como para entenderla adecuadamente hace falta una explicación un poco más amplia, se decidió hacerlo no en aquel artículo anterior, sino en este. Entonces, como el tema será relativamente largo, vayamos directamente al siguiente apartado.
preview
Dominando los registros (Parte 2): Formateo de registros

Dominando los registros (Parte 2): Formateo de registros

En este artículo, exploraremos cómo crear y aplicar formateadores de registros en la biblioteca. Veremos todo, desde la estructura básica de un formateador hasta ejemplos de implementación práctica. Al finalizar, tendrás el conocimiento necesario para formatear registros dentro de la biblioteca y comprenderás cómo funciona todo detrás de escena.
preview
Determinación de los tipos de cambio justos en PPA usando los datos del FMI

Determinación de los tipos de cambio justos en PPA usando los datos del FMI

Construcción de un sistema de análisis de tipo de cambio basado en paridad de poder adquisitivo (PPA) en Python. El autor ha desarrollado un algoritmo con cinco métodos para calcular tipos de cambio justos utilizando datos del FMI. El presente artículo supone una guía práctica para el análisis fundamental de divisas, el procesamiento de datos económicos y la integración con sistemas comerciales. Encontrará el código completo en open source.
preview
Simulación de mercado: Position View (VII)

Simulación de mercado: Position View (VII)

En este artículo, comenzaremos a realizar algunas mejoras en el indicador de posición, para poder interactuar con él y modificar las líneas de precio, o cerrar una posición directamente mediante la interacción con el indicador de posición. Antes de entrar realmente en la implementación, conviene aclarar algo, sobre todo para quienes no estén al tanto. No es posible, de ninguna manera, usar un indicador para modificar algo en el servidor de trading. Esto se debe a que MetaTrader 5 cuenta con un sistema de seguridad que permite únicamente a los Asesores Expertos actuar sobre una orden o una posición. Ninguna otra aplicación que no sea un Asesor Experto podrá manipular órdenes o posiciones.
preview
Características del Wizard MQL5 que debe conocer (Parte 59): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico (II)

Características del Wizard MQL5 que debe conocer (Parte 59): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico (II)

Continuamos nuestro último artículo sobre DDPG con indicadores MA y estocásticos examinando otras clases clave de aprendizaje por refuerzo cruciales para la implementación de DDPG. Aunque programamos principalmente en Python, el producto final de una red entrenada se exportará como un archivo ONNX a MQL5, donde lo integraremos como un recurso en un Asesor Experto creado mediante un asistente.
preview
Del básico al intermedio: FileSave y FileLoad

Del básico al intermedio: FileSave y FileLoad

En este artículo se explicarán y explorarán algunas formas de trabajar con las funciones de la biblioteca FileSave y FileLoad. Aunque mucha gente las considera poco prometedoras, debido a algunas limitaciones o dificultades que generan en ciertos escenarios, entender correctamente cómo funcionan estas dos funciones puede ahorrarte mucho trabajo en determinados momentos. Además, son una excelente forma de trabajar con archivos de log.
preview
Gestor de riesgos para robots de trading (Parte I): archivo include para el control de riesgos en asesores expertos

Gestor de riesgos para robots de trading (Parte I): archivo include para el control de riesgos en asesores expertos

El trading exige una estricta disciplina sn la gestión de riesgos. El presente trabajo presenta un análisis de las principales causas de los fracasos de los tráders y propone una solución técnica en forma de la clase CEnhancedRiskManager para la plataforma MQL5. Incluye pruebas prácticas con un asesor experto de cuadrícula agresivo.
preview
Simulación de mercado (Parte 19): Iniciando SQL (II)

Simulación de mercado (Parte 19): Iniciando SQL (II)

Como expliqué en el primer artículo sobre SQL, no tiene sentido que pierdas el tiempo programando rutinas para conseguir hacer algo que SQL ya incluye. Sin embargo, si no sabes lo más básico, no lograrás hacer nada con SQL para aprovechar lo que esta herramienta tiene para ofrecernos. Por ello, en este artículo veremos cómo ejecutar tareas fundamentales en bases de datos.
preview
Simulación de mercado (Parte 21): Iniciando SQL (IV)

Simulación de mercado (Parte 21): Iniciando SQL (IV)

Muchos de ustedes, queridos lectores, pueden tener un nivel de experiencia muy superior al mío en lo que respecta a trabajar con bases de datos y, así, por esta razón, tener una visión diferente de la mía. Pero, como era necesario definir y desarrollar alguna forma de explicar el motivo por el cual las bases de datos se crean como se crean, explicar por qué SQL tiene el formato que tiene y, sobre todo, por qué surgieron las claves primarias y las claves foráneas, fue necesario dejar las cosas un poco abstractas.
preview
Del básico al intermedio: Eventos en Objetos (IV)

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

En este artículo, terminaremos lo que comenzamos en el artículo anterior. Es decir, una forma total y completamente interactiva de redimensionar los objetos directamente en el gráfico. Aunque muchos imaginen que, para hacer algo así, haría falta mucho más conocimiento de MQL5, notarás que, con conceptos simples y conocimientos muy básicos, podemos implementar una forma de trabajar con los objetos directamente en el gráfico. Algo que da un resultado muy divertido y bastante interesante.
preview
Redes neuronales en el trading: Jerarquía de habilidades para el comportamiento adaptativo de agentes (Final)

Redes neuronales en el trading: Jerarquía de habilidades para el comportamiento adaptativo de agentes (Final)

El artículo analiza la aplicación práctica del framework HiSSD en tareas de trading algorítmico. Muestra cómo la jerarquía de habilidades y la arquitectura adaptativa pueden usarse para construir estrategias de negociación sostenibles.
preview
Red neuronal cuántica en MQL5 (Parte II): Entrenamos una red neuronal con retropropagación del error utilizando matrices de Márkov de ALGLIB

Red neuronal cuántica en MQL5 (Parte II): Entrenamos una red neuronal con retropropagación del error utilizando matrices de Márkov de ALGLIB

En este artículo se presenta una arquitectura innovadora de red neuronal cuántica para el trading algorítmico, que combina los principios de la mecánica cuántica con los métodos actuales de aprendizaje automático. El sistema incorpora efectos cuánticos (resonancia, interferencia, decoherencia), memoria multinivel de distintas escalas temporales, cadenas de Márkov con la biblioteca ALGLIB y control adaptativo de parámetros. La implementación completa está realizada en MQL5 utilizando los tipos integrados matrix/vector, lo que elimina las barreras de adopción en MetaTrader 5.
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: Eventos de mouse

Del básico al intermedio: Eventos de mouse

Este artículo es uno de esos en los que, definitivamente, no basta con ver el código y estudiarlo para entender qué ocurre. De hecho, es necesario crear una aplicación ejecutable y usarla en cualquier gráfico. Esto, para poder entender pequeños detalles que, de otro modo, son muy complicados de comprender. Como, por ejemplo, la combinación del teclado con el mouse para construir ciertos tipos de cosas.
preview
Características del Wizard MQL5 que debe conocer (Parte 58): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico

Características del Wizard MQL5 que debe conocer (Parte 58): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico

La media móvil y el oscilador estocástico son indicadores muy comunes cuyos patrones colectivos analizamos en el artículo anterior, mediante una red de aprendizaje supervisado, para ver qué «patrones se mantendrían». Partiendo de los análisis de ese artículo, vamos un paso más allá y analizamos los efectos que tendría en el rendimiento el aprendizaje por refuerzo, cuando se utiliza con esta red entrenada. Los lectores deben tener en cuenta que nuestras pruebas se han realizado en un periodo de tiempo muy limitado. No obstante, seguimos aprovechando los requisitos mínimos de programación que ofrece el Asistente de MQL5 (MQL5 Wizard) para mostrar esto.
preview
Simulación de mercado: Position View (II)

Simulación de mercado: Position View (II)

En este artículo, mostraré, de la forma más simple y práctica posible, cómo podrás usar un indicador como forma de observar posiciones abiertas en el servidor de trading. Lo hago así, y poco a poco, precisamente para mostrar que no necesitas incorporar necesariamente todo esto en un Asesor Experto. Muchos de ustedes ya deben de estar bastante acostumbrados a hacer esto, por un motivo u otro. La verdad es que eso es una tontería, ya que, a medida que avancemos en esta implementación, quedará claro que podrás crear o implementar diversos tipos de indicadores para este propósito.
preview
Minería de datos de los balances de los bancos centrales y obtención de un panorama de la liquidez global

Minería de datos de los balances de los bancos centrales y obtención de un panorama de la liquidez global

La minería de datos del balance de los bancos centrales ofrece una imagen de la liquidez global en el mercado Forex y en las divisas clave. Hoy combinaremos datos de la Fed, el BCE, el BOJ y el PBoC en un índice compuesto y utilizaremos el aprendizaje automático para descubrir patrones ocultos. Este enfoque convierte los datos sin procesar en señales comerciales reales combinando el análisis fundamental y técnico.
preview
De novato a experto: Revelando las sombras de las velas japonesas (mechas)

De novato a experto: Revelando las sombras de las velas japonesas (mechas)

En este análisis, damos un paso adelante para descubrir la acción del precio subyacente que se esconde tras las mechas de las velas japonesas. Al integrar una función de visualización de mechas en el Market Periods Synchronizer, mejoramos la herramienta con mayor profundidad analítica e interactividad. Este sistema mejorado permite a los traders visualizar los rechazos de precios en marcos temporales superiores directamente en gráficos de marcos temporales inferiores, revelando estructuras detalladas que antes estaban ocultas.
preview
Simulación de mercado: Position View (XVIII)

Simulación de mercado: Position View (XVIII)

En este artículo mostré, de la forma más didáctica posible, cómo puedes modificar y desarrollar un código capaz de cumplir determinados objetivos alterando lo mínimo posible un código ya existente. Añadiremos un indicador de volumen y, al mismo tiempo, impediremos que el usuario u operador elimine los objetos que se están creando por el indicador de posición.
preview
Simulación de mercado (Parte 18): Iniciando SQL (I)

Simulación de mercado (Parte 18): Iniciando SQL (I)

Da igual si vamos a usar uno u otro programa de SQL, ya sea MySQL, SQL Server, SQLite, OpenSQL o cualquier otro. Todos tienen algo en común. Ese algo en común es el lenguaje SQL. Aunque no vayas a usar una WorkBench, podrás manipular o trabajar con una base de datos directamente en MetaEditor o a través de MQL5 para hacer cosas en MetaTrader 5, pero necesitarás tener conocimientos de SQL. Así que aquí aprenderemos, al menos, lo básico.
preview
Optimización basada en biogeografía — Biogeography-Based Optimization (BBO)

Optimización basada en biogeografía — Biogeography-Based Optimization (BBO)

La optimización basada en biogeografía (BBO) supone un elegante método de optimización global inspirado en los procesos naturales de migración de especies entre islas de archipiélagos. El algoritmo se basa en una idea simple pero poderosa: las soluciones de alta calidad comparten activamente sus características, mientras que las soluciones de baja calidad adoptan activamente nuevas características, creando un flujo natural de información desde las mejores soluciones hacia las peores. El BBO, un operador de mutación adaptativa único que ofrece un excelente equilibrio entre exploración y explotación, demuestra una alta eficiencia en una variedad de tareas.
preview
Redes neuronales en el trading: Transformer parámetro-eficiente con atención segmentada (PSformer)

Redes neuronales en el trading: Transformer parámetro-eficiente con atención segmentada (PSformer)

Hoy proponemos al lector un primer contacto con el nuevo framework PSformer, que adapta la arquitectura del Transformer vainilla para resolver problemas de previsión de series temporales multidimensionales. El framework se basa en dos innovaciones clave: el mecanismo de compartición de parámetros (PS) y la atención a los segmentos espaciotemporales (SegAtt).
preview
Del básico al intermedio: Estructuras (VII)

Del básico al intermedio: Estructuras (VII)

En este artículo se mostrará cómo podemos abordar los problemas para estructurar las cosas y crear una solución más sencilla y atractiva. Aunque el contenido está orientado a la didáctica y, por lo tanto, no se trata de un código real, es necesario asimilar muy bien los conceptos y conocimientos que se verán aquí. Así, en el futuro, podrás seguir los códigos que iremos mostrando.
preview
Redes neuronales en el trading: Previsión probabilística de series temporales (Final)

Redes neuronales en el trading: Previsión probabilística de series temporales (Final)

Le invitamos a explorar el framework K²VAE y a descubrir cómo integrar los enfoques propuestos en su sistema de negociación. Hoy aprenderá cómo el enfoque híbrido Koopman-Kalman-VAE ayuda a construir modelos adaptativos e interpretables. Al final del artículo le presentaremos los resultados prácticos del uso de las soluciones implementadas.
preview
Acceso a la información de ticks de MetaTrader desde los servicios de MQL5 a una aplicación de Python mediante sockets

Acceso a la información de ticks de MetaTrader desde los servicios de MQL5 a una aplicación de Python mediante sockets

A veces no todo se puede programar en el lenguaje MQL5. E incluso si fuera posible convertir las bibliotecas avanzadas existentes en MQL5, llevaría mucho tiempo. Este artículo pretende demostrar que es posible sortear la dependencia de Windows transmitiendo información de ticks —como el precio bid, precio ask y hora— a través de los servicios de MetaTrader a una aplicación de Python mediante sockets.
preview
Robot de trading multiflujo con aprendizaje automático: del concepto a la implementación

Robot de trading multiflujo con aprendizaje automático: del concepto a la implementación

El artículo presenta el desarrollo paso a paso de un robot de trading multiflujo con aprendizaje automático en Python y MetaTrader 5. Se analiza la arquitectura del sistema, desde la recopilación de datos y la creación de indicadores técnicos hasta el entrenamiento de modelos XGBoost con gestión de riesgos de cartera. Asimismo, se describe detalladamente la implementación del aumento de datos, la clusterización de características mediante Gaussian Mixture Models y la coordinación de flujos para el trading paralelo de varios pares de divisas.
preview
Redes neuronales en el trading: Mejora de la eficiencia del Transformer mediante la reducción de la nitidez (Final)

Redes neuronales en el trading: Mejora de la eficiencia del Transformer mediante la reducción de la nitidez (Final)

El SAMformer ofrece una solución a los problemas clave del Transformer en la previsión de series temporales a largo plazo, incluida la complejidad del entrenamiento y la escasa generalización a muestras pequeñas. Su arquitectura poco profunda y la optimización con control de nitidez garantizan que se eviten los malos mínimos locales. En este artículo, proseguiremos la aplicación de enfoques utilizando MQL5 y evaluaremos su valor práctico.
preview
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 29): Boom and Crash Interceptor EA

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 29): Boom and Crash Interceptor EA

Descubre cómo el EA «Boom & Crash Interceptor» transforma tus gráficos en un sistema de alertas proactivo, capaz de detectar movimientos explosivos mediante análisis ultrarrápidos, detección de picos de volatilidad, confirmación de tendencias y filtros de zonas de pivote. Con las flechas verdes «Boom» y rojas «Crash», que te guían en cada decisión, esta herramienta elimina el ruido y te permite sacar partido de los picos del mercado como nunca antes. Descúbrelo y comprueba cómo funciona y por qué puede convertirse en tu próxima ventaja imprescindible.
preview
Del básico al intermedio: Objetos (IV)

Del básico al intermedio: Objetos (IV)

Puede que este sea el artículo más divertido hasta ahora. Esto ocurre porque aquí implementaremos una modificación de un objeto presente en MetaTrader 5 para crear otro que no existe originalmente en la plataforma. Claro, lo que verás aquí puede parecer una locura, pero funciona y tiene un objetivo muy interesante.
preview
Dominando los registros (Parte 7): Cómo mostrar los registros en un gráfico

Dominando los registros (Parte 7): Cómo mostrar los registros en un gráfico

Descubre cómo mostrar los registros directamente en el gráfico de MetaTrader de forma organizada, con marcos, títulos y scroll automático. En este artículo te mostramos cómo crear un sistema visual de registros con MQL5, ideal para supervisar en tiempo real lo que hace tu robot.
preview
Integración de MQL5 con paquetes de procesamiento de datos (Parte 5): Aprendizaje adaptativo y flexibilidad

Integración de MQL5 con paquetes de procesamiento de datos (Parte 5): Aprendizaje adaptativo y flexibilidad

Esta parte se centra en la creación de un modelo de negociación flexible y adaptativo, entrenado con datos históricos del XAUUSD, preparándolo para su exportación a ONNX y su posible integración en sistemas de negociación en tiempo real.