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
Creación de un sistema de trading automatizado
Creación de un sistema de trading automatizado

Creación de un sistema de trading automatizado

Debe admitir que resulta tentador convertirse en el afortunado dueño de un programa que le permite desarrollar un sistema de trading automatizado (STA) rentable en pocos minutos. Sólo tiene que introducir las entradas adecuadas y pulsar "Enter". Y aquí lo tiene, su STA probado y con una previsión de beneficio positiva. Pero al ver a miles de personas dedicando miles de horas en el desarrollo de este singular STA, que será como "coser y cantar", mis afirmaciones le resultarían, por decirlo suavemente, poco convincentes. Por una parte, esto parece realmente inalcanzable... Pero en mi opinión, esto tiene solución.
Kit del trader: Indicadores para el diseño
Kit del trader: Indicadores para el diseño

Kit del trader: Indicadores para el diseño

Este artículo incluye las principales tareas para el diseño de los indicadores, así como soluciones y automatizaciones.
Interfaces gráficas V: Control "Lista" (Capítulo 2)
Interfaces gráficas V: Control "Lista" (Capítulo 2)

Interfaces gráficas V: Control "Lista" (Capítulo 2)

En el primer capítulo de la quinta parte de la serie hemos desarrollado las clases para la creación de los controles como la barra de desplazamiento vertical y horizontal. En este artículo vamos a aplicarlas en la práctica. Esta vez diseñaremos la clase para la creación del control “Lista”, y la barra de desplazamiento vertical será su parte integrante.
Utilidad para la selección y navegación en MQL5 y MQL4: añadiendo las pestañas de "recordatorios" y guardando objetos gráficos
Utilidad para la selección y navegación en MQL5 y MQL4: añadiendo las pestañas de "recordatorios" y guardando objetos gráficos

Utilidad para la selección y navegación en MQL5 y MQL4: añadiendo las pestañas de "recordatorios" y guardando objetos gráficos

En este artículo, ampliaremos las posibilidades de la utilidad creada anteriormente, añadiéndole pestañas para seleccionar los instrumentos que necesitemos. Asimismo, aprenderemos a guardar los objetos gráficos creados en el gráfico de un instrumento determinado, para no crearlos de nuevo constantemente. E incluso aprenderemos a trabajar solo con los instrumentos que han sido elegidos preliminarmente con la ayuda del sitio web necesario.
Recetas MQL5 - procesamiento del evento BookEvent
Recetas MQL5 - procesamiento del evento BookEvent

Recetas MQL5 - procesamiento del evento BookEvent

En el artículo se estudia el evento de la profundidad de mercado BookEvent y su principio de procesamiento. En calidad de ejemplo se crea un programa MQL5, que procesa el estado de la profundidad de mercado. Se usa una aproximación orientada a objetos. Los resultados del procesamiento se muestran en la pantalla en forma de panel y de niveles de profundidad.
Matemáticas del mercado: beneficios, pérdidas, costes
Matemáticas del mercado: beneficios, pérdidas, costes

Matemáticas del mercado: beneficios, pérdidas, costes

En este artículo, le mostraremos cómo calcular el beneficio o las pérdidas totales de cualquier operación, incluyendo la comisión y el swap. Hoy crearemos un modelo matemático más preciso, escribiremos el código basado en él y lo compararemos con un referente. También intentaremos meternos analizar los entresijos de la función principal de MQL5 para calcular el beneficio y llegaremos al fondo de todos los valores necesarios de la especificación.
Pronóstico One-Step-Ahead de la econometría EURUSD
Pronóstico One-Step-Ahead de la econometría EURUSD

Pronóstico One-Step-Ahead de la econometría EURUSD

El artículo se centra en la previsión de step-ahead para EURUSD utilizando software EViews y una evaluación adicional de la predicción de resultados en los programas de EViews. La previsión consiste en modelos de regresión y se evalúa por medio de un Asesor Experto para MetaTrader 4.
Notificaciones por SMS sobre el estado del Asesor Experto
Notificaciones por SMS sobre el estado del Asesor Experto

