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
Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con integración RestAPI  (Parte 4): Organización de funciones en clases en MQL5

Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con integración RestAPI (Parte 4): Organización de funciones en clases en MQL5

Este artículo examina la transición de la codificación procedimental a la programación orientada a objetos (POO) en MQL5, enfocándose en la integración con REST APIs. Discutimos la organización de funciones de solicitudes HTTP (GET y POST) en clases y destacamos ventajas como el encapsulamiento, la modularidad y la facilidad de mantenimiento. La refactorización de código se detalla, y se muestra la sustitución de funciones aisladas por métodos de clases. El artículo incluye ejemplos prácticos y pruebas.
preview
Robot comercial multimodular en Python y MQL5 (Parte I): Creamos la arquitectura básica y los primeros módulos

Robot comercial multimodular en Python y MQL5 (Parte I): Creamos la arquitectura básica y los primeros módulos

Hoy desarrollaremos un sistema comercial modular que combina Python para el análisis de datos con MQL5 para la ejecución de transacciones. Sus cuatro módulos independientes supervisan en paralelo distintos aspectos del mercado: volúmenes, arbitraje, economía y riesgo, y utilizan RandomForest con 400 árboles para el análisis. Se hace especial hincapié en la gestión del riesgo, porque sin una gestión eficaz del riesgo, ni siquiera los algoritmos comerciales más avanzados sirven de mucho.
Trabajando con los precios en la biblioteca DoEasy (Parte 60): Lista de serie de datos de tick del símbolo
Trabajando con los precios en la biblioteca DoEasy (Parte 60): Lista de serie de datos de tick del símbolo

Trabajando con los precios en la biblioteca DoEasy (Parte 60): Lista de serie de datos de tick del símbolo

En este artículo, vamos a crear una lista para almacenar los datos de tick del símbolo único, después, verificaremos su creación y obtención de los datos requeridos en el Asesor Experto. Dichas listas —siendo aplicada cada una de ellas para cada símbolo usado— van a componer luego la colección de datos de tick.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 15): Nacimiento del SIMULADOR (V) - RANDOM WALK

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 15): Nacimiento del SIMULADOR (V) - RANDOM WALK

En este artículo, vamos a finalizar la fase en la que estamos desarrollando el simulador para nuestro sistema. El propósito principal aquí será ajustar el algoritmo visto en el artículo anterior. Este algoritmo tiene como objetivo crear el movimiento de RANDOM WALK. Por lo tanto, es fundamental comprender el contenido de los artículos anteriores para seguir lo que se explicará aquí. Si no has seguido el desarrollo del simulador, te aconsejo que veas esta secuencia desde el principio. De lo contrario, podrías perderte en lo que se explicará aquí.
preview
Algoritmos de optimización de la población: Algoritmo de recocido isotrópico simulado (Simulated Isotropic Annealing, SIA). Parte II

Algoritmos de optimización de la población: Algoritmo de recocido isotrópico simulado (Simulated Isotropic Annealing, SIA). Parte II

En la primera parte del artículo, hablamos del conocido y popular algoritmo del recocido simulado, analizamos sus ventajas y describimos detalladamente sus desventajas. La segunda parte del artículo se dedicará a la transformación cardinal del algoritmo y su renacimiento en un nuevo algoritmo de optimización, el "recocido isotrópico simulado, SIA".
preview
Integración de modelos ML con el simulador de estrategias (Parte 3): Gestión de archivos CSV(II)

Integración de modelos ML con el simulador de estrategias (Parte 3): Gestión de archivos CSV(II)

Este texto es una guía completa sobre la creación de una clase en MQL5 para la gestión eficaz de archivos CSV. En él comprenderás cómo se lleva a cabo la implementación de métodos de apertura, escritura, lectura y conversión de datos y cómo se pueden emplear para guardar y acceder a la información. Además, trataremos las restricciones y los aspectos cruciales a la hora de utilizar una clase de este tipo. Este es un material valioso para aquellos que deseen aprender a manipular archivos CSV en MQL5.
preview
Desarrollo y prueba de sistemas comerciales basados en el canal de Keltner

Desarrollo y prueba de sistemas comerciales basados en el canal de Keltner

En este artículo examinaremos los sistemas comerciales que utilizan un concepto muy importante de los mercados financieros: la volatilidad. Asimismo, estudiaremos un sistema comercial basado en el Canal de Keltner, incluyendo su implementación en código y sus pruebas con varios activos.
preview
Visualización de transacciones en un gráfico (Parte 1): Seleccionar un periodo para el análisis

