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
Desarrollo de un sistema de repetición (Parte 45): Proyecto Chart Trade (IV)

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

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

Desarrollo de un sistema de repetición (Parte 44): Proyecto Chart Trade (III)

En el artículo anterior, expliqué cómo puedes manipular los datos de la plantilla para usarlos en un OBJ_CHART. Allí solo introduje el tema sin entrar en muchos detalles, ya que en esa versión el trabajo se hizo de una manera muy simplificada. Sin embargo, se hizo de esa forma precisamente para facilitar la explicación del contenido. Pues, a pesar de parecer simple hacer ciertas cosas, algunas no son tan evidentes, y sin comprender la parte más simple y básica, no entenderás realmente lo que estoy haciendo.
preview
Desarrollo de un sistema de repetición (Parte 43): Proyecto Chart Trade (II)

Desarrollo de un sistema de repetición (Parte 43): Proyecto Chart Trade (II)

Gran parte de las personas que quieren, o desean aprender a programar, no tienen en realidad idea de lo que están haciendo. Lo que hacen es intentar crear las cosas de una determinada manera. Sin embargo, cuando programamos no estamos realmente intentando crear una solución. Si intentas hacerlo de esta manera, generarás más problemas que soluciones. Aquí haremos algo un poco más avanzado, y por consecuencia diferente.
preview
Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 6): Dos indicadores RSI se cruzan entre sí

Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 6): Dos indicadores RSI se cruzan entre sí

Por asesor multidivisa en este artículo nos referimos a un asesor o robot comercial que utiliza dos indicadores RSI con líneas de intersección: un RSI rápido que se cruza con uno lento.
preview
Modelos de regresión de la biblioteca Scikit-learn y su exportación a ONNX

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

En este artículo exploraremos la aplicación de modelos de regresión del paquete Scikit-learn e intentaremos convertirlos al formato ONNX y utilizaremos los modelos resultantes dentro de programas MQL5. Adicionalmente, compararemos la precisión de los modelos originales con sus versiones ONNX tanto para precisión flotante como doble. Además, examinaremos la representación ONNX de los modelos de regresión con el fin de comprender mejor su estructura interna y sus principios de funcionamiento.
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
Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5)

Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5)

El presente artículo supone la quinta parte de la serie que describe las etapas de desarrollo de un cliente MQL5 nativo para el protocolo MQTT 5.0. Hoy describiremos la estructura de los paquetes PUBLISH: cómo establecemos sus banderas de publicación (Publish Flags), codificamos cadenas de nombres de temas y establecemos IDs de paquetes cuando es necesario.
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
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
Algoritmos de optimización de la población: microsistema inmune artificial (Micro Artificial immune system, Micro-AIS)

Algoritmos de optimización de la población: microsistema inmune artificial (Micro Artificial immune system, Micro-AIS)

El artículo habla de un método de optimización basado en los principios del sistema inmune del organismo -Micro Artificial immune system, (Micro-AIS)-, una modificación del AIS. El Micro-AIS usa un modelo más simple del sistema inmunitario y operaciones sencillas de procesamiento de la información inmunitaria. El artículo también analizará las ventajas e inconvenientes del Micro-AIS en comparación con el AIS convencional.
preview
Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables

Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables

Continuamos la serie para principiantes. Hoy veremos cómo crear constantes y variables, además de registrar la fecha, los colores y otros datos útiles. Asimismo, aprenderemos a crear enumeraciones como días de la semana o estilos de cadena (sólido, punteado, etc.). Las variables y las expresiones son la base de la programación: se encuentran necesariamente en el 99% de los programas, por lo que comprenderlas es fundamental. Y así, si es usted nuevo en el mundo de la programación, este es un buen comienzo. Nivel de conocimientos de programación: muy básico, dentro del ámbito de mi artículo anterior (el enlace está al principio).
preview
Algoritmos de optimización de la población: Algoritmo híbrido de optimización de forrajeo bacteriano con algoritmo genético (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)

Algoritmos de optimización de la población: Algoritmo híbrido de optimización de forrajeo bacteriano con algoritmo genético (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)

Este artículo presenta un nuevo enfoque para resolver problemas de optimización combinando las ideas de los algoritmos de optimización de forrajeo bacteriano (BFO) y las técnicas utilizadas en el algoritmo genético (GA) en un algoritmo híbrido BFO-GA. Dicha técnica utiliza enjambres bacterianos para buscar una solución óptima de manera global y operadores genéticos para refinar los óptimos locales. A diferencia del BFO original, ahora las bacterias pueden mutar y heredar genes.
preview
Redes neuronales: así de sencillo (Parte 71): Previsión de estados futuros basada en objetivos (GCPC)

Redes neuronales: así de sencillo (Parte 71): Previsión de estados futuros basada en objetivos (GCPC)

