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
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000

En esta serie de artículos, analizamos cómo podemos construir Asesores Expertos capaces de adaptarse de forma autónoma a las condiciones dinámicas del mercado. En el artículo de hoy, intentaremos sintonizar una red neuronal profunda con los mercados sintéticos de Deriv.
preview
Desarrollando un EA de trading desde cero (Parte 16): Acceso a los datos en la Web (II)

Desarrollando un EA de trading desde cero (Parte 16): Acceso a los datos en la Web (II)

Saber cómo introducir los datos de la Web en un EA no es tan obvio, o mejor dicho, no es tan simple que puede hacerse sin conocer y entender realmente todas las características que están presentes en MetaTrader 5.
preview
Algoritmos de optimización de la población: Algoritmo de recocido simulado (Simulated Annealing, SA). Parte I

Algoritmos de optimización de la población: Algoritmo de recocido simulado (Simulated Annealing, SA). Parte I

El algoritmo de recocido simulado es una metaheurística inspirada en el proceso de recocido de los metales. En nuestro artículo, realizaremos un análisis exhaustivo del algoritmo y mostraremos cómo muchas percepciones comunes y mitos que rodean a este método de optimización (el más popular y conocido) pueden ser incorrectos e incompletos. Anuncio de la segunda parte del artículo: "¡Conozca el algoritmo de recocido Isotrópico Simulado (Simulated Isotropic Annealing, SIA) del propio autor!"
preview
Algoritmos de optimización de la población: Algoritmo genético binario (Binary Genetic Algorithm, BGA). Parte I

Algoritmos de optimización de la población: Algoritmo genético binario (Binary Genetic Algorithm, BGA). Parte I

En este artículo, analizaremos varios métodos utilizados en algoritmos genéticos binarios y otros algoritmos poblacionales. Asimismo, repasaremos los principales componentes del algoritmo, como la selección, el cruce y la mutación, así como su impacto en el proceso de optimización. Además, estudiaremos las formas de presentar la información y su repercusión en los resultados de la optimización.
preview
Optimización paralela con el método de enjambre de partículas (Particle Swarm Optimization)

Optimización paralela con el método de enjambre de partículas (Particle Swarm Optimization)

El presente artículo describimos un modo de optimización rápida usando el método de enjambre de partículas, y presentamos una implementación en MQL lista para utilizar tanto en el modo de flujo único dentro de un EA, como en el modo paralelo de flujo múltiples como un complemento ejecutado en los agentes locales del simulador.
preview
Paradigmas de programación (Parte 2): Enfoque orientado a objetos para el desarrollo de EA basados en la dinámica de precios

Paradigmas de programación (Parte 2): Enfoque orientado a objetos para el desarrollo de EA basados en la dinámica de precios

En este artículo hablaremos sobre el paradigma de la POO y su aplicación en el código MQL5. Este será el segundo artículo de la serie. En él aprenderemos las características de la programación orientada a objetos y analizaremos ejemplos prácticos. La última vez escribimos un Asesor Experto basado en la Acción del Precio (Price Action) utilizando el indicador EMA y datos de velas. Ahora convertiremos su código procedimental en un código orientado a objetos.
preview
Ejemplo de optimización estocástica y control óptimo

Ejemplo de optimización estocástica y control óptimo

Este Asesor Experto, llamado SMOC, que significa Stochastic Model Optimal Control (Modelo Estocástico de Control Óptimo), es un ejemplo sencillo de un avanzado sistema algorítmico de trading para MetaTrader 5. Utiliza una combinación de indicadores técnicos, control predictivo de modelos y gestión dinámica de riesgos para tomar decisiones comerciales. El EA incorpora parámetros adaptativos, dimensionamiento de posiciones basado en la volatilidad y análisis de tendencias para optimizar su rendimiento en diferentes condiciones de mercado.
preview
Aprendiendo a diseñar un sistema de trading con Williams PR

Aprendiendo a diseñar un sistema de trading con Williams PR