Visualización de transacciones en un gráfico (Parte 1): Seleccionar un periodo para el análisis

Aquí vamos a desarrollar un script desde cero que simplifica la descarga de pantallas de impresión de transacciones para analizar entradas comerciales. Toda la información necesaria sobre una única operación se puede mostrar cómodamente en un gráfico con la posibilidad de dibujar diferentes marcos temporales.
preview
Trading algorítmico basado en patrones de reversión 3D

Trading algorítmico basado en patrones de reversión 3D

Hoy descubriremos al lector el nuevo mundo del trading automatizado con barras 3D. ¿Qué aspecto tiene un robot comercial basado en barras de precios multidimensionales, y pueden los clústeres "amarillos" de barras tridimensionales predecir los cambios de tendencia? ¿Cómo es el trading en múltiples dimensiones?
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 21):  FOREX (II)

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 21): FOREX (II)

Vamos a continuar el armado del sistema para cubrir el mercado FOREX. Entonces, para resolver este problema, primero necesitaríamos declarar la carga de los ticks antes de cargar las barras previas. Esto soluciona el problema, pero al mismo tiempo obliga al usuario a seguir un tipo de estructura en el archivo de configuración que, en mi opinión, no tiene mucho sentido. La razón es que, al desarrollar la programación responsable de analizar y ejecutar lo que está en el archivo de configuración, podemos permitir que el usuario declare las cosas en cualquier orden.
preview
Asesor experto de scalping Ilan 3.0 Ai con aprendizaje automático

Asesor experto de scalping Ilan 3.0 Ai con aprendizaje automático

¿Recuerda el asesor experto Ilan 1.6 Dymanic? Hoy intentaremos mejorarlo usando el aprendizaje automático. Así, en el presente artículo reanimaremos el antiguo desarrollo y añadiremos aprendizaje automático con una tabla Q. Paso a paso.
Trabajando con los precios en la biblioteca DoEasy (Parte 64): Profundidad del mercado, clases del objeto de instantánea y del objeto de serie de instantáneas del DOM
Trabajando con los precios en la biblioteca DoEasy (Parte 64): Profundidad del mercado, clases del objeto de instantánea y del objeto de serie de instantáneas del DOM

Trabajando con los precios en la biblioteca DoEasy (Parte 64): Profundidad del mercado, clases del objeto de instantánea y del objeto de serie de instantáneas del DOM

En este artículo, vamos a crear dos clases: la clase del objeto de instantánea del DOM y la clase del objeto de serie de instantáneas del DOM, además, simularemos la creación de la serie de datos del DOM.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 11): Nacimiento del SIMULADOR (I)

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 11): Nacimiento del SIMULADOR (I)

Para poder usar datos que forman barras, debemos abandonar la repetición y comenzar a desarrollar un simulador. Utilizaremos las barras de 1 minuto precisamente porque nos ofrecen un nivel de complejidad mínimo.
preview
Marcado de datos en el análisis de series temporales (Parte 5): Aplicación y comprobación de asesores usando Socket

Marcado de datos en el análisis de series temporales (Parte 5): Aplicación y comprobación de asesores usando Socket

En esta serie de artículos, presentaremos varias técnicas de marcado de series temporales que pueden producir datos que se ajusten a la mayoría de los modelos de inteligencia artificial (IA). El marcado dirigido de datos puede hacer que un modelo de IA entrenado resulte más relevante para las metas y objetivos del usuario, mejorando la precisión del modelo y ayudando a este a dar un salto de calidad.
preview
Ejemplo de toma de beneficios optimizada automáticamente y parámetros de indicadores con SMA y EMA

Ejemplo de toma de beneficios optimizada automáticamente y parámetros de indicadores con SMA y EMA

Este artículo presenta un asesor experto sofisticado para el trading de divisas, que combina el aprendizaje automático con el análisis técnico. Se centra en la negociación de acciones de Apple, presentando optimización adaptativa, gestión de riesgos y múltiples estrategias. Las pruebas retrospectivas muestran resultados prometedores con una alta rentabilidad, pero también caídas significativas, lo que indica potencial para un mayor refinamiento.
preview
Permutación de las barras de precio en MQL5

Permutación de las barras de precio en MQL5

En este artículo, presentaremos un algoritmo de permutación de barras de precio y detallaremos cómo se pueden utilizar las pruebas de permutación para identificar los casos en los que se ha fabricado el rendimiento de la estrategia para engañar a los posibles compradores del asesor.
preview
Desarrollando un EA comercial desde cero (Parte 13): Times And Trade (II)

