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
Redes neuronales: así de sencillo (Parte 78): Detector de objetos basado en el Transformer (DFFT)

Redes neuronales: así de sencillo (Parte 78): Detector de objetos basado en el Transformer (DFFT)

En este artículo, le propongo abordar la creación de una estrategia comercial desde una perspectiva diferente. Hoy no pronosticaremos los movimientos futuros de los precios, sino que trataremos de construir un sistema comercial basado en el análisis de datos históricos.
preview
ADAM poblacional (Estimación Adaptativa de Momentos)

ADAM poblacional (Estimación Adaptativa de Momentos)

Este artículo presenta la transformación del conocido y popular método de optimización ADAM basado en gradientes en un algoritmo basado en poblaciones y su modificación con la introducción de individuos híbridos. El nuevo enfoque permite crear agentes que combinen elementos de soluciones exitosas mediante una distribución de probabilidades. Una innovación clave es la generación de poblaciones híbridas que acumulan de forma adaptativa la información de las soluciones más prometedoras, mejorando la eficacia de la búsqueda en espacios multidimensionales complejos.
preview
Desarrollo de un sistema de repetición (Parte 27): Proyecto Expert Advisor — Clase C_Mouse (I)

Desarrollo de un sistema de repetición (Parte 27): Proyecto Expert Advisor — Clase C_Mouse (I)

En este artículo, daremos vida a la clase C_Mouse. Está diseñada para permitir programar al más alto nivel posible. Sin embargo, hablar de programar a niveles altos o bajos no está relacionado con incluir palabrotas o jerga en el código. Todo lo contrario. Cuando mencionamos programación de alto o bajo nivel, nos referimos a lo fácil o difícil que es para otro programador entender el código.
preview
Reimaginando las estrategias clásicas (Parte II): Ruptura de las Bandas de Bollinger

Reimaginando las estrategias clásicas (Parte II): Ruptura de las Bandas de Bollinger

Este artículo explora una estrategia comercial que integra el análisis discriminante lineal (Linear Discriminant Analysis, LDA) con las Bandas de Bollinger, aprovechando las predicciones de zonas categóricas para obtener señales estratégicas de entrada al mercado.
preview
Redes neuronales en el trading: Detección adaptativa de anomalías del mercado (DADA)

Redes neuronales en el trading: Detección adaptativa de anomalías del mercado (DADA)

Hoy vamos a familiarizarnos con el framework DADA, un método innovador para detectar anomalías en las series temporales. Este ayuda a distinguir las fluctuaciones aleatorias de las presuntas anomalías. A diferencia de los métodos tradicionales, el DADA puede adaptarse de forma flexible a distintos datos. En lugar de un nivel de compresión fijo, usa múltiples opciones y elige la más adecuada para cada caso.
preview
Redes neuronales: así de sencillo (Parte 63): Entrenamiento previo del Transformador de decisiones no supervisado (PDT)

Redes neuronales: así de sencillo (Parte 63): Entrenamiento previo del Transformador de decisiones no supervisado (PDT)

Continuamos nuestra análisis de la familia de métodos del Transformador de decisiones. En artículos anteriores ya hemos observado que entrenar el transformador subyacente en la arquitectura de estos métodos supone todo un reto y requiere una gran cantidad de datos de entrenamiento marcados. En este artículo, analizaremos un algoritmo para utilizar trayectorias no marcadas para el entrenamiento previo de modelos.
preview
Características del Wizard MQL5 que debe conocer (Parte 30): Normalización por lotes en el aprendizaje automático

Características del Wizard MQL5 que debe conocer (Parte 30): Normalización por lotes en el aprendizaje automático

La normalización por lotes es el preprocesamiento de datos antes de introducirlos en un algoritmo de aprendizaje automático, como una red neuronal. Esto siempre se hace teniendo en cuenta el tipo de activación que utilizará el algoritmo. Por lo tanto, exploramos los diferentes enfoques que se pueden adoptar para aprovechar los beneficios de esto, con la ayuda de un Asesor Experto ensamblado por un asistente.
preview
Reimaginando las estrategias clásicas (Parte IV): SP500 y bonos del Tesoro de EE.UU.

Reimaginando las estrategias clásicas (Parte IV): SP500 y bonos del Tesoro de EE.UU.

En esta serie de artículos, analizamos estrategias de trading clásicas utilizando algoritmos modernos para determinar si podemos mejorar la estrategia utilizando IA. En el artículo de hoy, retomamos un enfoque clásico para operar con el SP500 utilizando la relación que guarda con los bonos del Tesoro estadounidense.
preview
Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con Integración RestAPI (Parte 3): Creación de jugadas automáticas y scripts de prueba en MQL5

Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con Integración RestAPI (Parte 3): Creación de jugadas automáticas y scripts de prueba en MQL5