Aquí tenemos un nuevo artículo de nuestra serie dedicada a la creación de sistemas comerciales basados en indicadores técnicos populares. En dicha serie, escribimos sistemas en el lenguaje MQL5 para su uso en MetaTrader 5. En este artículo, analizaremos el indicador de rango porcentual de Williams (Williams' %R).
Creando una lista de correo electrónico por medio de los servicios Google
Creando una lista de correo electrónico por medio de los servicios Google

Creando una lista de correo electrónico por medio de los servicios Google

El trader que mantiene relaciones comerciales con otros traders, suscriptores, clientes o incluso con los amigos puede necesitar crear una lista de correo. Enviar las capturas de pantalla, revistas, registros o informes son tareas bastante relevantes que nos necesarias cada día, pero tampoco son tan raras. En cualquier caso, a algunos traders les gustaría disponer de esta posibilidad. En este artículo, se trata de las cuestiones relacionadas con el uso simultáneo de varios servicios Google, desarrollo del ensamblado correspondiente en C# e integración con las herramientas en MQL.
preview
Plantillas listas para conectar indicadores en asesores (Parte 3): Indicadores de tendencia

Plantillas listas para conectar indicadores en asesores (Parte 3): Indicadores de tendencia

En este artículo de referencia, echaremos un vistazo a los indicadores estándar de la categoría de Indicadores de tendencia. Asimismo, crearemos plantillas listas para usar estos indicadores en asesores expertos: declaración y configuración de parámetros, inicialización y desinicialización de indicadores, y también obtención de datos y señales de los búferes de indicador en asesores.
preview
Paradigmas de programación (Parte 1): Enfoque procedimental para el desarrollo de un asesor basado en la dinámica de precios

Paradigmas de programación (Parte 1): Enfoque procedimental para el desarrollo de un asesor basado en la dinámica de precios

Conozca los paradigmas de programación y su aplicación en el código MQL5. En este artículo, analizaremos las características de la programación procedimental y ofreceremos ejemplos prácticos. Asimismo, aprenderemos a desarrollar un asesor basado en la acción del precio (Action Price) utilizando el indicador EMA y datos de velas. Además, el artículo introduce el paradigma de la programación funcional.
Cómo visualizar la historia del comercio multidivisa en informes con formato HTML y CSV
Cómo visualizar la historia del comercio multidivisa en informes con formato HTML y CSV

Cómo visualizar la historia del comercio multidivisa en informes con formato HTML y CSV

Como sabemos, MetaTrader 5 ofrece la posibilidad de realizar simulaciones multidivisa desde su aparición. Esta función tiene mucha demanda entre la mayoría de los tráders, pero, por desgracia, no es tan universal como querríamos. En el presente artículo, ofrecemos varios programas para trazar gráficos con la ayuda de objetos gráficos usando como base la historia comercial de informes en los formatos HTML y CSV. El comercio con varios instrumentos puede analizarse paralelamente en varias subventanas, o en una sola ventana con la ayuda de la alternancia dinámica a una orden del usuario.
preview
Redes neuronales: así de sencillo (Parte 14): Clusterización de datos

Redes neuronales: así de sencillo (Parte 14): Clusterización de datos

Lo confieso: ha pasado más de un año desde que publiqué el último artículo. En tanto tiempo, me ha sido posible repensar mucho, desarrollar nuevos enfoques. Y en este nuevo artículo, me gustaría alejarme un poco del método anteriormente usado de aprendizaje supervisado, y sugerir una pequeña inmersión en los algoritmos de aprendizaje no supervisado. En particular, vamos a analizar uno de los algoritmos de clusterización, las k-medias.
Enviando señales de trading a través de feeds RSS
Enviando señales de trading a través de feeds RSS

Enviando señales de trading a través de feeds RSS

Esta es mi idea sobre cómo enviar nuestras señales de trading como FEEDS RSS, una popular forma de comunicarnos con los miembros de nuestra comunidad ahora mismo.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 06): Primeras mejoras (I)

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 06): Primeras mejoras (I)

En este artículo empezaremos a estabilizar todo el sistema, porque sin eso corremos el riesgo de no poder cumplir los siguientes pasos.
preview
Optimización móvil continua (Parte 8): Mejorando el programa y corrigiendo los errores encontrados

Optimización móvil continua (Parte 8): Mejorando el programa y corrigiendo los errores encontrados