Desarrollando un EA comercial desde cero (Parte 13): Times And Trade (II)

Hoy vamos a construir la segunda parte del sistema Times & Trade para analizar el mercado. En el artículo anterior Times & Trade ( I ) presenté un sistema alternativo para organizar un gráfico de manera que tengamos un indicador que nos permita interpretar las operaciones que se han ejecutado en el mercado lo más rápido posible.
preview
Marcado de datos en el análisis de series temporales (Parte 3): Ejemplo de uso del marcado de datos

Marcado de datos en el análisis de series temporales (Parte 3): Ejemplo de uso del marcado de datos

En esta serie de artículos, presentaremos varias técnicas de marcado de series temporales que pueden producir datos que se ajusten a la mayoría de los modelos de inteligencia artificial (IA). El marcado dirigido de datos puede hacer que un modelo de IA entrenado resulte más relevante para las metas y objetivos del usuario, mejorando la precisión del modelo y ayudando a este a dar un salto de calidad.
preview
Algoritmos de optimización de la población: Búsqueda por difusión estocástica (Stochastic Diffusion Search, SDS)

Algoritmos de optimización de la población: Búsqueda por difusión estocástica (Stochastic Diffusion Search, SDS)

En este artículo veremos la búsqueda por difusión estocástica, o SDS, que es un algoritmo de optimización muy potente y eficiente basado en los principios del paseo aleatorio. El algoritmo puede encontrar soluciones óptimas en espacios multidimensionales complejos, con una alta tasa de convergencia y la capacidad de evitar extremos locales.
Trabajando con los precios en la biblioteca DoEasy (Parte 59): Objeto para almacenar los datos de un tick
Trabajando con los precios en la biblioteca DoEasy (Parte 59): Objeto para almacenar los datos de un tick

Trabajando con los precios en la biblioteca DoEasy (Parte 59): Objeto para almacenar los datos de un tick

A partir de este artículo, procedemos a la creación de la funcionalidad de la biblioteca para trabajar con los datos de precios. Hoy, crearemos una clase del objeto que va a almacenar todos los datos de los precios que llegan con un tick.
preview
DoEasy. Elementos de control (Parte 13): Optimizando la interacción de los objetos WinForms con el ratón. Comenzamos el desarrollo del objeto WinForms TabControl

DoEasy. Elementos de control (Parte 13): Optimizando la interacción de los objetos WinForms con el ratón. Comenzamos el desarrollo del objeto WinForms TabControl

En el presente artículo, corregiremos y optimizaremos el procesamiento de la apariencia de los objetos WinForms después de mover el cursor del ratón lejos del objeto y comenzaremos a desarrollar el objeto TabControl WinForms.
preview
Interpretación de modelos: Una comprensión más profunda de los modelos de aprendizaje automático

Interpretación de modelos: Una comprensión más profunda de los modelos de aprendizaje automático

El aprendizaje automático es un campo desafiante y gratificante para cualquiera, independientemente de la experiencia que tenga. En este artículo, nos sumergiremos en el funcionamiento interno de los modelos creados, exploraremos el complejo mundo de las funciones, las predicciones y las soluciones eficientes, y comprenderemos claramente la interpretación de los modelos. Asimismo, aprenderemos el arte de hacer concesiones, mejorar las predicciones, clasificar la importancia de los parámetros y tomar decisiones sólidas. Este artículo le ayudará a mejorar el rendimiento de los modelos de aprendizaje automático y a sacar más partido de sus metodologías.
preview
Aprendizaje automático y Data Science (Parte 27): Redes neuronales convolucionales (CNN) en los robots comerciales de MetaTrader 5: ¿Merecen la pena?

Aprendizaje automático y Data Science (Parte 27): Redes neuronales convolucionales (CNN) en los robots comerciales de MetaTrader 5: ¿Merecen la pena?

Las redes neuronales convolucionales (CNN) son famosas por su destreza en la detección de patrones en imágenes y vídeos, con aplicaciones que abarcan diversos campos. En este artículo, exploramos el potencial de las CNN para identificar patrones valiosos en los mercados financieros y generar señales comerciales eficaces para los robots comerciales de MetaTrader 5. Descubramos cómo puede aprovecharse esta técnica de aprendizaje automático profundo para tomar decisiones de negociación más inteligentes.
preview
Redes neuronales: así de sencillo (Parte 54): Usamos un codificador aleatorio para una exploración eficiente (RE3)

