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
Operar con noticias de manera sencilla (Parte 3): Ejecución de operaciones

Operar con noticias de manera sencilla (Parte 3): Ejecución de operaciones

En este artículo, nuestro experto en negociación de noticias comenzará a abrir operaciones basándose en el calendario económico almacenado en nuestra base de datos. Además, mejoraremos los gráficos del experto para mostrar información más relevante sobre los próximos acontecimientos del calendario económico.
preview
Aprendiendo a diseñar un sistema de trading con el oscilador Chaikin

Aprendiendo a diseñar un sistema de trading con el oscilador Chaikin

Aquí tenemos un nuevo artículo de nuestra serie destinada al estudio de indicadores técnicos populares y la creación de sistemas comerciales basados en ellos. En este artículo, trabajaremos con el indicador Chaikin Oscillator, el oscilador de Chaikin.
preview
Desarrollo de un factor de calidad para los EAs

Desarrollo de un factor de calidad para los EAs

En este artículo, te explicaremos cómo desarrollar un factor de calidad que tu Asesor Experto (EA) pueda mostrar en el simulador de estrategias. Te presentaremos dos formas de cálculo muy conocidas (Van Tharp y Sunny Harris).
preview
Características del Wizard MQL5 que debe conocer (Parte 16): Método de componentes principales con vectores propios

Características del Wizard MQL5 que debe conocer (Parte 16): Método de componentes principales con vectores propios

En este artículo analizaremos el método de componentes principales, una técnica de reducción de la dimensionalidad para el análisis de datos, y cómo podemos aplicar este utilizando valores propios y vectores. Como siempre, intentaremos desarrollar un prototipo de la clase de señales del asesor experto que se pueda utilizar en el Wizard MQL5.
preview
Automatización de estrategias de trading en MQL5 (Parte 11): Desarrollo de un sistema de negociación de cuadrícula multinivel

Automatización de estrategias de trading en MQL5 (Parte 11): Desarrollo de un sistema de negociación de cuadrícula multinivel

En este artículo, desarrollamos un sistema EA de trading de cuadrícula multinivel utilizando MQL5, centrándonos en la arquitectura y el diseño del algoritmo que hay detrás de las estrategias de trading de cuadrícula. Exploramos la implementación de una lógica de red multicapa y técnicas de gestión de riesgos para hacer frente a las condiciones variables del mercado. Por último, ofrecemos explicaciones detalladas y consejos prácticos para guiarle en la creación, prueba y perfeccionamiento del sistema de negociación automatizado.
preview
Redes neuronales: así de sencillo (Parte 89): Transformador de descomposición de la frecuencia de señal (FEDformer)

Redes neuronales: así de sencillo (Parte 89): Transformador de descomposición de la frecuencia de señal (FEDformer)

Todos los modelos de los que hemos hablado anteriormente analizan el estado del entorno como una secuencia temporal. Sin embargo, las propias series temporales también pueden representarse como características de frecuencia. En este artículo, presentaremos un algoritmo que utiliza las características de frecuencia de una secuencia temporal para predecir los estados futuros.
preview
Teoría de categorías en MQL5 (Parte 21): Transformaciones naturales con ayuda de LDA

Teoría de categorías en MQL5 (Parte 21): Transformaciones naturales con ayuda de LDA

Este artículo, el número 21 de nuestra serie, continuaremos analizando las transformaciones naturales y cómo se pueden implementar mediante el análisis discriminante lineal. Como en el artículo anterior, la implementación se presentará en formato de clase de señal.
preview
Simulador rápido de estrategias comerciales en Python usando Numba

Simulador rápido de estrategias comerciales en Python usando Numba

Este artículo implementaremos un simulador rápido de estrategias para modelos de aprendizaje automático utilizando Numba. En cuanto a su velocidad, superará en un factor de 50 a un simulador de estrategias puramente basado en Python. El autor recomienda usar esta biblioteca para acelerar los cálculos matemáticos, y especialmente cuando se utilizan ciclos.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 9): Asesor Experto de múltiples estrategias (III)

Creación de un modelo de restricción de tendencia de velas (Parte 9): Asesor Experto de múltiples estrategias (III)