A petición de los usuarios y lectores del presente ciclo de artículos, el programa ha sido modificado, y ahora podemos decir que el este artículo contiene la nueva versión del autooptimizador. Asimismo, hemos introducido en el autooptimizador tanto las mejoras solicitadas, como algunas nuevas cuya idea surgió durante la corrección del programa.
preview
Previsión usando modelos ARIMA en MQL5

Previsión usando modelos ARIMA en MQL5

En este artículo, continuaremos el desarrollo de la clase CArima para construir modelos ARIMA añadiendo métodos de predicción intuitivos.
preview
Algoritmos de optimización de la población: Algoritmo de enjambre de aves (Bird Swarm Algorithm, BSA)

Algoritmos de optimización de la población: Algoritmo de enjambre de aves (Bird Swarm Algorithm, BSA)

El artículo analiza un algoritmo BSA basado en el comportamiento de las aves, que se inspira en las interacciones colectivas de bandadas de aves en la naturaleza. Las diferentes estrategias de búsqueda de individuos en el BSA, que incluyen el cambio entre el comportamiento de vuelo, la vigilancia y la búsqueda de alimento, hacen que este algoritmo sea multidimensional. El algoritmo usa los principios del comportamiento de las bandadas, la comunicación, la adaptabilidad, el liderazgo y el seguimiento de las aves para encontrar con eficacia soluciones óptimas.
preview
Introducción a MQL5 (Parte 2): Variables predefinidas, funciones comunes y operadores de flujo de control

Introducción a MQL5 (Parte 2): Variables predefinidas, funciones comunes y operadores de flujo de control

En este artículo, seguiremos familiarizándonos con el lenguaje de programación MQL5. Esta serie de artículos no es solo un tutorial, sino también una puerta de entrada al mundo de la programación. ¿Qué hace especiales a estos artículos? Hemos procurado que las explicaciones sean sencillas para que los conceptos complejos resulten accesibles a todos. Aunque el material es accesible, para obtener los mejores resultados será necesario reproducir activamente todo lo que vamos a tratar. Solo así obtendremos el máximo beneficio de estos artículos.
preview
Regresiones espurias en Python

Regresiones espurias en Python

Las regresiones espurias ocurren cuando dos series de tiempo exhiben un alto grado de correlación puramente por casualidad, lo que conduce a resultados engañosos en el análisis de regresión. En tales casos, aunque las variables parezcan estar relacionadas, la correlación es casual y el modelo puede no ser confiable.
preview
Patrones de diseño en MQL5 (Parte 2): Patrones estructurales

Patrones de diseño en MQL5 (Parte 2): Patrones estructurales

En este artículo, seguiremos estudiando los patrones de diseño que permiten a los desarrolladores crear aplicaciones extensibles y fiables no solo en MQL5, sino también en otros lenguajes de programación. Esta vez hablaremos de un tipo diferente: los patrones estructurales. Asimismo, aprenderemos a diseñar sistemas usando las clases disponibles para formar estructuras mayores.
preview
Características del Wizard MQL5 que debe conocer (Parte 26): Medias móviles y el exponente de Hurst

Características del Wizard MQL5 que debe conocer (Parte 26): Medias móviles y el exponente de Hurst

El exponente de Hurst es una medida del grado de autocorrelación de una serie temporal a largo plazo. Se entiende que capta las propiedades a largo plazo de una serie temporal y, por tanto, tiene cierto peso en el análisis de series temporales, incluso fuera de las series temporales económicas/financieras. Sin embargo, nos centramos en sus posibles beneficios para los operadores, examinando cómo esta métrica podría combinarse con las medias móviles para crear una señal potencialmente sólida.
preview
Redes neuronales: así de sencillo (Parte 65): Aprendizaje supervisado ponderado por distancia (DWSL)

Redes neuronales: así de sencillo (Parte 65): Aprendizaje supervisado ponderado por distancia (DWSL)

En este artículo, le presentaremos un interesante algoritmo que se basa en la intersección de los métodos de aprendizaje supervisado y por refuerzo.
Representación gráfica de las pruebas: Mejora de la funcionalidad
Representación gráfica de las pruebas: Mejora de la funcionalidad

Representación gráfica de las pruebas: Mejora de la funcionalidad

Este artículo describe el programa que permite que las pruebas de estrategias sean muy similares al trading real.
preview
Evaluación de modelos ONNX usando métricas de regresión