Notificaciones por SMS sobre el estado del Asesor Experto

El desarrollo de un sistema de notificaciones por SMS que le informa sobre el estado de su Asesor Experto para estar siempre al corriente de cualquier situación crítica dondequiera que esté.
Interfaces gráficas VII: Control "Pestañas" (Capítulo 2)
Interfaces gráficas VII: Control "Pestañas" (Capítulo 2)

Interfaces gráficas VII: Control "Pestañas" (Capítulo 2)

En el primer capítulo de la séptima parte han sido presentadas tres clases de los controles para la creación de las tablas: tabla de las etiquetas de texto (CLabelsTable), tabla de los campos de edición (CTable) y la tabla dibujada (CCanvasTable). En este artículo (capítulo 2) hablaremos del control “Pestañas”.
Experto comercial universal: El comercio en grupo y la gestión de la cartera de estrategias (Parte 4)
Experto comercial universal: El comercio en grupo y la gestión de la cartera de estrategias (Parte 4)

Experto comercial universal: El comercio en grupo y la gestión de la cartera de estrategias (Parte 4)

En la parte definitiva de esta serie de artículos sobre el motor comercial CStrategy, estudiaremos el funcionamiento simultáneo de múltiples algoritmos comerciales, la descarga de estrategias desde archivos XML, así como la presentación de un sencillo panel para la selección de expertos, que se encuentra dentro de un módulo ejecutable único, y veremos la gestión de los modos comerciales de los mismos.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 36): El objeto de series temporales de todos los periodos utilizados del símbolo
Trabajando con las series temporales en la biblioteca DoEasy (Parte 36): El objeto de series temporales de todos los periodos utilizados del símbolo

Trabajando con las series temporales en la biblioteca DoEasy (Parte 36): El objeto de series temporales de todos los periodos utilizados del símbolo

En el artículo, vamos a analizar la combinación de las listas de objetos de barra de cada periodo utilizado del símbolo en un objeto de series temporales del símbolo. De esta forma, tendremos preparado para cada símbolo un objeto que guarde las listas de todos los periodos utilizados de la serie temporal de un símbolo.
Programamos los modos de funcionamiento del Asesor Experto usando la programación orientada a objetos
Programamos los modos de funcionamiento del Asesor Experto usando la programación orientada a objetos

Programamos los modos de funcionamiento del Asesor Experto usando la programación orientada a objetos

En este artículo se considera la idea de la programación multi-modo de los robots comerciales usando el lenguaje MQL5. Se utiliza el enfoque orientado a objetos para la implementación de cada uno de los modos. Se muestra el ejemplo de la jerarquía de las clases de régimen y el ejemplo de las clases para el testeo (prueba). Se supone que la programación multi-modo de los robots comerciales toma en consideración las particularidades de cada modo de trabajo del Asesor Experto MQL5. Para la identificación de los modos se crean las funciones y enumeraciones.
preview
Scalping Orderflow en MQL5

Scalping Orderflow en MQL5

Este Asesor Experto de MetaTrader 5 implementa una estrategia Scalping Orderflow con gestión avanzada de riesgos. Utiliza múltiples indicadores técnicos para identificar oportunidades de negociación basadas en los desequilibrios del flujo de órdenes (Orderflow). Las pruebas retrospectivas muestran una rentabilidad potencial, pero resaltan la necesidad de una mayor optimización, especialmente en la gestión de riesgos y en los ratios de resultados comerciales. Adecuado para operadores experimentados, requiere pruebas y comprensión exhaustivas antes de la implementación en vivo.
preview
Gestor de riesgos para el trading manual

Gestor de riesgos para el trading manual