Redes neuronales: así de sencillo (Parte 54): Usamos un codificador aleatorio para una exploración eficiente (RE3)

Siempre que analizamos métodos de aprendizaje por refuerzo, nos enfrentamos al problema de explorar eficientemente el entorno. Con frecuencia, la resolución de este problema hace que el algoritmo se complique, llevándonos al entrenamiento de modelos adicionales. En este artículo veremos un enfoque alternativo para resolver el presente problema.
preview
Análisis de sentimientos y aprendizaje profundo para operar con EA y backtesting con Python

Análisis de sentimientos y aprendizaje profundo para operar con EA y backtesting con Python

En este artículo, presentaremos un análisis de sentimiento y los modelos ONNX con Python para ser utilizados en un asesor experto. Un script ejecuta un modelo ONNX entrenado a partir de TensorFlow para predicciones de aprendizaje profundo, mientras que otro obtiene titulares de noticias y cuantifica el sentimiento utilizando IA.
preview
Estimamos la rentabilidad futura usando intervalos de confianza

Estimamos la rentabilidad futura usando intervalos de confianza

En este artículo, nos adentraremos en la aplicación de técnicas de bootstrapping como forma de evaluar la rentabilidad futura de una estrategia automatizada.
preview
Desarrollo de un sistema de repetición (Parte 31): Proyecto Expert Advisor — Clase C_Mouse (V)

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

Desarrollar una manera de poner un cronómetro, de modo que durante una repetición/simulación, éste pueda decirnos cuánto tiempo falta, puede parecer a primera vista una tarea simple y de rápida solución. Muchos simplemente intentarían adaptar y usar el mismo sistema que se utiliza cuando tenemos el servidor comercial a nuestro lado. Pero aquí reside un punto que muchos quizás no consideran al pensar en tal solución. Cuando estás haciendo una repetición, y esto para no hablar del hecho de la simulación, el reloj no funciona de la misma manera. Este tipo de cosa hace complejo construir tal sistema.
preview
Aprendizaje automático y Data Science (Parte 22): Aprovechar las redes neuronales de autocodificadores para realizar operaciones más inteligentes pasando del ruido a la señal

Aprendizaje automático y Data Science (Parte 22): Aprovechar las redes neuronales de autocodificadores para realizar operaciones más inteligentes pasando del ruido a la señal

En el vertiginoso mundo de los mercados financieros, separar las señales significativas del ruido es crucial para operar con éxito. Al emplear sofisticadas arquitecturas de redes neuronales, los autocodificadores destacan a la hora de descubrir patrones ocultos en los datos de mercado, transformando datos ruidosos en información práctica. En este artículo, exploramos cómo los autocodificadores están revolucionando las prácticas de negociación, ofreciendo a los operadores una poderosa herramienta para mejorar la toma de decisiones y obtener una ventaja competitiva en los dinámicos mercados actuales.
preview
Redes neuronales en el trading: Modelos del espacio de estados

Redes neuronales en el trading: Modelos del espacio de estados

Una gran cantidad de los modelos que hemos revisado hasta ahora se basan en la arquitectura del Transformer. No obstante, pueden resultar ineficientes al trabajar con secuencias largas. En este artículo le propongo familiarizarse con una rama alternativa de pronóstico de series temporales basada en modelos del espacio de estados.
preview
Redes neuronales: así de sencillo (Parte 50): Soft Actor-Critic (optimización de modelos)

Redes neuronales: así de sencillo (Parte 50): Soft Actor-Critic (optimización de modelos)

En el artículo anterior, implementamos el algoritmo Soft Actor-Critic (SAC), pero no pudimos entrenar un modelo rentable. En esta ocasión, optimizaremos el modelo creado previamente para obtener los resultados deseados en su rendimiento.
preview
Redes neuronales: así de sencillo (Parte 87): Segmentación de series temporales

Redes neuronales: así de sencillo (Parte 87): Segmentación de series temporales

La previsión juega un papel esencial en el análisis de series temporales. En este nuevo artículo, hablaremos de las ventajas de la segmentación de series temporales.
preview
El enfoque cuantitativo en la gestión de riesgos: Aplicación de un modelo VaR para la optimización de portafolios multidivisa con Python y MetaTrader 5

El enfoque cuantitativo en la gestión de riesgos: Aplicación de un modelo VaR para la optimización de portafolios multidivisa con Python y MetaTrader 5

