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
Optimización del búfalo africano - African Buffalo Optimization (ABO)

Optimización del búfalo africano - African Buffalo Optimization (ABO)

El artículo se centra en el algoritmo de optimización del búfalo africano (ABO), un enfoque metaheurístico desarrollado en 2015 y basado en el comportamiento único de estos animales. El artículo detalla los pasos de implementación del algoritmo y su eficacia a la hora de encontrar soluciones a problemas complejos, lo cual lo convierte en una valiosa herramienta en el campo de la optimización.
Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos
Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos

Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos

Dado que el programa puede utilizar varios símbolos, entonces, es necesario crear su propia lista para cada uno de estos símbolos. En este artículo, vamos a combinar estas listas en una colección de datos de tick. En realidad, se trata de una lista común a base de la clase de la matriz dinámica de punteros a las instancias de la clase CObject y sus herederos de la Biblioteca estándar.
preview
Características del Wizard MQL5 que debe conocer (Parte 38): Bandas de Bollinger

Características del Wizard MQL5 que debe conocer (Parte 38): Bandas de Bollinger

Las bandas de Bollinger son un indicador de envolvente muy común utilizado por muchos traders para colocar y cerrar operaciones manualmente. Examinamos este indicador considerando las diferentes señales posibles que genera, y vemos cómo se podrían poner en uso en un Asesor Experto montado por un asistente.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición

Aquí veremos cómo se pueden utilizar datos más fiables (ticks negociados) en el sistema de repetición, sin tener que preocuparnos necesariamente de si están ajustados o no.
preview
Cómo crear un panel interactivo MQL5 utilizando la clase Controls (Parte 2): Añadir capacidad de respuesta a los botones

Cómo crear un panel interactivo MQL5 utilizando la clase Controls (Parte 2): Añadir capacidad de respuesta a los botones

En este artículo, nos centramos en transformar nuestro panel de control MQL5 estático en una herramienta interactiva habilitando la capacidad de respuesta de los botones. Exploramos cómo automatizar la funcionalidad de los componentes de la interfaz gráfica de usuario (GUI), asegurándonos de que reaccionen adecuadamente a los clics de los usuarios. Al final del artículo, establecemos una interfaz dinámica que mejora la participación del usuario y la experiencia comercial.
preview
Desarrollamos un asesor experto multidivisa (Parte 9): Recopilamos los resultados de optimización de las instancias individuales de una estrategia comercial

Desarrollamos un asesor experto multidivisa (Parte 9): Recopilamos los resultados de optimización de las instancias individuales de una estrategia comercial

Hoy vamos a esbozar los principales pasos para desarrollar nuestro EA. Uno de los primeros será realizar una optimización en una sola instancia de la estrategia comercial desarrollada. Así, intentaremos reunir en un solo lugar toda la información necesaria sobre las pasadas del simulador durante la optimización.
preview
Cuantificación en el aprendizaje automático (Parte 2): Preprocesamiento de datos, selección de tablas, entrenamiento del modelo CatBoost

Cuantificación en el aprendizaje automático (Parte 2): Preprocesamiento de datos, selección de tablas, entrenamiento del modelo CatBoost

En este artículo, hablaremos de la aplicación práctica de la cuantificación en la construcción de modelos arbóreos. Asimismo, analizaremos los métodos de selección de tablas cuantificadas y el preprocesamiento de datos. El material se presentará sin fórmulas matemáticas complejas, en un lenguaje accesible.
preview
Redes neuronales: así de sencillo (Parte 90): Interpolación frecuencial de series temporales (FITS)

Redes neuronales: así de sencillo (Parte 90): Interpolación frecuencial de series temporales (FITS)

Al estudiar el método FEDformer, abrimos la puerta al dominio frecuencial de la representación de series temporales. En este nuevo artículo continuaremos con el tema iniciado, y analizaremos un método que permite no solo el análisis, sino también la predicción de estados posteriores en el ámbito privado.
preview
Kit de herramientas de negociación MQL5 (Parte 3): Desarrollo de una biblioteca EX5 para la gestión de órdenes pendientes

Kit de herramientas de negociación MQL5 (Parte 3): Desarrollo de una biblioteca EX5 para la gestión de órdenes pendientes

Aprenda a desarrollar e implementar una biblioteca EX5 integral de órdenes pendientes en su código o proyectos MQL5. Este artículo le mostrará cómo crear una extensa biblioteca EX5 de gestión de órdenes pendientes y lo guiará en el proceso de importarla e implementarla mediante la creación de un panel de negociación o una interfaz gráfica de usuario (GUI). El panel de órdenes del asesor experto permitirá a los usuarios abrir, monitorear y eliminar órdenes pendientes asociadas con un número mágico específico directamente desde la interfaz gráfica en la ventana del gráfico.
preview
Teoría de Categorías en MQL5 (Parte 17): Funtores y monoides