Este artículo explora la implementación de jugadas automáticas en el juego del tres en raya de Python, integrado con funciones de MQL5 y pruebas unitarias. El objetivo es mejorar la interactividad del juego y asegurar la robustez del sistema a través de pruebas en MQL5. La exposición cubre el desarrollo de la lógica del juego, la integración y las pruebas prácticas, y finaliza con la creación de un entorno de juego dinámico y un sistema integrado confiable.
preview
Algoritmo de optimización basado en la migración animal (Animal Migration Optimization, AMO)

Algoritmo de optimización basado en la migración animal (Animal Migration Optimization, AMO)

El artículo está dedicado al algoritmo AMO, que modela la migración estacional de los animales en busca de condiciones óptimas para la vida y la reproducción. Las principales características de AMO incluyen el uso de vecindad topológica y un mecanismo de actualización probabilística, lo que lo hace fácil de implementar y flexible para diversas tareas de optimización.
preview
Algoritmo de Algas Artificiales (Artificial Algae Algorithm, AAA)

Algoritmo de Algas Artificiales (Artificial Algae Algorithm, AAA)

El artículo considera el Algoritmo de Algas Artificiales (Artificial Algae Algorithm, AAA) basado en procesos biológicos característicos de las microalgas. El algoritmo incluye movimiento en espiral, proceso evolutivo y adaptación, lo que le permite resolver problemas de optimización. El artículo analiza en profundidad los principios de funcionamiento del AAA y su potencial en la modelización matemática, destacando la conexión entre la naturaleza y las soluciones algorítmicas.
preview
Modelos ocultos de Márkov en sistemas comerciales de aprendizaje automático

Modelos ocultos de Márkov en sistemas comerciales de aprendizaje automático

Los modelos ocultos de Márkov (HMM) son una potente clase de modelos probabilísticos diseñados para analizar datos secuenciales, donde los eventos observados dependen de alguna secuencia de estados no observados (ocultos) que forman un proceso de Márkov. Los principales supuestos del HMM incluyen la propiedad de Márkov para estados ocultos, lo que significa que la probabilidad de transición al siguiente estado depende solo del estado actual y la independencia de las observaciones dado el conocimiento del estado oculto actual.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte II): Mejorar la capacidad de respuesta y la rapidez de los mensajes

Creación de un Panel de administración de operaciones en MQL5 (Parte II): Mejorar la capacidad de respuesta y la rapidez de los mensajes

En este artículo, vamos a mejorar la capacidad de respuesta del Panel de administración que hemos creado anteriormente. Además, exploraremos la importancia de los mensajes rápidos en el contexto de las señales de negociación.
preview
Del básico al intermedio: Array (I)

Del básico al intermedio: Array (I)

Este artículo constituye una transición entre lo que se ha visto hasta ahora y una nueva etapa de estudios. Para comprender este artículo es necesario haber leído los artículos anteriores. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea aprender y estudiar los conceptos mostrados.
preview
DoEasy. Elementos de control (Parte 30): Animando el elemento de control "ScrollBar"

DoEasy. Elementos de control (Parte 30): Animando el elemento de control "ScrollBar"

En este artículo, continuaremos desarrollando el control ScrollBar y comenzaremos a crear la funcionalidad de interacción con el ratón. Además, ampliaremos las listas de banderas de estado y eventos de ratón.
preview
Automatización de estrategias de trading en MQL5 (Parte 4): Creación de un sistema de recuperación de zonas multinivel

Automatización de estrategias de trading en MQL5 (Parte 4): Creación de un sistema de recuperación de zonas multinivel

En este artículo, desarrollamos un sistema de recuperación de zonas multinivel en MQL5 que utiliza el RSI para generar señales de trading. Cada instancia de señal se añade dinámicamente a una estructura de matriz, lo que permite al sistema gestionar múltiples señales simultáneamente dentro de la lógica de recuperación de zona. Mediante este enfoque, demostramos cómo manejar de manera efectiva escenarios complejos de gestión comercial, manteniendo al mismo tiempo un diseño de código escalable y robusto.
preview
Algoritmo de optimización Brain Storm - Brain Storm Optimization (Parte II): Multimodalidad

Algoritmo de optimización Brain Storm - Brain Storm Optimization (Parte II): Multimodalidad