En trabajos anteriores, hemos introducido el método del Decision Transformer y varios algoritmos derivados de él. Asimismo, hemos experimentado con distintos métodos de fijación de objetivos. Durante los experimentos, hemos trabajado con distintas formas de fijar objetivos, pero el aprendizaje de la trayectoria ya recorrida por parte del modelo siempre quedaba fuera de nuestra atención. En este artículo, queremos presentar un método que llenará este vacío.
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
GIT: ¿Pero qué es esto?

GIT: ¿Pero qué es esto?

En este artículo presentaré una herramienta de suma importancia para quienes desarrollan programas. Si no conoces GIT, consulta este artículo para tener una noción de lo que se trata esta herramienta y cómo usarla junto al MQL5.
preview
Desarrollo de un sistema de repetición (Parte 42): Proyecto Chart Trade (I)

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

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

Redes neuronales: así de sencillo (Parte 69): Restricción de la política de comportamiento basada en la densidad de datos offline (SPOT)

En el aprendizaje offline, utilizamos un conjunto de datos fijo, lo que limita la cobertura de la diversidad del entorno. Durante el proceso de aprendizaje, nuestro Agente puede generar acciones fuera de dicho conjunto. Si no hay retroalimentación del entorno, la corrección de las evaluaciones de tales acciones será cuestionable. Mantener la política del Agente dentro de la muestra de entrenamiento se convierte así en un aspecto importante para garantizar la solidez del entrenamiento. De eso hablaremos en este artículo.
preview
Patrones de diseño en MQL5 (Parte 4): Patrones conductuales 2

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

Este artículo concluye la serie sobre patrones de diseño en ingeniería de software. Ya hemos mencionado que existen tres tipos de patrones de diseño: de creación, estructurales y conductuales. Hoy perfeccionaremos los patrones conductuales restantes, que nos ayudarán a especificar la forma en que interactúan los objetos de manera que nuestro código sea limpio.
preview
Algoritmos de optimización de la población: Algoritmos de estrategias evolutivas (Evolution Strategies, (μ,λ)-ES y (μ+λ)-ES)

Algoritmos de optimización de la población: Algoritmos de estrategias evolutivas (Evolution Strategies, (μ,λ)-ES y (μ+λ)-ES)

En este artículo, analizaremos un grupo de algoritmos de optimización conocidos como "estrategias evolutivas" (Evolution Strategies o ES). Se encuentran entre los primeros algoritmos basados en poblaciones que usan principios evolutivos para encontrar soluciones óptimas. Hoy le presentaremos los cambios introducidos en las variantes clásicas de ES y revisaremos la función de prueba y la metodología del banco de pruebas para los algoritmos.
preview
Aprendizaje automático y Data Science (Parte 17): ¿Crece el dinero en los árboles? Bosques aleatorios en el mercado Fórex

Aprendizaje automático y Data Science (Parte 17): ¿Crece el dinero en los árboles? Bosques aleatorios en el mercado Fórex

Este artículo le presentará los secretos de la alquimia algorítmica, introduciéndole con precisión las particularidades de los paisajes financieros. Asimismo, aprenderá cómo los bosques aleatorios transforman los datos en predicciones y le servirán de ayuda al navegar por las complejidades de los mercados financieros. Intentaremos identificar el papel de los bosques aleatorios en los datos financieros y comprobaremos si pueden ayudar a aumentar los beneficios.
preview
Indicador de posiciones históricas en el gráfico como diagrama de sus ganancias/pérdidas

Indicador de posiciones históricas en el gráfico como diagrama de sus ganancias/pérdidas

En el artículo analizaremos una variante para obtener información sobre posiciones cerradas usando la historia de sus transacciones. Asimismo, crearemos un indicador sencillo que mostrará en forma de gráfico los beneficios/pérdidas aproximados de las posiciones en cada barra.
preview
Redes neuronales: así de sencillo (Parte 68): Optimización de políticas offline basada en preferencias

Redes neuronales: así de sencillo (Parte 68): Optimización de políticas offline basada en preferencias

Desde los primeros artículos sobre el aprendizaje por refuerzo, hemos tocado de un modo u otro dos problemas: la exploración del entorno y la definición de la función de recompensa. Los artículos más recientes se han centrado en el problema de la exploración en el aprendizaje offline. En este artículo, queremos presentar un algoritmo cuyos autores han abandonado por completo la función de recompensa.
preview
Características del Wizard MQL5 que debe conocer (Parte 09): Combinación de clusterización de K-medias con ondas fractales

Características del Wizard MQL5 que debe conocer (Parte 09): Combinación de clusterización de K-medias con ondas fractales

La clusterización de K-medias adopta el enfoque de agrupar puntos de datos como un proceso centrado inicialmente en una macro representación del conjunto de datos en la que se aplican centroides de clúster generados aleatoriamente. A continuación, dichos centroides se escalan y ajustan para representar con precisión el conjunto de datos. En el presente artículo, hablaremos de la clusterización y de varios usos de la misma.
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
Filtrado y extracción de características en el dominio de la frecuencia