Teoría de Categorías en MQL5 (Parte 17): Funtores y monoides

Este es el último artículo de la serie sobre funtores. En él, revisaremos los monoides como categoría. Los monoides, que ya hemos introducido en esta serie, se utilizan aquí para ayudar a dimensionar la posición junto con los perceptrones multicapa.
preview
Analizamos el código binario de los precios en bolsa (Parte I): Una nueva visión del análisis técnico

Analizamos el código binario de los precios en bolsa (Parte I): Una nueva visión del análisis técnico

En este artículo presentaremos un enfoque innovador del análisis técnico basado en la conversión de los movimientos de los precios en código binario. El autor demostrará cómo diversos aspectos del comportamiento de los mercados -desde simples movimientos de precios hasta patrones complejos- pueden codificarse en una secuencia de ceros y unos.
preview
Automatización de estrategias de trading en MQL5 (Parte 13): Algoritmo de trading para patrón Hombro-Cabeza-Hombro

Automatización de estrategias de trading en MQL5 (Parte 13): Algoritmo de trading para patrón Hombro-Cabeza-Hombro

En este artículo automatizamos el patrón Hombro-Cabeza-Hombro en MQL5. Analizamos su arquitectura, implementamos un EA para detectarlo y operar, y realizamos una prueba retrospectiva de los resultados. El proceso revela un algoritmo de negociación práctico con margen para mejoras.
preview
Del básico al intermedio: Variables (II)

Del básico al intermedio: Variables (II)

En este artículo vamos a ver cómo trabajar con variables del tipo estática. Este tema suele confundir a muchos programadores, tanto principiantes como aquellos con algo de experiencia. Esto se debe a que existen algunos cuidados y trucos que deben observarse al usar este mecanismo. El contenido expuesto aquí tiene como objetivo, pura y simplemente, la enseñanza didáctica. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y estudio de los conceptos presentados.
preview
Del básico al intermedio: Comandos BREAK y CONTINUE

Del básico al intermedio: Comandos BREAK y CONTINUE

En este artículo veremos cómo usar los comandos RETURN, BREAK y CONTINUE dentro de un bucle. Entender lo que cada uno de estos comandos hace en el flujo de ejecución de un bucle es algo muy importante para que puedas trabajar con aplicaciones más elaboradas. 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 presentados.
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
Teoría de categorías en MQL5 (Parte 2)

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

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
Asesor Experto Grid-Hedge Modificado en MQL5 (Parte IV): Optimización de la estrategia de cuadrícula simple (I)

Asesor Experto Grid-Hedge Modificado en MQL5 (Parte IV): Optimización de la estrategia de cuadrícula simple (I)

En esta cuarta parte, revisamos los asesores expertos (EA) Simple Hedge y Simple Grid desarrollados anteriormente. Nuestro enfoque se centra en perfeccionar Simple Grid EA a través del análisis matemático y un enfoque de fuerza bruta, apuntando al uso óptimo de la estrategia. Este artículo profundiza en la optimización matemática de la estrategia, preparando el escenario para la futura exploración de la optimización basada en codificación en entregas posteriores.
preview
Redes neuronales en el trading: Análisis de la situación del mercado usando el Transformador de patrones

Redes neuronales en el trading: Análisis de la situación del mercado usando el Transformador de patrones

A la hora de analizar la situación del mercado con nuestros modelos, el elemento clave es la vela. No obstante, sabemos desde hace tiempo que las velas pueden ayudar a predecir los movimientos futuros de los precios. Y en este artículo aprenderemos un método que nos permitirá integrar ambos enfoques.
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
Características del Wizard MQL5 que debe conocer (Parte 44): Indicador técnico Average True Range (ATR)

Características del Wizard MQL5 que debe conocer (Parte 44): Indicador técnico Average True Range (ATR)

El oscilador ATR es un indicador muy popular que actúa como proxy de volatilidad, especialmente en los mercados de divisas, donde los datos de volumen son escasos. Examinamos esto, basándonos en patrones, como hemos hecho con indicadores anteriores, y compartimos estrategias e informes de pruebas gracias a las clases y el ensamblaje de la biblioteca del asistente MQL5.
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
Redes neuronales: así de sencillo (Parte 70): Mejoramos las políticas usando operadores de forma cerrada (CFPI)

Redes neuronales: así de sencillo (Parte 70): Mejoramos las políticas usando operadores de forma cerrada (CFPI)