En la segunda parte del artículo pasaremos a la aplicación práctica del algoritmo BSO, realizaremos tests con funciones de prueba y compararemos la eficacia de BSO con otros métodos de optimización.
preview
Red neuronal en la práctica: Función de recta

Red neuronal en la práctica: Función de recta

En este artículo, pasaremos rápidamente por algunos métodos para obtener la función que podría representar nuestros datos en la base. No me adentraré en detalles sobre cómo usar estadísticas y estudios de probabilidad para interpretar los resultados. Dejo esto como tarea para aquellos que realmente deseen profundizar en la parte matemática del asunto. De todas formas, estudiar estos temas será crucial para que puedas comprender todo lo que involucra los estudios de redes neuronales. Aquí seré bastante suave con el tema.
preview
Operando con el Calendario Económico MQL5 (Parte 10): Panel arrastrable y efectos al pasar el cursor para una navegación fluida por las noticias

Operando con el Calendario Económico MQL5 (Parte 10): Panel arrastrable y efectos al pasar el cursor para una navegación fluida por las noticias

En este artículo, mejoramos el Calendario Económico de MQL5 mediante la incorporación de un panel de control arrastrable que nos permite reubicar la interfaz para mejorar la visibilidad del gráfico. Implementamos efectos al pasar el cursor por los botones para mejorar la interactividad y garantizar una navegación fluida con una barra de desplazamiento posicionada dinámicamente.
preview
Integración de MQL5 con paquetes de procesamiento de datos (Parte 3): Visualización mejorada de datos

Integración de MQL5 con paquetes de procesamiento de datos (Parte 3): Visualización mejorada de datos

En este artículo, realizaremos una visualización de datos mejorada que va más allá de los gráficos básicos, incorporando características como interactividad, datos en capas y elementos dinámicos, lo que permite a los operadores explorar tendencias, patrones y correlaciones de manera más eficaz.
preview
Automatización de estrategias de trading en MQL5 (Parte 6): Dominar la detección de bloques de órdenes para el comercio inteligente con dinero

Automatización de estrategias de trading en MQL5 (Parte 6): Dominar la detección de bloques de órdenes para el comercio inteligente con dinero

En este artículo, automatizamos la detección de bloques de órdenes en MQL5 utilizando análisis de acción de precios puro. Definimos bloques de órdenes, implementamos su detección e integramos la ejecución automatizada de operaciones. Por último, realizamos una prueba retrospectiva de la estrategia para evaluar su rendimiento.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 8): Desarrollo de un asesor experto (I)

Creación de un modelo de restricción de tendencia de velas (Parte 8): Desarrollo de un asesor experto (I)

En esta discusión, crearemos nuestro primer Asesor Experto en MQL5 basado en el indicador que creamos en el artículo anterior. Cubriremos todas las características necesarias para automatizar el proceso, incluida la gestión de riesgos. Esto beneficiará ampliamente a los usuarios para pasar de la ejecución manual de operaciones a sistemas automatizados.
preview
Aplicación de la selección de características localizadas en Python y MQL5

Aplicación de la selección de características localizadas en Python y MQL5

Este artículo explora un algoritmo de selección de características introducido en el artículo 'Local Feature Selection for Data Classification' de Narges Armanfard et al. El algoritmo se implementa en Python para construir modelos clasificadores binarios que pueden integrarse con aplicaciones de MetaTrader 5 para la inferencia.
preview
Dominando JSON: Crea tu propio lector JSON desde cero en MQL5

Dominando JSON: Crea tu propio lector JSON desde cero en MQL5

Experimente una guía paso a paso sobre la creación de un analizador JSON personalizado en MQL5, completo con manejo de objetos y matrices, verificación de errores y serialización. Obtenga conocimientos prácticos para conectar su lógica comercial y sus datos estructurados con esta solución flexible para manejar JSON en MetaTrader 5.
preview
Desarrollo de un sistema de repetición (Parte 36): Haciendo retoques (II)

Desarrollo de un sistema de repetición (Parte 36): Haciendo retoques (II)

Una de las cosas que más nos puede complicar la vida como programadores es el hecho de suponer cosas. En este artículo, te mostraré los peligros de hacer suposiciones: tanto en la parte de programación MQL5, donde se asume que un tipo tendrá un tamaño determinado, como cuando se utiliza MetaTrader 5, donde se asume que los diferentes servidores funcionan de la misma manera.
preview
DoEasy. Elementos de control (Parte 21): Elemento de control SplitContainer. Separador de paneles