¡Bienvenidos a la tercera entrega de nuestra serie sobre tendencias! Hoy profundizaremos en el uso de la divergencia como estrategia para identificar puntos de entrada óptimos dentro de la tendencia diaria predominante. También presentaremos un mecanismo de bloqueo de ganancias personalizado, similar a un stop-loss dinámico, pero con mejoras únicas. Además, actualizaremos el asesor experto Trend Constraint a una versión más avanzada, incorporando una nueva condición de ejecución comercial para complementar las existentes. A medida que avanzamos, continuaremos explorando la aplicación práctica de MQL5 en el desarrollo algorítmico, brindándole información más detallada y técnicas prácticas.
preview
Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con Integración RestAPI (Parte 1): Como usar RestAPIs en MQL5

Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con Integración RestAPI (Parte 1): Como usar RestAPIs en MQL5

Este artículo aborda la importancia de las APIs (application programming interface) en la comunicación entre diferentes aplicaciones y sistemas de software. En él, se destaca el papel de las API a la hora de simplificar la interacción entre aplicaciones, ya que les permiten compartir datos y funcionalidades de forma eficiente.
preview
Algoritmo basado en fractales — Fractal-Based Algorithm (FBA)

Algoritmo basado en fractales — Fractal-Based Algorithm (FBA)

Hoy veremos un nuevo método metaheurístico basado en un enfoque fractal que permite particionar el espacio de búsqueda para resolver problemas de optimización. El algoritmo identifica y separa secuencialmente las áreas prometedoras, creando una estructura fractal autosimilar que concentra los recursos computacionales en las áreas más prometedoras. El mecanismo de mutación único orientado a las mejores soluciones garantiza un equilibrio óptimo entre la exploración y la explotación del espacio de búsqueda, aumentando significativamente la eficiencia del algoritmo.
preview
DoEasy. Elementos de control (Parte 10): Objetos WinForms: dando vida a la interfaz

DoEasy. Elementos de control (Parte 10): Objetos WinForms: dando vida a la interfaz

Ha llegado el momento de revitalizar la interfaz gráfica de usuario, haciendo que los objetos interactúen con el usuario y otros objetos. Y para que los objetos más complejos funcionen correctamente, necesitaremos una funcionalidad que permita a los objetos interactuar entre sí y con el usuario.
preview
Algoritmo de Partenogénesis Cíclica - Cyclic Parthenogenesis Algorithm (CPA)

Algoritmo de Partenogénesis Cíclica - Cyclic Parthenogenesis Algorithm (CPA)

En este trabajo, analizaremos un nuevo algoritmo de optimización basado en la población, el CPA (Cyclic Parthenogenesis Algorithm), inspirado en la estrategia reproductiva única de los pulgones. El algoritmo combina dos mecanismos de reproducción: la partenogénesis y la reproducción sexual, y utiliza una estructura de población colonial con posibilidad de migración entre colonias. Las características clave del algoritmo son el cambio adaptativo entre diferentes estrategias de cría y un sistema de intercambio de información entre colonias usando un mecanismo de vuelo.
preview
Indicador de previsión de volatilidad con Python

Indicador de previsión de volatilidad con Python

Hoy pronosticaremos la volatilidad extrema futura utilizando una clasificación binaria. Asimismo, crearemos un indicador de previsión de volatilidad extrema usando el aprendizaje automático.
preview
Desarrollo de un sistema de repetición (Parte 59): Un nuevo futuro

Desarrollo de un sistema de repetición (Parte 59): Un nuevo futuro

La correcta comprensión de las cosas nos permite hacer más con menos esfuerzo. En este artículo, explicaré por qué es necesario ajustar la aplicación de la plantilla antes de que el servicio comience a interactuar realmente con el gráfico. Además, ¿qué tal si mejoramos el indicador del mouse para que podamos hacer más cosas con él?
preview
Redes neuronales: así de sencillo (Parte 52): Exploración con optimismo y corrección de la distribución

Redes neuronales: así de sencillo (Parte 52): Exploración con optimismo y corrección de la distribución

A medida que el modelo se entrena con el búfer de reproducción de experiencias, la política actual del Actor se aleja cada vez más de los ejemplos almacenados, lo cual reduce la eficacia del entrenamiento del modelo en general. En este artículo, analizaremos un algoritmo para mejorar la eficiencia del uso de las muestras en los algoritmos de aprendizaje por refuerzo.
preview
Desarrollo de un sistema de repetición (Parte 78): Un nuevo Chart Trade (V)

Desarrollo de un sistema de repetición (Parte 78): Un nuevo Chart Trade (V)