Este artículo revelará el potencial del modelo Value at Risk (VaR) para optimizar un portafolio multidivisa. Usando el poder de Python y la funcionalidad de MetaTrader 5, hoy demostraremos cómo implementar el análisis VaR para la asignación eficiente de capital y la gestión de posiciones. Desde los fundamentos teóricos hasta la aplicación práctica, el artículo abarcará todos los aspectos de la aplicación de uno de los sistemas de cálculo del riesgo más sólidos, el VaR, a la negociación algorítmica.
preview
Teoría de categorías en MQL5 (Parte 11): Grafos

Teoría de categorías en MQL5 (Parte 11): Grafos

El presente artículo continúa la serie sobre la implementación de la teoría de categorías en MQL5. Aquí veremos cómo podemos integrar la teoría de grafos con los monoides y otras estructuras de datos al desarrollar una estrategia de cierre del sistema comercial.
preview
Características del Wizard MQL5 que debe conocer (Parte 42): Oscilador ADX

Características del Wizard MQL5 que debe conocer (Parte 42): Oscilador ADX

El ADX es otro indicador técnico relativamente popular utilizado por algunos traders para medir la fuerza de una tendencia predominante. Actuando como una combinación de otros dos indicadores, se presenta como un oscilador cuyos patrones exploramos en este artículo con la ayuda del asistente de ensamblaje MQL5 y sus clases de soporte.
preview
Desarrollo de un sistema de repetición (Parte 41): Inicio de la segunda fase (II)

Desarrollo de un sistema de repetición (Parte 41): Inicio de la segunda fase (II)

Si hasta ahora todo te ha parecido correcto, significa que no estás pensando realmente a largo plazo. Donde empiezas a desarrollar aplicaciones y, con el tiempo, ya no necesitas programar nuevas aplicaciones. Solo tienes que conseguir que trabajen juntos. Veamos cómo terminar de montar el indicador del ratón.
preview
Añadimos un LLM personalizado a un robot comercial (Parte 5): Desarrollar y probar la estrategia de negociación con LLMs (I) Ajuste fino

Añadimos un LLM personalizado a un robot comercial (Parte 5): Desarrollar y probar la estrategia de negociación con LLMs (I) Ajuste fino

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 abordará paso a paso la consecución de este objetivo.
preview
Escribimos el primer modelo de caja de cristal (Glass Box) en Python y MQL5

Escribimos el primer modelo de caja de cristal (Glass Box) en Python y MQL5

Los modelos de aprendizaje automático son difíciles de interpretar, y entender por qué los modelos no se ajustan a nuestras expectativas puede ayudarnos mucho a conseguir, en última instancia, el resultado deseado al utilizar técnicas tan avanzadas. Sin un conocimiento exhaustivo del funcionamiento interno del modelo, podría resultar difícil encontrar fallos que degraden el rendimiento. De este modo, podremos dedicar tiempo a crear funciones que no afecten a la calidad de la previsión. La conclusión es que, por muy bueno que sea un modelo, nos perderemos todas sus grandes ventajas por culpa de nuestros propios errores. Afortunadamente, existe una solución sofisticada y bien diseñada que permite ver con claridad lo que sucede bajo el capó del modelo.
preview
Herramientas econométricas para la previsión de la volatilidad: el modelo GARCH

Herramientas econométricas para la previsión de la volatilidad: el modelo GARCH

El presente artículo describe las propiedades de un modelo de heteroscedasticidad condicional no lineal (GARCH). Sobre esta base se construye el indicador iGARCH para predecir la volatilidad un paso por delante. Para estimar los parámetros del modelo se usará la biblioteca de análisis numérico ALGLIB.
preview
Comercio algorítmico con MetaTrader 5 y R para principiantes

Comercio algorítmico con MetaTrader 5 y R para principiantes

Embárquese en una apasionante exploración en la que el análisis financiero se encuentra con el trading algorítmico mientras desentrañamos el arte de unir a la perfección R y MetaTrader 5. Este artículo es su guía para unir los reinos de la finura analítica en R con las formidables capacidades comerciales de MetaTrader 5.
preview
Aprendizaje automático y Data Science (Parte 24): Predicción de series temporales de divisas mediante modelos de IA convencionales

Aprendizaje automático y Data Science (Parte 24): Predicción de series temporales de divisas mediante modelos de IA convencionales

En los mercados de divisas es muy difícil predecir la tendencia futura sin tener una idea del pasado. Muy pocos modelos de aprendizaje automático son capaces de hacer predicciones futuras considerando valores pasados. En este artículo, vamos a discutir cómo podemos utilizar modelos de inteligencia artificial clásicos (no de series temporales) para superar al mercado.