DoEasy. Elementos de control (Parte 21): Elemento de control SplitContainer. Separador de paneles

En este artículo, crearemos una clase de objeto auxiliar de separador de paneles para el control SplitContainer.
preview
Redes neuronales: así de sencillo (Parte 95): Reducción del consumo de memoria en los modelos de transformadores

Redes neuronales: así de sencillo (Parte 95): Reducción del consumo de memoria en los modelos de transformadores

Los modelos basados en la arquitectura de transformadores demuestran una gran eficacia, pero su uso se complica por el elevado coste de los recursos tanto en la fase de formación como durante el funcionamiento. En este artículo, propongo familiarizarse con los algoritmos que permiten reducir el uso de memoria de tales modelos.
preview
Arbitraje estadístico mediante reversión a la media en el trading de pares: Cómo superar al mercado con matemáticas

Arbitraje estadístico mediante reversión a la media en el trading de pares: Cómo superar al mercado con matemáticas

Este artículo describe los fundamentos del arbitraje estadístico a nivel de cartera. Su objetivo es facilitar la comprensión de los principios del arbitraje estadístico a lectores sin conocimientos matemáticos profundos y proponer un marco conceptual de partida. El artículo incluye un Asesor Experto en funcionamiento, algunas notas sobre su prueba retrospectiva de un año y las respectivas configuraciones de prueba retrospectiva (archivo .ini) para la reproducción del experimento.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 25): Preparación para la próxima etapa

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 25): Preparación para la próxima etapa

En este artículo, concluimos la primera fase del desarrollo del sistema de repetición y simulador. Con este hito, afirmo, estimado lector, que el sistema ha alcanzado un nivel avanzado, abriendo camino para la incorporación de nuevas funcionalidades. El objetivo es enriquecer aún más el sistema, convirtiéndolo en una herramienta poderosa para estudios y para el desarrollo de análisis de mercado.
preview
Desarrollo de un sistema de repetición (Parte 42): Proyecto Chart Trade (I)

Desarrollo de un sistema de repetición (Parte 42): Proyecto Chart Trade (I)

Vamos a crear algo más interesante. El código que mostré antes quedará completamente obsoleto. No quiero arruinar la sorpresa. Sigue el artículo para entender mejor. Desde el inicio de esta secuencia sobre cómo desarrollar un sistema de repetición/simulación, he dicho que la idea es usar la plataforma MetaTrader 5 de manera idéntica, tanto en el sistema que estamos desarrollando como en el mercado real. Es importante que esto se haga de manera adecuada. No querrás entrenar y aprender a luchar usando determinadas herramientas y en el momento de la pelea tener que usar otras.
preview
Teoría de categorías en MQL5 (Parte 3)

Teoría de categorías en MQL5 (Parte 3)

La teoría de categorías es una rama diversa y en expansión de las matemáticas, relativamente inexplorada aún en la comunidad MQL5. Esta serie de artículos tiene como objetivo destacar algunos de sus conceptos para crear una biblioteca abierta y seguir utilizando esta maravillosa sección para crear estrategias comerciales.
preview
Añadimos un LLM personalizado a un robot comercial (Parte 5): Desarrolla y prueba una estrategia de trading con LLMs (II), LoRA-Tuning

Añadimos un LLM personalizado a un robot comercial (Parte 5): Desarrolla y prueba una estrategia de trading con LLMs (II), LoRA-Tuning

Con el rápido desarrollo de la inteligencia artificial en la actualidad, los modelos lingüísticos (LLM) son una parte importante de la inteligencia artificial, por lo que deberíamos pensar en cómo integrar potentes LLM en nuestras operaciones algorítmicas. Para la mayoría de la gente, es difícil ajustar estos potentes modelos a sus necesidades, desplegarlos localmente y luego aplicarlos a la negociación algorítmica. Esta serie de artículos adoptará un enfoque paso a paso para lograr este objetivo.
preview
Algoritmo de colmena artificial — Artificial Bee Hive Algorithm (ABHA): Pruebas y resultados

Algoritmo de colmena artificial — Artificial Bee Hive Algorithm (ABHA): Pruebas y resultados

En este artículo, continuaremos analizando el algoritmo de colmena artificial ABHA profundizando en la codificación y observando los métodos restantes. Recordemos que cada abeja en el modelo está representada como un agente individual cuyo comportamiento dependerá de información interna y externa, así como del estado motivacional. Probaremos el algoritmo con varias funciones y resumiremos los resultados presentándolos en una tabla de calificación.
preview
Del básico al intermedio: Plantilla y Typename (III)