Evaluación de modelos ONNX usando métricas de regresión

La regresión es una tarea que consiste en predecir un valor real a partir de un ejemplo sin etiquetar. Para evaluar la precisión de las predicciones de los modelos de regresión, se usan las llamadas métricas de regresión.
preview
Gestor de riesgos para el trading algorítmico

Gestor de riesgos para el trading algorítmico

Los objetivos de este artículo son: demostrar por qué el uso del gestor de riesgos es algo imprescindible, adaptar los principios del riesgo controlado en el trading algorítmico en una clase aparte, de modo que todo el mundo pueda comprobar de forma independiente la eficacia del enfoque de racionamiento del riesgo en el trading intradía y la inversión en los mercados financieros. En este artículo, detallaremos la escritura de una clase de gestor de riesgos para el trading algorítmico como continuación del artículo anterior sobre la escritura de un gestor de riesgos para el trading manual.
preview
Aprendizaje automático y Data Science (Parte 28): Predicción de múltiples futuros para el EURUSD mediante IA

Aprendizaje automático y Data Science (Parte 28): Predicción de múltiples futuros para el EURUSD mediante IA

Es una práctica común que muchos modelos de Inteligencia Artificial predigan un único valor futuro. Sin embargo, en este artículo profundizaremos en la poderosa técnica de utilizar modelos de aprendizaje automático para predecir múltiples valores futuros. Este enfoque, conocido como pronóstico de múltiples pasos, nos permite predecir no sólo el precio de cierre de mañana, sino también el de pasado mañana y más allá. Al dominar la previsión en varios pasos, los operadores y los científicos de datos pueden obtener conocimientos más profundos y tomar decisiones más informadas, mejorando significativamente sus capacidades de predicción y planificación estratégica.
Un ayudante para el trader basado en un análisis MACD ampliado
Un ayudante para el trader basado en un análisis MACD ampliado

Un ayudante para el trader basado en un análisis MACD ampliado

El script 'Trader's Assistant' (ayudante del trader), que sirve para tomar decisiones en la apertura de operaciones, se basa en un análisis ampliado del estado de MACD en las tres últimas barras de cualquier marco temporal. También se puede utilizar en backtesting.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte IX): Compatibilidad con MQL4 - Preparando los datos
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte IX): Compatibilidad con MQL4 - Preparando los datos

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte IX): Compatibilidad con MQL4 - Preparando los datos

En artículos anteriores, comenzamos a crear una gran biblioteca multiplataforma, cuyo cometido es simplificar la escritura de programas para las plataformas MetaTrader 5 y MetaTrader 4. En la novena parte, hemos creado una clase que monitoreará los eventos de modificación de las órdenes y posiciones de mercado. En el presente artículo, comenzaremos a desarrollar la biblioteca para hacerla totalmente compatible con MQL4.
preview
Patrones de diseño en MQL5 (Parte I): Patrones de creación (Creational Patterns)

Patrones de diseño en MQL5 (Parte I): Patrones de creación (Creational Patterns)

Existen métodos que pueden usarse para resolver problemas típicos. Una vez entendemos cómo utilizar estas técnicas una vez, podemos escribir programas de forma eficaz y aplicar el concepto DRY (No te repitas, en inglés, don't repeat yourself). En este contexto, resultan muy útiles los patrones de diseño que pueden aportar soluciones a problemas bien descritos y recurrentes.
preview
DoEasy. Funciones de servicio (Parte 2): Patrón "Barra interior"

DoEasy. Funciones de servicio (Parte 2): Patrón "Barra interior"

En este artículo, continuaremos el análisis de los patrones de precios en la biblioteca DoEasy. Así, crearemos la clase de patrón "Barra interior" de las formaciones Price Action.
preview
Integración en MQL5: Python

Integración en MQL5: Python

Python es un lenguaje de programación conocido y popular con muchas características, especialmente en los campos de las finanzas, la ciencia de datos, la Inteligencia Artificial y el Aprendizaje Automático. Python es una herramienta poderosa que también puede resultar útil en el trading. MQL5 nos permite utilizar este poderoso lenguaje como una integración para lograr nuestros objetivos de manera efectiva. En este artículo, compartiremos cómo podemos usar Python como una integración en MQL5 después de aprender información básica sobre Python.
preview
Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 4): Media móvil triangular - Señales del indicador

Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 4): Media móvil triangular - Señales del indicador