En este trabajo, proponemos introducir un algoritmo que use operadores de mejora de políticas de forma cerrada para optimizar las acciones offline del Agente.
preview
Puntuación de propensión (Propensity score) en la inferencia causal

Puntuación de propensión (Propensity score) en la inferencia causal

Este artículo trata el tema del emparejamiento en la inferencia causal. El emparejamiento se usa para emparejar observaciones similares en un conjunto de datos. Esto es necesario para identificar correctamente los efectos causales, eliminando el sesgo. Hoy explicaremos cómo esto ayuda a crear sistemas comerciales basados en el aprendizaje automático que se vuelven más robustos con nuevos datos en los que no se ha entrenado. El papel principal lo asignaremos a la puntuación de propensión, ampliamente utilizada en la inferencia causal.
preview
Desarrollo de un sistema de repetición (Parte 29): Proyecto Expert Advisor — Clase C_Mouse (III)

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

Ahora que hemos mejorado la clase C_Mouse, podemos concentrarnos en crear una clase destinada a establecer una base totalmente nueva de estudios. Como mencioné al inicio del artículo, no utilizaremos herencia o polimorfismo para crear esta nueva clase. En cambio, vamos a modificar, o mejor, agregar nuevos objetos a la línea de precio. Esto es lo que haremos en este primer momento, y en el próximo artículo, mostraré cómo cambiar los estudios. Pero, realizaremos esto sin cambiar el código de la clase C_Mouse. Reconozco que, en la práctica, esto sería más fácilmente logrado mediante herencia o polimorfismo. No obstante, existen otras técnicas para alcanzar el mismo resultado.
preview
Características del Wizard MQL5 que debe conocer (Parte 25): Pruebas y operaciones en múltiples marcos temporales

Características del Wizard MQL5 que debe conocer (Parte 25): Pruebas y operaciones en múltiples marcos temporales

Las estrategias que se basan en múltiples marcos de tiempo no se pueden probar en los Asesores Expertos ensamblados por defecto debido a la arquitectura de código MQL5 utilizada en las clases de ensamblaje. Exploramos una posible solución a esta limitación para las estrategias que buscan utilizar múltiples marcos temporales en un estudio de caso con la media móvil cuadrática.
preview
Cierres parciales condicionales (Parte 1): Creación de la clase base

Cierres parciales condicionales (Parte 1): Creación de la clase base

En este artículo implementaremos un nuevo método para la gestión de posiciones, parecido a los cierres parciales "simples" que implementamos anteriormente, pero con una diferencia importante. En lugar de basarse en niveles de takeprofit fijos, este enfoque aplica los cierres parciales al momento de cumplirse cierta condición específica. De ahí su nombre: "Cierres parciales condicionales". En esta primera parte de la implementación en MQL5 veremos cómo funciona esta técnica de gestión de posiciones.
preview
Características del Wizard MQL5 que debe conocer (Parte 02): Mapas de Kohonen

Características del Wizard MQL5 que debe conocer (Parte 02): Mapas de Kohonen

Gracias al Wizard, el tráder podrá ahorrar tiempo a la hora de poner en práctica sus ideas. Asimismo, podrá reducir la probabilidad de que surjan errores por duplicación de código. En lugar de perder el tiempo con el código, los tráders tendrán la posibilidad de poner en práctica su filosofía comercial.
preview
Desarrollo de un sistema de repetición (Parte 37): Pavimentando el terreno (I)

Desarrollo de un sistema de repetición (Parte 37): Pavimentando el terreno (I)

En este artículo, vamos a empezar a hacer algo que ojalá hubiera hecho hace mucho más tiempo. Sin embargo, debido a la falta de "terreno firme", no me sentía seguro para presentarlo públicamente. Ahora, tengo las bases para poder hacer lo que vamos a empezar a hacer a partir de ahora. Es una buena idea centrarse al máximo en comprender el contenido de este artículo, y no lo digo para que lo leas por leer. Quiero y necesito recalcar que, si no entiendes este artículo en concreto, puedes abandonar por completo cualquier esperanza de comprender el contenido de los siguientes.
preview
Características del Wizard MQL5 que debe conocer (Parte 53): Market Facilitation Index (MFI)

Características del Wizard MQL5 que debe conocer (Parte 53): Market Facilitation Index (MFI)

El Market Facilitation Index (MFI) es otro indicador de Bill Williams que tiene como objetivo medir la eficiencia del movimiento de los precios en relación con el volumen. Como siempre, analizamos los distintos patrones de este indicador dentro de los límites de una clase de señales de ensamblaje del asistente y presentamos una variedad de informes de pruebas y análisis para los distintos patrones.
preview
Redes neuronales en el trading: Uso de modelos de lenguaje para la predicción de series temporales