Filtrado y extracción de características en el dominio de la frecuencia

En este artículo, analizaremos la aplicación de filtros digitales a series temporales representadas en el dominio de la frecuencia con el fin de extraer características únicas que puedan resultar útiles para los modelos de predicción.
preview
Cómo ganar dinero ejecutando encargos en el servicio "Freelance"

Cómo ganar dinero ejecutando encargos en el servicio "Freelance"

MQL5 Freelance es un servicio en línea donde los desarrolladores escriben aplicaciones comerciales para los tráders clientes a cambio de una remuneración. El servicio funciona con éxito desde 2010: hasta el momento se han realizado más de 100 000 trabajos con un coste total de 7 millones de dólares. Como puede ver, el servicio opera con unas cifras considerables.
preview
Aprendizaje automático y Data Science (Parte 16): Una nueva mirada a los árboles de decisión

Aprendizaje automático y Data Science (Parte 16): Una nueva mirada a los árboles de decisión

En la última parte de nuestra serie sobre aprendizaje automático y trabajo con big data, vamos a volver a los árboles de decisión. Este artículo va dirigido a los tráders que desean comprender el papel de los árboles de decisión en el análisis de las tendencias del mercado. Asimismo, contiene toda la información básica sobre la estructura, la finalidad y el uso de estos árboles. Hoy analizaremos las raíces y ramas de los árboles algorítmicos y veremos cuál es su potencial en relación con las decisiones comerciales. También echaremos juntos un nuevo vistazo a los árboles de decisión y veremos cómo pueden ayudarnos a superar los retos de los mercados financieros.
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
Asesor Experto Grid-Hedge Modificado en MQL5 (Parte I): Creamos un sencillo asesor de cobertura

Asesor Experto Grid-Hedge Modificado en MQL5 (Parte I): Creamos un sencillo asesor de cobertura

Hoy crearemos un sencillo asesor de cobertura como base para nuestro asesor Grid-Hedge más avanzado, que será una mezcla de estrategias de rejilla y cobertura clásicas. Al final de este artículo, usted sabrá cómo crear una estrategia de cobertura simple y lo que la gente opina sobre la rentabilidad de esta estrategia.
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.
preview
Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 5): Bandas de Bollinger en el Canal de Keltner - Señales de Indicador

Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 5): Bandas de Bollinger en el Canal de Keltner - Señales de Indicador

En este artículo, entenderemos por asesor multidivisa un asesor o robot comercial que puede comerciar (abrir/cerrar órdenes, gestionar órdenes, por ejemplo, trailing-stop y trailing-profit, etc.) con más de un par de símbolos de un gráfico. En este artículo, usaremos las señales de dos indicadores, las Bandas de Bollinger® y el Canal de Keltner.
preview
Análisis cuantitativo en MQL5: implementamos un algoritmo prometedor

Análisis cuantitativo en MQL5: implementamos un algoritmo prometedor

Hoy veremos qué es el análisis cuantitativo, cómo lo utilizan los grandes jugadores y crearemos uno de los algoritmos de análisis cuantitativo en MQL5.
preview
Redes neuronales: así de sencillo (Parte 67): Utilizamos la experiencia adquirida para afrontar nuevos retos

Redes neuronales: así de sencillo (Parte 67): Utilizamos la experiencia adquirida para afrontar nuevos retos

En este artículo, seguiremos hablando de los métodos de recopilación de datos en una muestra de entrenamiento. Obviamente, en el proceso de entrenamiento será necesaria una interacción constante con el entorno, aunque con frecuencia se dan situaciones diferentes.
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
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
Marcado de datos en el análisis de series temporales (Parte 4): Descomposición de la interpretabilidad usando el marcado de datos

Marcado de datos en el análisis de series temporales (Parte 4): Descomposición de la interpretabilidad usando el 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
Patrones de diseño en MQL5 (Parte 3): Patrones conductuales 1

Patrones de diseño en MQL5 (Parte 3): Patrones conductuales 1

En el nuevo artículo de la serie sobre patrones de diseño, nos ocuparemos de los patrones conductuales para comprender cómo crear de forma eficaz métodos de interacción entre los objetos creados. Diseñando estos patrones conductuales, podremos entender cómo construir software reutilizable, extensible y comprobable.
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
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
Características del Wizard MQL5 que debe conocer (Parte 08): Perceptrones

Características del Wizard MQL5 que debe conocer (Parte 08): Perceptrones

Los perceptrones, o redes con una sola capa oculta, pueden ser una buena opción para quienes estén familiarizados con los fundamentos del comercio automatizado y quieran sumergirse en las redes neuronales. Paso a paso veremos como se pueden implementar en el ensamblado de clases de señales que forma parte de las clases del Wizard MQL5 para asesores expertos.