En este artículo, veremos cómo deberemos implementar la parte del receptor. Es decir, aquí implementaremos una versión del Asesor Experto, solo para probar y aprender cómo funciona la comunicación vía protocolo. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
Redes neuronales: así de sencillo (Parte 43): Dominando las habilidades sin función de recompensa

Redes neuronales: así de sencillo (Parte 43): Dominando las habilidades sin función de recompensa

El problema del aprendizaje por refuerzo reside en la necesidad de definir una función de recompensa, que puede ser compleja o difícil de formalizar. Para resolver esto, se están estudiando enfoques basados en la variedad de acciones y la exploración del entorno que permiten aprender habilidades sin una función de recompensa explícita.
preview
De novato a experto: Sistema de análisis autogeométrico

De novato a experto: Sistema de análisis autogeométrico

Los patrones geométricos ofrecen a los operadores una forma concisa de interpretar la acción del precio. Muchos analistas dibujan líneas de tendencia, rectángulos y otras formas a mano y luego basan sus decisiones comerciales en las formaciones que ven. En este artículo exploramos una alternativa automatizada: aprovechar MQL5 para detectar y analizar los patrones geométricos más populares. Desglosaremos la metodología, discutiremos los detalles de implementación y destacaremos cómo el reconocimiento de patrones automatizado puede agudizar el conocimiento del mercado de un comerciante.
preview
Redes neuronales: así de sencillo (Parte 66): Problemática de la exploración en el entrenamiento offline

Redes neuronales: así de sencillo (Parte 66): Problemática de la exploración en el entrenamiento offline

El entrenamiento offline del modelo se realiza sobre los datos de una muestra de entrenamiento previamente preparada. Esto nos ofrecerá una serie de ventajas, pero la información sobre el entorno estará muy comprimida con respecto al tamaño de la muestra de entrenamiento, lo que, a su vez, limitará el alcance del estudio. En este artículo, querríamos familiarizarnos con un método que permite llenar la muestra de entrenamiento con los datos más diversos posibles.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 2): Fusionar indicadores nativos

Creación de un modelo de restricción de tendencia de velas (Parte 2): Fusionar indicadores nativos

Este artículo se centra en el aprovechamiento de los indicadores MetaTrader 5 incorporados para filtrar las señales fuera de tendencia. Avanzando desde el artículo anterior exploraremos cómo hacerlo utilizando código MQL5 para comunicar nuestra idea al programa final.
preview
Aplicación de la teoría de juegos a algoritmos comerciales

Aplicación de la teoría de juegos a algoritmos comerciales

Hoy crearemos un asesor comercial adaptativo de autoaprendizaje basado en DQN de aprendizaje automático, con inferencia causal multivariante, que negociará con éxito simultáneamente en 7 pares de divisas, con agentes de diferentes pares intercambiando información entre sí.
preview
Desarrollamos un asesor experto multidivisa (Parte 12): Gestor de riesgos como en las empresas de prop-trading

Desarrollamos un asesor experto multidivisa (Parte 12): Gestor de riesgos como en las empresas de prop-trading

Ya disponemos de un cierto mecanismo de control de la reducción en el asesor experto que estamos desarrollando. Pero este es de naturaleza probabilística, ya que se basa en resultados de pruebas sobre los datos históricos de los precios. Por lo tanto, las reducciones, aunque con una probabilidad pequeña, pueden superar a veces los valores máximos previstos. Vamos a intentar añadir un mecanismo que garantice el nivel de reducción especificado.
Trabajando con los precios en la biblioteca DoEasy (Parte 62): Actualización de las series de tick en tiempo real, preparando para trabajar con la Profundidad del mercado
Trabajando con los precios en la biblioteca DoEasy (Parte 62): Actualización de las series de tick en tiempo real, preparando para trabajar con la Profundidad del mercado

Trabajando con los precios en la biblioteca DoEasy (Parte 62): Actualización de las series de tick en tiempo real, preparando para trabajar con la Profundidad del mercado