Redes neuronales en el trading: Uso de modelos de lenguaje para la predicción de series temporales

Continuamos nuestro análisis de los modelos de pronóstico de series temporales. En este artículo le propongo familiarizarnos con un algoritmo complejo construido sobre el uso de un modelo de lenguaje previamente entrenado.
preview
Desarrollo de un sistema de repetición (Parte 39): Pavimentando el terreno (II)

Desarrollo de un sistema de repetición (Parte 39): Pavimentando el terreno (II)

Antes de comenzar la segunda fase del desarrollo, es necesario reforzar algunas ideas. Entonces, ¿sabes cómo forzar al MQL5 a hacer lo que es necesario? ¿Has intentado ir más allá de lo que informa la documentación? Si no, prepárate. Porque empezaré a hacer cosas mucho más allá de lo que la mayoría hace normalmente.
preview
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte IV): Apilamiento de modelos

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte IV): Apilamiento de modelos

Hoy demostraremos cómo se pueden crear aplicaciones comerciales impulsadas por IA capaces de aprender de sus propios errores. Demostraremos una técnica conocida como apilamiento, mediante la cual usamos 2 modelos para hacer 1 predicción. El primer modelo suele ser un alumno más débil, y el segundo modelo suele ser un modelo más potente que aprende los residuos de nuestro alumno más débil. Nuestro objetivo es crear un conjunto de modelos, para lograr, con suerte, una mayor precisión.
preview
Optimización con el juego del caos — Game Optimization (CGO)

Optimización con el juego del caos — Game Optimization (CGO)

Hoy presentamos el nuevo algoritmo metaheurístico de Chaos Game Optimisation (CGO), que demuestra una capacidad única para mantener una alta eficiencia al trabajar con problemas de alta dimensionalidad. A diferencia de la mayoría de los algoritmos de optimización, el CGO no solo no pierde rendimiento, sino que a veces incluso lo aumenta cuando se escala el problema, lo cual supone su característica clave.
preview
Redes neuronales: así de sencillo (Parte 74): Predicción de trayectorias con adaptación

Redes neuronales: así de sencillo (Parte 74): Predicción de trayectorias con adaptación

Este artículo presenta un método bastante eficaz de previsión de trayectorias de múltiples agentes, capaz de adaptarse a diversas condiciones ambientales.
preview
Teoría de categorías (Parte 9): Acciones de monoides

Teoría de categorías (Parte 9): Acciones de monoides

El presente artículo continúa la serie sobre la implementación de la teoría de categorías en MQL5. En este artículo examinaremos las acciones de los monoides como un medio de transformación de los monoides descritos en el artículo anterior para aumentar sus aplicaciones.
preview
Clase básica de algoritmos de población como base para una optimización eficaz

Clase básica de algoritmos de población como base para una optimización eficaz

El presente material supone un intento único de investigación para combinar una variedad de algoritmos de población en una sola clase y simplificar la aplicación de técnicas de optimización. Este enfoque no solo descubre oportunidades para el desarrollo de nuevos algoritmos, incluidas variantes híbridas, sino que también crea un banco de pruebas básico y versátil. Este banco se convertirá así en una herramienta clave para seleccionar el algoritmo óptimo según un problema específico.
preview
Desarrollamos un asesor experto multidivisa (Parte 10): Creación de objetos a partir de una cadena

Desarrollamos un asesor experto multidivisa (Parte 10): Creación de objetos a partir de una cadena

El plan de desarrollo del EA comprende varias etapas con resultados intermedios almacenados en una base de datos. Solo se pueden recuperar desde allí como cadenas o números, no como objetos. Así que necesitaremos una forma de recrear en el EA los objetos deseados a partir de las cadenas leídas de la base de datos.
preview
Desarrollamos un asesor experto multidivisa (Parte 17): preparación adicional para el trading real

Desarrollamos un asesor experto multidivisa (Parte 17): preparación adicional para el trading real

Ahora nuestro EA utiliza una base de datos para recuperar las cadenas de inicialización de instancias individuales de estrategias comerciales. Sin embargo, la base de datos es bastante voluminosa y contiene mucha información innecesaria para el funcionamiento real del asesor experto. Vamos a intentar que el EA funcione sin conexión obligatoria a la base de datos.
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
Inferencia causal en problemas de clasificación de series temporales

Inferencia causal en problemas de clasificación de series temporales

En este artículo, examinaremos la teoría de la inferencia causal utilizando el aprendizaje automático, así como la implementación del enfoque personalizado en Python. La inferencia causal y el pensamiento causal tienen sus raíces en la filosofía y la psicología y desempeñan un papel importante en nuestra comprensión de la realidad.