En este artículo vamos a discutir en detalle cómo escribir una clase de gestor de riesgos para el comercio manual a partir de cero. Esta clase también puede utilizarse como clase base para que la hereden los traders algorítmicos que utilizan programas automatizados.
Cómo deshacerse del lastre de las DLL caseras
Cómo deshacerse del lastre de las DLL caseras

Cómo deshacerse del lastre de las DLL caseras

Si a un programador de MQL5 no le basta con la funcional del lenguaje, entonces deberá recurrir a instrumentos adicionales. Para ello debrá usar otro lenguaje de programación y crear un DLL intermedio. En MQL5 existe un mecanismo de representación de diversos tipos de datos, con ayuda de estructuras y su transmisión a API, pero por desgracia, el MQL5 no responde a la cuestión de cómo extraer los datos del índice adoptado. En este artículo vamos a poner punto final a esta cuestión, mostrando mecanismos sencillos de intercambio de tipos complejos de datos y cómo trabajar con ellos.
Crear aplicación interactiva para visualizar los canales RSS en MetaTrader 5
Crear aplicación interactiva para visualizar los canales RSS en MetaTrader 5

Crear aplicación interactiva para visualizar los canales RSS en MetaTrader 5

En este artículo se describe cómo crear la aplicación que visualiza los canales RSS. Además, hablaremos sobre los aspectos del uso de la Biblioteca estándar durante la creación de los programas interactivos en MetaTrader 5.
Interfaces gráficas I: Probamos la librería en los programas de diferentes tipos y en el terminal MetaTrader 4 (Capítulo 5)
Interfaces gráficas I: Probamos la librería en los programas de diferentes tipos y en el terminal MetaTrader 4 (Capítulo 5)

Interfaces gráficas I: Probamos la librería en los programas de diferentes tipos y en el terminal MetaTrader 4 (Capítulo 5)

En el capítulo anterior de la primera parte de la serie sobre las interfaces gráficas, en la clase del formulario han sido añadidos los métodos que permiten manejar el formulario con los clics en los controles. En el presente artículo vamos a testear el trabajo realizado en diferentes tipos de programas MQL, como indicadores y scripts. En vista de que se ha planteado la tarea de diseñar una librería multiplataforma (en marco de las plataformas comerciales MetaTrader), también realizaremos las pruebas en MetaTrader 4.
preview
Aprendizaje automático y data science (Parte 03): Regresión matricial

Aprendizaje automático y data science (Parte 03): Regresión matricial

En esta ocasión, vamos a crear modelos usando matrices: estas ofrecen una gran flexibilidad y permiten crear modelos potentes que pueden manejar no solo cinco variables independientes, sino muchas otras, tantas como los límites computacionales de nuestro ordenador nos permitan. El presente artículo será muy interesante, eso seguro.
Estudio de técnicas de análisis de velas (Parte IV): Actualizaciones y adiciones a la aplicación
Estudio de técnicas de análisis de velas (Parte IV): Actualizaciones y adiciones a la aplicación

Estudio de técnicas de análisis de velas (Parte IV): Actualizaciones y adiciones a la aplicación

En el presente artículo, vamos a presentar la siguiente versión de la aplicación Pattern Analyzer. En esta versión se han corregido algunas imperfecciones y se han añadido nuevas capacidades; además, se ha dado un nuevo enfoque a la comodidad y la actualidad de la interfaz actual. En este caso, además, se han tenido en cuenta las sugerencias reflejadas en los comentarios de los artículos anteriores. Podrá familiarizarse con el resultado leyendo el presente artículo.
Lite_EXPERT2.mqh: Un conjunto operativo para los desarrolladores de Asesores Expertos
Lite_EXPERT2.mqh: Un conjunto operativo para los desarrolladores de Asesores Expertos

Lite_EXPERT2.mqh: Un conjunto operativo para los desarrolladores de Asesores Expertos

Este artículo es una continuación de la serie de artículos "Asesores Expertos basados en sistemas populares de trading, y un poco de alquimia en la optimización de robots". Permite familiarizar los lectores con una librería de funciones más universales del archivo Lite_EXPERT2.mqh.
preview
Algoritmos de optimización de la población: Optimización de colonias de hormigas (ACO)