Por asesor multidivisa en este artículo entendemos un asesor, o un robot comercial que puede operar (abrir/cerrar órdenes, gestionar órdenes como Trailing Stop Loss y Trailing Profit) con más de un par de símbolos desde un gráfico. Esta vez usaremos un solo indicador, a saber, la media móvil triangular en uno o varios marcos temporales.
preview
Algoritmos de optimización de la población: Algoritmo de búsqueda gravitacional (GSA)

Algoritmos de optimización de la población: Algoritmo de búsqueda gravitacional (GSA)

El GSA es un algoritmo de optimización basado en la población e inspirado en la naturaleza no viviente. La simulación de alta fidelidad de la interacción entre los cuerpos físicos, gracias a la ley de la gravedad de Newton presente en el algoritmo, permite observar la mágica danza de los sistemas planetarios y los cúmulos galácticos, capaz de hipnotizar en la animación. Hoy vamos a analizar uno de los algoritmos de optimización más interesantes y originales. Adjuntamos un simulador de movimiento de objetos espaciales.
preview
Reimaginando estrategias clásicas en Python: Cruce de medias móviles (MAs, Moving Averages)

Reimaginando estrategias clásicas en Python: Cruce de medias móviles (MAs, Moving Averages)

En este artículo, revisamos la estrategia clásica de cruce de medias móviles para evaluar su eficacia actual. Dado el tiempo transcurrido desde su creación, exploramos las posibles mejoras que la IA puede aportar a esta estrategia de negociación tradicional. Mediante la incorporación de técnicas de IA, pretendemos aprovechar las capacidades predictivas avanzadas para optimizar potencialmente los puntos de entrada y salida de las operaciones, adaptarnos a las condiciones variables del mercado y mejorar el rendimiento global en comparación con los enfoques convencionales.
Gráficos en la biblioteca DoEasy (Parte 73): Objeto de formulario del elemento gráfico
Gráficos en la biblioteca DoEasy (Parte 73): Objeto de formulario del elemento gráfico

Gráficos en la biblioteca DoEasy (Parte 73): Objeto de formulario del elemento gráfico

En el presente artículo, iniciaremos un nuevo apartado del trabajo con gráficos. En esta ocasión, vamos a crear el objeto de estado del ratón, el objeto básico de todos los elementos gráficos y la clase de objeto de formulario de los elementos gráficos de la biblioteca.
preview
Cómo construir un EA que opere automáticamente (Parte 06): Tipos de cuentas (I)

Cómo construir un EA que opere automáticamente (Parte 06): Tipos de cuentas (I)

Aprenda a crear un EA que opere automáticamente de forma sencilla y segura. Hasta ahora nuestro EA puede funcionar en cualquier tipo de situación, pero aún no está listo para ser automatizado, por lo que tenemos que hacer algunas cosas.
preview
Cómo construir un EA que opere automáticamente (Parte 14): Automatización (VI)

Cómo construir un EA que opere automáticamente (Parte 14): Automatización (VI)

Aquí pondremos realmente en práctica todos los conocimientos de esta serie. Finalmente construiremos un sistema 100% automático y funcional. Pero para hacer esto, tendrás que aprender una última cosa.
preview
Estrategia comercial con el indicador de mejora de reconocimiento de velas Doji

Estrategia comercial con el indicador de mejora de reconocimiento de velas Doji

El indicador sobre metabarras ha detectado más velas que el clásico. Veamos si aporta un beneficio real en el trading automatizado.
preview
Modelos de clasificación de la biblioteca Scikit-learn y su exportación a ONNX

Modelos de clasificación de la biblioteca Scikit-learn y su exportación a ONNX

En este artículo, analizaremos el uso de todos los modelos de clasificación del paquete Scikit-learn para resolver el problema de la clasificación de los iris de Fisher; asimismo, intentaremos convertir estos al formato ONNX y usar los modelos resultantes en programas MQL5. También compararemos la precisión de los modelos originales y sus versiones ONNX en el conjunto de datos completo Iris dataset.