En este artículo, vamos a desarrollar la actualización de la colección de datos de tick en tiempo real, y prepararemos una clase del objeto de símbolo para manejar la Profundidad del mercado, con la que empezaremos a trabajar a partir del siguiente artículo.
preview
Algoritmos de optimización de la población: Algoritmo Mind Evolutionary Computation (Computación Evolutiva Mental, (MEC)

Algoritmos de optimización de la población: Algoritmo Mind Evolutionary Computation (Computación Evolutiva Mental, (MEC)

En este artículo, analizaremos un algoritmo de la familia MEC llamado algoritmo MEC Simple de evolución mental (Simple MEC, SMEC). El algoritmo se caracteriza por la belleza de la idea expuesta y su sencillez de aplicación.
preview
Ejemplo de análisis de redes de causalidad (Causality Network Analysis, CNA) y modelo de autoregresión vectorial para la predicción de eventos de mercado

Ejemplo de análisis de redes de causalidad (Causality Network Analysis, CNA) y modelo de autoregresión vectorial para la predicción de eventos de mercado

Este artículo presenta una guía completa para implementar un sistema comercial sofisticado utilizando análisis de red de causalidad (CNA) y autorregresión vectorial (Vector autoregression, VAR) en MQL5. Abarca los fundamentos teóricos de estos métodos, ofrece explicaciones detalladas de las funciones clave del algoritmo de negociación e incluye código de ejemplo para su aplicación.
preview
Algoritmo de búsqueda orbital atómica - Atomic Orbital Search (AOS)

Algoritmo de búsqueda orbital atómica - Atomic Orbital Search (AOS)

Este artículo analiza el algoritmo AOS (Atomic Orbital Search), que usa conceptos de modelos orbitales atómicos para modelar la búsqueda de soluciones. El algoritmo se basa en distribuciones de probabilidad y en la dinámica de las interacciones en el átomo. El artículo analiza con detalle los aspectos matemáticos del AOS, incluida la actualización de las posiciones de las soluciones candidatas y los mecanismos de absorción y liberación de energía. El AOS descubre nuevos horizontes para la aplicación de los principios cuánticos a los problemas computacionales al ofrecer un enfoque innovador de la optimización.
preview
Gráficos en la biblioteca DoEasy (Parte 97): Procesamiento independiente del desplazamiento de los objetos de formulario

Gráficos en la biblioteca DoEasy (Parte 97): Procesamiento independiente del desplazamiento de los objetos de formulario

En el presente artículo, analizaremos la implementación del desplazamiento independiente de cualquier objeto de formulario con el ratón, y también complementaremos la biblioteca con mensajes de error y nuevas propiedades de transacciones previamente introducidos en el terminal y MQL5.
preview
Simulación de mercado (Parte 03): Una cuestión de rendimiento

Simulación de mercado (Parte 03): Una cuestión de rendimiento

Muchas veces, estamos obligados a dar un paso atrás para luego avanzar. En este artículo, mostraré todos los cambios necesarios para que el rendimiento de los indicadores Mouse y Chart Trade no se viera comprometido. Como bono, presentaré otros cambios que ocurrieron en otros archivos de encabezado, los cuales serán muy utilizados en el futuro.
preview
Teoría de categorías en MQL5 (Parte 14): Funtores con orden lineal

Teoría de categorías en MQL5 (Parte 14): Funtores con orden lineal

Este artículo de la serie sobre la implementación de la teoría de categorías en MQL5 está dedicado a los funtores. Hoy veremos cómo asignar el orden lineal a un conjunto utilizando funtores al analizar dos conjuntos de datos que parecen no tener relación entre sí.
preview
Algoritmos de optimización de la población: Modificamos la forma y desplazamos las distribuciones de probabilidad y realizamos pruebas con el cefalópodo inteligente (Smart Cephalopod, SC)

Algoritmos de optimización de la población: Modificamos la forma y desplazamos las distribuciones de probabilidad y realizamos pruebas con el cefalópodo inteligente (Smart Cephalopod, SC)

Este artículo investigará qué efectos provoca el cambio de la forma de las distribuciones de probabilidad en el rendimiento de los algoritmos de optimización. Hoy realizaremos experimentos con el algoritmo de prueba "Smart Cephalopod" (SC) para evaluar la eficacia de distintas distribuciones de probabilidad en el contexto de problemas de optimización.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte IX): Organización del código (I)

Creación de un Panel de administración de operaciones en MQL5 (Parte IX): Organización del código (I)

Este debate profundiza en los retos que se plantean al trabajar con grandes bases de código. Exploraremos las mejores prácticas para la organización del código en MQL5 e implementaremos un enfoque práctico para mejorar la legibilidad y la escalabilidad del código fuente de nuestro Panel de administración de operaciones. Además, nuestro objetivo es desarrollar componentes de código reutilizables que puedan beneficiar a otros desarrolladores en el desarrollo de sus algoritmos. Sigue leyendo y únete a la conversación.
preview
Indicador de perfil de mercado — Market Profile (Parte 2): Optimización y dibujado en canvas

Indicador de perfil de mercado — Market Profile (Parte 2): Optimización y dibujado en canvas

En este artículo analizaremos una versión optimizada del indicador de Perfil de mercado Market Profile, donde el dibujado por parte de un conjunto de objetos gráficos se sustituye por el dibujado en un lienzo: un objeto de la clase CCanvas.
preview
Indicadores basados ​​en la clase CCanvas: Rellenando canales con transparencia

Indicadores basados ​​en la clase CCanvas: Rellenando canales con transparencia

En este artículo, analizaremos métodos utilizados para crear indicadores personalizados que se dibujan con la ayuda de la clase CCanvas de la Biblioteca estándar, y también consideraremos las propiedades de los gráficos para transformar coordenadas. Prestaremos especial atención a los indicadores que rellenan de transparencia el área entre las dos líneas.
preview
Asesor Experto Grid-Hedge Modificado en MQL5 (Parte II): Creación de un EA de cuadrícula simple

Asesor Experto Grid-Hedge Modificado en MQL5 (Parte II): Creación de un EA de cuadrícula simple

En este artículo, exploramos la estrategia de cuadrícula (grid) clásica, detallando su automatización mediante un Asesor Experto (EA) en MQL5 y analizando los resultados iniciales del backtest. Destacamos la necesidad de que la estrategia tenga una gran capacidad de retención y esbozamos planes para optimizar parámetros clave como la distancia, el takeProfit y el tamaño de los lotes en futuras entregas. La serie pretende mejorar la eficacia de las estrategias de negociación y su adaptabilidad a las distintas condiciones del mercado.
preview
Ejemplo de Análisis de Redes de Causalidad (CNA), Control Óptimo de Modelos Estocásticos (SMOC) y la Teoría de Juegos de Nash con Aprendizaje Profundo (Deep Learning)

Ejemplo de Análisis de Redes de Causalidad (CNA), Control Óptimo de Modelos Estocásticos (SMOC) y la Teoría de Juegos de Nash con Aprendizaje Profundo (Deep Learning)

Agregaremos Deep Learning a esos tres ejemplos que se publicaron en artículos anteriores y compararemos los resultados con los anteriores. El objetivo es aprender cómo agregar DL (Deep Learning) a otro EA.
preview
Algoritmo de optimización aritmética (AOA): De AOA a SOA (Simple Optimization Algorithm)

Algoritmo de optimización aritmética (AOA): De AOA a SOA (Simple Optimization Algorithm)

En este artículo, presentamos el algoritmo de optimización aritmética (AOA) basado en operaciones aritméticas simples: suma, resta, multiplicación y división. Estas operaciones matemáticas básicas sirven como base para encontrar soluciones óptimas a diversos problemas.
preview
Redes neuronales: así de sencillo (Parte 56): Utilizamos la norma nuclear para incentivar la exploración

Redes neuronales: así de sencillo (Parte 56): Utilizamos la norma nuclear para incentivar la exploración

La exploración del entorno en tareas de aprendizaje por refuerzo es un problema relevante. Con anterioridad, ya hemos analizado algunos de estos enfoques. Hoy le propongo introducir otro método basado en la maximización de la norma nuclear, que permite a los agentes identificar estados del entorno con un alto grado de novedad y diversidad.
preview
Desarrollamos un asesor experto multidivisa (Parte 11): Comenzamos a automatizar el proceso de optimización

Desarrollamos un asesor experto multidivisa (Parte 11): Comenzamos a automatizar el proceso de optimización

Para obtener un buen EA, tenemos que seleccionar muchos conjuntos adecuados de parámetros de instancias de estrategias comerciales para él. Esto puede hacerse manualmente ejecutando la optimización en diferentes símbolos y seleccionando después los mejores resultados. Pero resulta mejor delegar el trabajo en un programa y dedicarse a actividades más productivas.
preview
Medimos la informatividad de los indicadores

Medimos la informatividad de los indicadores

El aprendizaje automático se ha convertido en una técnica popular de desarrollo de estrategias. Por lo general, en el trading se presta más atención a la maximización de la rentabilidad y la precisión de los pronósticos. Al mismo tiempo, el procesamiento de los datos utilizados para la construcción de los modelos predictivos permanece en la periferia. En este artículo, analizaremos el uso del concepto de entropía para evaluar la idoneidad de los indicadores en la construcción de modelos predictivos, como se describe en el libro «Testing and Tuning Market Trading Systems» de Timothy Masters.