Algoritmos de optimización de la población: Optimización de colonias de hormigas (ACO)

En esta ocasión, analizaremos el algoritmo de optimización de colonias de hormigas (ACO). El algoritmo es bastante interesante y ambiguo al mismo tiempo. Intentaremos crear un nuevo tipo de ACO.
Recetas MQL5 – Obteniendo las propiedades de una posición de cobertura abierta
Recetas MQL5 – Obteniendo las propiedades de una posición de cobertura abierta

Recetas MQL5 – Obteniendo las propiedades de una posición de cobertura abierta

La plataforma MetaTrader 5 no es solo una plataforma multimercado, sino que también permite usar diferentes sistemas de registro de posiciones. Estas posibilidades amplian considerablemente el instrumental para la implementación y formalización de las ideas comerciales. En el artículo, vamos a hablar sobre cómo procesar y considerar las propiedades de las posiciones al llevar su registro de forma independiente ("cobertura"). Así, en el artículo proponemos una clase derivada, mostrando a continuación ejemplos de procesamiento y obtención de las propiedades de la posición de cobertura.
preview
Buscando patrones estacionales en el mercado de divisas con la ayuda del algoritmo CatBoost

Buscando patrones estacionales en el mercado de divisas con la ayuda del algoritmo CatBoost

En el presente artículo, mostramos la posibilidad de crear modelos de aprendizaje automático con filtros temporales y también descubrimos la efectividad de este enfoque. Ahora, podremos descartar el factor humano, diciéndole simplemente al modelo: "Quiero que comercies a una hora determinada de un día concreto de la semana". Así, podremos delegar en el algoritmo la búsqueda de patrones.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 1): Para EAs e Indicadores Técnicos

Creación de un modelo de restricción de tendencia de velas (Parte 1): Para EAs e Indicadores Técnicos

Este artículo está dirigido a principiantes y desarrolladores avanzados de MQL5. Proporciona un fragmento de código para definir y limitar los indicadores generadores de señales a tendencias en plazos superiores. De este modo, los operadores pueden mejorar sus estrategias incorporando una perspectiva de mercado más amplia, lo que da lugar a señales de negociación potencialmente más sólidas y fiables.
preview
Recetas MQL5 – Calendario económico

Recetas MQL5 – Calendario económico

El artículo está dedicado a las posibilidades programáticas del trabajo con el Calendario Económico. Para ello, crearemos una clase para acceder de forma simplificada a las propiedades del calendario y recibir eventos. Como ejemplo práctico, proponemos programar un indicador que usa datos sobre el volumen neto de las posiciones especulativas de CFTC.
preview
Redes neuronales: así de sencillo (Parte 5): Cálculos multihilo en OpenCL

Redes neuronales: así de sencillo (Parte 5): Cálculos multihilo en OpenCL

Ya hemos analizado algunos tipos de implementación de redes neuronales. Podemos ver con facilidad que se repiten las mismas operaciones para cada neurona de la red. Y aquí sentimos el legítimo deseo de aprovechar las posibilidades que ofrece la computación multihilo de la tecnología moderna para acelerar el proceso de aprendizaje de una red neuronal. En el presente artículo, analizaremos una de las opciones para tal implementación.
preview
Redes neuronales: así de sencillo (Parte 28): Algoritmo de gradiente de políticas

Redes neuronales: así de sencillo (Parte 28): Algoritmo de gradiente de políticas