Del básico al intermedio: Plantilla y Typename (III)

En este artículo, veremos la primera parte de algo que es muy confuso para que los principiantes lo entiendan. Para que el tema no se vuelva más confuso de lo necesario y quede debidamente explicado, dividiré la explicación en etapas. La primera etapa es la que se mostrará en este artículo. No obstante, aunque parezca que llegamos a un callejón sin salida al final, no será realmente eso lo que estará ocurriendo, ya que el siguiente paso nos llevará a otra situación, que se entenderá mejor en el próximo artículo.
preview
De Python a MQL5: Un viaje hacia los sistemas de trading inspirados en la cuántica

De Python a MQL5: Un viaje hacia los sistemas de trading inspirados en la cuántica

El artículo analiza el desarrollo de un sistema de negociación inspirado en la cuántica, pasando de un prototipo en Python a una implementación en MQL5 para la negociación en el mundo real. El sistema utiliza principios de computación cuántica, como la superposición y el entrelazamiento, para analizar los estados del mercado, aunque funciona en ordenadores clásicos utilizando simuladores cuánticos. Las características principales incluyen un sistema de tres qubits para analizar ocho estados del mercado simultáneamente, períodos de revisión de 24 horas y siete indicadores técnicos para el análisis del mercado. Aunque los índices de precisión puedan parecer modestos, proporcionan una ventaja significativa cuando se combinan con estrategias adecuadas de gestión de riesgos.
preview
Indicador de pronóstico ARIMA en MQL5

Indicador de pronóstico ARIMA en MQL5

En este artículo, crearemos un indicador de pronóstico ARIMA en MQL5. El artículo analiza cómo el modelo ARIMA genera pronósticos y su aplicabilidad al mercado Forex y al mercado de valores en general. También explica qué es la autorregresión AR, cómo se utilizan los modelos autorregresivos para realizar pronósticos y cómo funciona el mecanismo autorregresivo.
preview
Desarrollo de un sistema de repetición (Parte 45): Proyecto Chart Trade (IV)

Desarrollo de un sistema de repetición (Parte 45): Proyecto Chart Trade (IV)

Lo principal en este artículo es precisamente la presentación y explicación de la clase C_ChartFloatingRAD. Tenemos el indicador Chart Trade, que funciona de una manera bastante interesante. No obstante, si te das cuenta, aún tenemos un número bastante reducido de objetos en el gráfico. Y aun así, tenemos exactamente el comportamiento esperado. Se pueden editar los valores presentes en el indicador. La pregunta es: ¿Cómo es esto posible? En este artículo comenzarás a entenderlo.
preview
Red neuronal en la práctica: Mínimos cuadrados

Red neuronal en la práctica: Mínimos cuadrados

Aquí en este artículo, veremos algunas cosas, entre ellas: Cómo muchas veces las fórmulas matemáticas parecen más complicadas cuando las miramos, que cuando las implementamos en código. Además de este hecho, también se mostrará cómo puedes ajustar el cuadrante del gráfico, así como un problema curioso que puede suceder en tu código MQL5. Algo que sinceramente no sé cómo explicar, ya que no lo entendí. A pesar de eso, mostraré cómo corregirlo en el código.
preview
Optimización del modelo de nubes atmosféricas — Atmosphere Clouds Model Optimization (ACMO): Práctica

Optimización del modelo de nubes atmosféricas — Atmosphere Clouds Model Optimization (ACMO): Práctica

En este artículo, seguiremos profundizando en la aplicación del algoritmo ACMO (Atmospheric Cloud Model Optimisation). En particular, discutiremos dos aspectos clave: el movimiento de las nubes hacia regiones de bajas presiones y la modelización del proceso de lluvia, incluida la inicialización de las gotas y su distribución entre las nubes. También analizaremos otras técnicas que desempeñan un papel importante a la hora de gestionar el estado de las nubes y garantizar su interacción con el entorno.
preview
Algoritmo de optimización de Escalera Real - Royal Flush Optimisation (RFO)

Algoritmo de optimización de Escalera Real - Royal Flush Optimisation (RFO)

El algoritmo Royal Flush Optimization del autor ofrece una nueva perspectiva en la resolución de problemas de optimización sustituyendo la clásica codificación binaria de los algoritmos genéticos por un enfoque basado en sectores e inspirado en los principios del póquer. El RFO demuestra cómo la simplificación de los principios básicos puede dar lugar a un método de optimización eficaz y práctico. El artículo presenta un análisis detallado del algoritmo y los resultados de las pruebas.