Continuamos analizando los métodos de aprendizaje por refuerzo. En el artículo anterior, nos familiarizamos con el método de aprendizaje Q profundo, en el que entrenamos un modelo para predecir la próxima recompensa dependiendo de la acción realizada en una situación particular. Luego realizamos una acción según nuestra política y la recompensa esperada, pero no siempre es posible aproximar la función Q, o su aproximación no ofrece el resultado deseado. En estos casos, los métodos de aproximación no se utilizan para funciones de utilidad, sino para una política (estrategia) de acciones directa. Precisamente a tales métodos pertenece el gradiente de políticas o policy gradient.
Cálculo de Características Integrales de Emisiones de Indicador
Cálculo de Características Integrales de Emisiones de Indicador

Cálculo de Características Integrales de Emisiones de Indicador

Las emisiones de indicador son un área poco estudiada en investigación de mercado. Principalmente, esto se debe a la dificultad del análisis a causa de procesamiento de arrays muy largos de datos con variaciones cronológicas. El análisis gráfico existente es demasiado intensivo en recursos, y por ello ha provocado el desarrollo de un algoritmo parsimonioso que usa series cronológicas de emisiones. Este artículo demuestra cómo el análisis visual (imagen intuitiva) se puede sustituir con el estudio de características integrales de emisiones. Puede ser de interés tanto para traders como para creadores de sistemas de trading automatizados.
preview
Cómo construir un EA que opere automáticamente (Parte 08): OnTradeTransaction

Cómo construir un EA que opere automáticamente (Parte 08): OnTradeTransaction

En este artículo, te mostraré cómo puedes utilizar el sistema de manejo de eventos para poder procesar con más agilidad y de mejor manera las cuestiones relacionadas con el sistema de órdenes, para que el EA sea más rápido. Así, éste no tendrá que estar buscando información todo el tiempo.
preview
Desarrollo de un EA comercial desde cero (Parte 25): Dotando de robustez al sistema (II)

Desarrollo de un EA comercial desde cero (Parte 25): Dotando de robustez al sistema (II)

Aquí terminaremos de dar un empujón en el rendimiento del EA... así que prepárense para una larga lectura. Lo primero que haremos para que nuestro EA sea robusto es eliminar del código todo y absolutamente todo lo que no forme parte del sistema comercial.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte III): Colección de órdenes y posiciones de mercado, búsqueda y filtrado
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte III): Colección de órdenes y posiciones de mercado, búsqueda y filtrado

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte III): Colección de órdenes y posiciones de mercado, búsqueda y filtrado

En el primer artículo, comenzamos la creación de una gran biblioteca multiplataforma para construir con facilidad programas en las plataformas MetaTrader 5 y MetaTrader 4. Acto seguido, continuamos el desarrollo de la biblioteca y corregimos las órdenes y transacciones históricas. En esta ocasión, vamos a crear una clase que nos permita elegir y filtrar cómodamente órdenes y posiciones en las listas de colecciones; en concreto, crearemos un objeto básico de la biblioteca, llamado Engine, y añadiremos a la biblioteca una colección de órdenes y posiciones de mercado.
preview
Aprendizaje automático y data science (Parte 05): Árboles de decisión usando como ejemplo las condiciones meteorológicas para jugar al tenis

Aprendizaje automático y data science (Parte 05): Árboles de decisión usando como ejemplo las condiciones meteorológicas para jugar al tenis

Los árboles de decisión clasifican los datos imitando la forma de pensar de los seres humanos. En este artículo, veremos cómo construir árboles de decisión y usar estos para clasificar y predecir datos. El objetivo principal del algoritmo del árbol de decisión es dividir la muestra en datos con "impurezas" y en datos "limpios" o próximos a los nodos.
preview
Introducción a MQL5 (Parte 5): Funciones de trabajo con arrays para principiantes

Introducción a MQL5 (Parte 5): Funciones de trabajo con arrays para principiantes

En el quinto artículo de nuestra serie, nos familiarizaremos con el mundo de los arrays en MQL5. Este artículo ha sido pensado para principiantes. En este artículo intentaremos repasar conceptos complejos de programación de manera simplificada para que el material resulte comprensible para todos. Asimismo, exploraremos conceptos básicos, discutiremos diferentes cuestiones y compartiremos conocimientos.
preview
Cómo construir un EA que opere automáticamente (Parte 12): Automatización (IV)

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

Si crees que los sistemas automatizados son sencillos, eso indica que aún no has entendido del todo lo necesario para crearlos. En este texto, hablaremos de un problema al que se enfrentan muchos Expert Advisors: la ejecución indiscriminada de órdenes, y de una posible solución a este problema.
preview
Analizando por qué fallan los asesores expertos

Analizando por qué fallan los asesores expertos

En este artículo, ofrecemos un análisis de los datos de divisas para entender mejor por qué los asesores expertos pueden tener un buen rendimiento en algunos intervalos y un mal rendimiento en otros.
El mercado y la física de sus patrones globales
El mercado y la física de sus patrones globales

El mercado y la física de sus patrones globales

En el presente artículo trataremos de comprobar la suposición de que cualquier sistema con un mínimo conocimiento del mercado puede operar a escala global. No vamos a inventar teorías ni leyes: reflexionaremos únicamente sobre la base de hechos conocidos por todos, convirtiendo paulatinamente dichos hechos al lenguaje del análisis matemático.
Desarrollando un algoritmo de autoadaptación (Parte II): Aumentando la efectividad
Desarrollando un algoritmo de autoadaptación (Parte II): Aumentando la efectividad

Desarrollando un algoritmo de autoadaptación (Parte II): Aumentando la efectividad

En este artículo, continuaremos el tema del anterior. No obstante, primero flexibilizaremos el algoritmo desarrollado anteriormente. El algoritmo se ha vuelto más estable, con un aumento en el número de velas en la ventana de análisis o con un aumento en el porcentaje del umbral del preponderancia de velas descendentes o ascendentes. Hemos tenido que llegar a un compromiso y establecer un tamaño de muestra más grande para el análisis o un porcentaje mayor de preponderancia de la vela predominante.
Resultados del Mercado MQL5 en el segundo periodo de 2013
Resultados del Mercado MQL5 en el segundo periodo de 2013

Resultados del Mercado MQL5 en el segundo periodo de 2013

Tras año y medio de exitoso trabajo, el Mercado MQL5 se ha convertido en la tienda más grande de trading de estrategias comerciales e indicadores técnicos. En ella se han publicado cerca de 800 aplicaciones comerciales de 350 desarrolladores de todo el mundo. Además, los traders ya han comprado e instalado en sus terminales MetaTrader 5 más de 100.000 programas comerciales.
Implementando OLAP en la negociación (Parte 3): analizando las cotizaciones con el fin de desarrollar las estrategias comerciales
Implementando OLAP en la negociación (Parte 3): analizando las cotizaciones con el fin de desarrollar las estrategias comerciales

Implementando OLAP en la negociación (Parte 3): analizando las cotizaciones con el fin de desarrollar las estrategias comerciales

En este artículo, continuaremos analizando la tecnología OLAP en aplicación al trading, ampliando la funcionalidad representada en dos artículos anteriores. Esta vez, al análisis operativo se le someterán las cotizaciones. Mostraremos cómo se hacen y se comprueban las hipótesis sobre las estrategias comerciales a base de los indicadores agregados del historial. Además, presentaremos los Asesores Expertos para analizar las regularidades barra por barra y el trading adaptativo.
Ampliación de la librería estándar de MQL5 y la reutilización del código
Ampliación de la librería estándar de MQL5 y la reutilización del código

Ampliación de la librería estándar de MQL5 y la reutilización del código

La librería estándar de MQL5 le facilita la vida como desarrollador. No obstante, no abarca todas las necesidades de todos los desarrolladores del mundo, con lo cual querrá tener a su disposición más material personalizado para dar un paso más y ampliarla. En este artículo, se describe la integración del indicador técnico Zig-Zag de MetaQuotes en la librería estándar. Para conseguir nuestro objetivo, nos hemos basado en la filosofía de diseño de MetaQuotes.