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
Recetas MQL5 - procesamiento del evento TradeTransaction
Recetas MQL5 - procesamiento del evento TradeTransaction

Recetas MQL5 - procesamiento del evento TradeTransaction

En el artículo se describen las posibilidades del lenguaje MQL5 desde el punto de vista de la programación dirigida por eventos. La ventaja de este enfoque consiste en que el programa puede obtener información sobre la ejecución por etapas de la operación comercial. Se presenta un ejemplo de cómo con la ayuda del procesador del evento TradeTransaction se puede obtener y procesar la información sobre las acciones comerciales realizadas. Pienso que este enfoque se puede aplicar con toda tranquilidad para copiar las operaciones comerciales desde un terminal a otro.
Optimización visual de la rentabilidad de indicadores y señales
Optimización visual de la rentabilidad de indicadores y señales

Optimización visual de la rentabilidad de indicadores y señales

Este artículo es una continuación y un desarrollo de mi artículo anterior "Pruebas visuales y rentabilidad de los indicadores y señales". Después de haber añadido un poco de interactividad al proceso de cambio de los parámetros y cambiado los objetivos del estudio, he podido conseguir una nueva herramienta que no sólo muestra los posibles resultados del trading en base a las señales que se usan, sino también nos permite obtener inmediatamente la distribución de las transacciones, el gráfico del balance y el resultado final del trading moviendo los botones deslizantes virtuales que controlan los valores de los parámetros de la señal en el gráfico principal.
Interfaces gráficas V: Control "Lista combinada" (Capítulo 3)
Interfaces gráficas V: Control "Lista combinada" (Capítulo 3)

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

En dos primeros capítulos de la quinta parte sobre las interfaces gráficas hemos desarrollado las clases para crear la barra de desplazamiento y la lista. En este capítulo vamos a hablar de la clase para la creación del control llamado “Lista combinada”. Éste también es un control compuesto que incluye los controles analizados en dos primeros capítulos de la quinta parte.
Interfaces gráficas X: Ordenamiento, reconstrucción de la tabla y controles en las celdas (build 11)
Interfaces gráficas X: Ordenamiento, reconstrucción de la tabla y controles en las celdas (build 11)

Interfaces gráficas X: Ordenamiento, reconstrucción de la tabla y controles en las celdas (build 11)

Seguimos añadiendo nuevas posibilidades a la tabla dibujada que nos permitirán hacer lo siguiente: ordenar los datos, controlar el número de columnas y filas, establecer el tipo de las celdas para adjuntar los controles.
preview
Aprendiendo a diseñar un sistema de trading con el indicador de Acumulación/Distribución

Aprendiendo a diseñar un sistema de trading con el indicador de Acumulación/Distribución

En este nuevo artículo de la serie sobre la creación de sistemas comerciales basados en indicadores técnicos populares, analizaremos el indicador de Acumulación/Distribución (A/D). También desarrollaremos un sistema comercial para la plataforma MetaTrader 5 utilizando algunas estrategias simples.
Gestión de la optimización (Parte 2): Creando los objetos clave y la lógica de la aplicación
Gestión de la optimización (Parte 2): Creando los objetos clave y la lógica de la aplicación

Gestión de la optimización (Parte 2): Creando los objetos clave y la lógica de la aplicación

Es la continuación del artículo anterior que describe la creación de la interfaz gráfica para gestionar la optimización. Aquí, vamos a considerar la lógica del funcionamiento de la extensión creada. Vamos a crear un envoltorio para el terminal MetaTrader 5 con el fin de iniciarlo como un proceso controlado usando C#. Además, vamos a analizar el trabajo con los archivos de configuración y archivos de los ajustes. La lógica del programa será dividida en dos partes: en la primera estarán descritos los métodos que se invocan después de pulsar algún botón, la segunda parte se encargará del inicio y de la gestión de la optimización.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XVII): Interactividad de los objetos de la biblioteca.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XVII): Interactividad de los objetos de la biblioteca.

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XVII): Interactividad de los objetos de la biblioteca.

Hoy vamos a finalizar de forma lógica la funcionalidad del objeto básico de todos los objetos de la biblioteca, que permitirá a cualquier objeto de la biblioteca creado sobre su base interactuar de forma activa con el usuario. Por ejemplo, podemos establecer el tamaño máximo aceptable del spread para abrir una posición y el valor del nivel de precio cuyo cruzamiento causará el envío de un evento desde el objeto de símbolo al programa sobre la señal del tamaño del spread y el cruzamiento del nivel controlado por parte del precio.
preview
Aprendiendo a diseñar un sistema de trading con Alligator

Aprendiendo a diseñar un sistema de trading con Alligator

Bienvenidos a un nuevo artículo de nuestra serie dedicada a la creación de sistemas comerciales basados en indicadores técnicos populares. Hoy analizaremos el indicador Alligator y crearemos sistemas comerciales basados en él.
Integración del terminal de cliente de MetaTrader 4 con MS SQL Server
Integración del terminal de cliente de MetaTrader 4 con MS SQL Server

Integración del terminal de cliente de MetaTrader 4 con MS SQL Server

El artículo proporciona un ejemplo de integración del terminal de cliente de MetaTrader 4 con MS SQL Server usando una dll. Se adjuntan los códigos fuente en C++ y en MQL4 y un proyecto listo para usar y compilado de Visual C++ 6.0 SP5.
Interfaces gráficas X: Selección del texto en el campo de edición multilínea (build 13)
Interfaces gráficas X: Selección del texto en el campo de edición multilínea (build 13)

Interfaces gráficas X: Selección del texto en el campo de edición multilínea (build 13)

En este artículo vamos a implementar la posibilidad de seleccionar el texto usando diferentes combinaciones de teclas y eliminar el texto seleccionado, de la misma manera como se hace en cualquier otro editor de texto. Además de eso, seguiremos optimizando el código y prepararemos las clases para el traspaso al proceso final de la segunda fase del desarrollo de la librería, cuando todos los controles estarán dibujados en las imágenes separadas (lienzos para el dibujado).
Optimización separada de una estrategia en condiciones de tendencia y flat
Optimización separada de una estrategia en condiciones de tendencia y flat

Optimización separada de una estrategia en condiciones de tendencia y flat

En el artículo se analizará el uso del método de optimización separada en diferentes estados del mercado. La optimización separada consiste en la definición de los parámetros ideales de un sistema comercial con la ayuda de la optimización de manera separada para la tendencia ascendente y descendente. Para reducir el efecto de las señales falsas y mejorar la rentabilidad, los sistemas se hacen flexibles, es decir, poseen un cierto conjunto de ajustes o datos de entrada, hecho que se ve totalmente justificado por el comportamiento de un mercado en cambio constante.
Modelo de regresión universal para la predicción de precio de mercado (Parte 2): Funciones de procesos transitorios naturales, tecnológicos y sociales
Modelo de regresión universal para la predicción de precio de mercado (Parte 2): Funciones de procesos transitorios naturales, tecnológicos y sociales

Modelo de regresión universal para la predicción de precio de mercado (Parte 2): Funciones de procesos transitorios naturales, tecnológicos y sociales

Este artículo supone una continuación lógica del anterior, y se ha escrito para resaltar los hechos revelados que confirman sus conclusiones durante los siguientes diez años tras su publicación, en lo referente a las tres funciones identificadas de los procesos transitorios dinámicos que describen los patrones de cambio en los precios del mercado.
preview
Cómo crear un panel informativo para mostrar datos en indicadores y asesores

Cómo crear un panel informativo para mostrar datos en indicadores y asesores

En el presente artículo consideraremos la creación de una clase de panel informativo para utilizarla en indicadores y asesores. Este será el artículo introductorio de una pequeña serie de artículos con plantillas para la conexión y el uso de indicadores estándar en asesores. Empezaremos creando un panel, un análogo de la ventana de datos de MetaTrader 5.
Leer fuentes de noticias RSS a través de MQL4
Leer fuentes de noticias RSS a través de MQL4

Leer fuentes de noticias RSS a través de MQL4

Este artículo trata un ejemplo de lectura de márgenes RSS a través de MQL4 utilizando las funciones para el análisis de etiquetas HTML. Intentaremos hacer un trabajo que se pueda transformar en un indicador de noticias o en un lector RSS en lenguaje MQL4.
preview
Aprendiendo a diseñar un sistema de trading con Force Index

Aprendiendo a diseñar un sistema de trading con Force Index

Aquí tenemos un nuevo artículo de nuestra serie destinada a la creación de sistemas comerciales basados en indicadores técnicos populares. En esta ocasión, analizaremos el indicador Force Index y aprenderemos a crear sistemas comerciales basados en él.
Interfaces gráficas X: Nuevas posibilidades para la tabla dibujada (build 9)
Interfaces gráficas X: Nuevas posibilidades para la tabla dibujada (build 9)

Interfaces gráficas X: Nuevas posibilidades para la tabla dibujada (build 9)

Hasta este momento, el tipo más desarrollado de las tablas de la librería fue el tipo CTable. Esta tabla se reúne de los campos de edición tipo OBJ_EDIT y su desarrollo posterior ya resulta problemático. Por eso, desde el punto de vista de las posibilidades máximas incluso en esta fase del desarrollo de la librería, es mejor desarrollar la tabla dibujada tipo CCanvasTable. Su versión actual es absolutamente inerte, pero a partir de este artículo vamos a tratar de solucionar ese asunto.
preview
Gestión de Riesgo (Parte 2): Implementando el Cálculo de Lotes en una Interfaz Gráfica

Gestión de Riesgo (Parte 2): Implementando el Cálculo de Lotes en una Interfaz Gráfica

En este artículo exploraremos cómo mejorar y aplicar de manera más efectiva los conceptos abordados en el artículo anterior, utilizando las poderosas librerías de controles gráficos de MQL5. Te guiaré paso a paso en la creación de una interfaz gráfica completamente funcional, explicando el plan de diseño detrás de ella, así como el propósito y funcionamiento de cada método empleado. Además, al final del artículo, pondremos a prueba el panel que desarrollaremos, asegurándonos de que funcione correctamente y cumpla con los objetivos planteados.
Evaluando la efectividad de los sistemas comerciales mediante el análisis de sus componentes
Evaluando la efectividad de los sistemas comerciales mediante el análisis de sus componentes

Evaluando la efectividad de los sistemas comerciales mediante el análisis de sus componentes

En este artículo vamos a investigar la efectividad de los sistemas comerciales complejos mediante el análisis de la efectividad de sus componentes por separado. Cualquier análisis, sea de tipo gráfico, basado en indicadores o de cualquier otro tipo, es uno de los componentes clave para comerciar con éxito en los mercados financieros. Este artículo es una investigación sui generis de varios sistemas comerciales sencillos independientes, en la que se analiza su efectividad y la utilidad de su aplicación conjunta.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XI) Compatibilidad con MQL4 - Eventos de cierre de posición
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XI) Compatibilidad con MQL4 - Eventos de cierre de posición

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XI) Compatibilidad con MQL4 - Eventos de cierre de posición

Continuamos creando la gran biblioteca multiplataforma cuyo objetivo es simplificar la escritura de programas para las plataformas MetaTrader 5 y MetaTrader 4. En la décima parte, continuamos trabajando con la compatibilidad de la biblioteca con MQL4 e implementamos la definición de los eventos de apertura de posición y activación de órdenes pendientes. En el presente artículo, vamos a implementar la defición de los eventos de cierre de posición, eliminando al mismo tiempo las propiedades innecesarias de las órdenes.
Crear un juego de la "Serpiente" en MQL5
Crear un juego de la "Serpiente" en MQL5

Crear un juego de la "Serpiente" en MQL5

Este artículo describe un ejemplo de programación del juego de la "Serpiente". En MQL5, la programación para juegos se hizo posible principalmente a causa de sus herramientas para controlar eventos. La programación orientada al objeto simplifica inmensamente este proceso. En este artículo aprenderá sobre las herramientas de procesamiento de eventos, los ejemplos de uso de las clases de la Biblioteca MQL5 Estándar y detalles de llamadas de funciones periódicas.
Cómo manejar el Error 146, "Trade context busy"
Cómo manejar el Error 146, "Trade context busy"

Cómo manejar el Error 146, "Trade context busy"

Este artículo expone el problema que plantea el uso de varios asesores expertos que trabajan de forma simultánea en un mismo Terminal Cliente MT 4. Se dirige a todos aquellos que cuentan con experiencia básica en el manejo del terminal y tienen conocimientos básicos de programación en MQL4.
preview
Modelo de aprendizaje profundo GRU en Python usando ONNX en asesores expertos, GRU vs LSTM

Modelo de aprendizaje profundo GRU en Python usando ONNX en asesores expertos, GRU vs LSTM

El artículo está dedicado al desarrollo de un modelo de aprendizaje profundo GRU ONNX en Python. En la parte práctica, implementaremos este modelo en un asesor comercial y, a continuación, compararemos el rendimiento del modelo GRU con LSTM (memoria a largo plazo).
preview
Cómo construir un EA que opere automáticamente (Parte 03): Nuevas funciones

Cómo construir un EA que opere automáticamente (Parte 03): Nuevas funciones

Aprenda a crear un EA que opere automáticamente de forma sencilla y segura. En el artículo anterior, comenzamos a desarrollar el sistema de órdenes que se va a utilizar en el EA automático. Sin embargo, solo construimos una de las funciones o procedimientos necesarios.
Indicador para construir el gráfico de "ejes" (husos)
Indicador para construir el gráfico de "ejes" (husos)

Indicador para construir el gráfico de "ejes" (husos)

El artículo estudia la construcción del gráfico de "ejes" (spindles) o, como también lo llaman, de "husos", y su utilización en las estrategias y asesores comerciales. Para empezar, vamos a discutir la aparición del gráfico, su construcción y su relación con el gráfico de velas japonesas. Después analizaremos la implementación del indicador en un código de programa en el lenguaje MQL5. Vamos a poner a prueba el experto basado en el indicador y a formular una estrategia comercial.
La batalla por la velocidad: QLUA vs MQL5 - ¿Por qué MQL5 es de 50 a 600 veces más rápido?
La batalla por la velocidad: QLUA vs MQL5 - ¿Por qué MQL5 es de 50 a 600 veces más rápido?

La batalla por la velocidad: QLUA vs MQL5 - ¿Por qué MQL5 es de 50 a 600 veces más rápido?

Para comparar los lenguajes MQL5 y QLUA, hemos diseñado varias pruebas que miden la velocidad de ejecución de las operaciones básicas. En dichos tests, hemos utilizado una computadora con Windows 7 Professional 64 bit, MetaTrader 5 build 1340 y QUIK de versión 7.2.0.45.
Interfaces gráficas VIII: Control "Lista jerárquica" (Capítulo 2)
Interfaces gráficas VIII: Control "Lista jerárquica" (Capítulo 2)

Interfaces gráficas VIII: Control "Lista jerárquica" (Capítulo 2)

En el capítulo anterior de la octava parte de la serie sobre las interfaces gráficas hemos analizado los controles “Calendario estático” y “Calendario desplegable”. El segundo capítulo va a dedicarse a un control compuesto no menos complejo, “Lista jerárquica”, sin la que no se arregla ninguna librería multifuncional para la creación de interfaces gráficas. La implementación de la lista jerárquica presentada en este artículo contiene múltiples ajustes y modos flexibles, lo que permitirá configurar este control a sus necesidades con la máxima precisión.
Optimización de color de estrategias comerciales
Optimización de color de estrategias comerciales

Optimización de color de estrategias comerciales

En este artículo, vamos a realizar un experimento del coloreo de los resultados de la optimización. Como se sabe, el color se determina por tres parámetros: los niveles del color rojo, verde y azul (RGB en inglés, Red — rojo, Green — verde, Blue — azul). Hay otros métodos de codificar el color, pero igualmente se usan tres parámetros. Así, tres parámetros de la simulación pueden ser convertidos en un color que el trader percibe visualmente. Lea este artículo para averiguar si esta representación va a ser útil.
Representación gráfica de las pruebas: Historial de las operaciones.
Representación gráfica de las pruebas: Historial de las operaciones.

Representación gráfica de las pruebas: Historial de las operaciones.

Este artículo describe la posibilidad de ver correctamente el historial de las operaciones durante la visualización de las pruebas.
Desarrollando una utilidad para la selección y navegación de instrumentos en los lenguajes MQL5 y MQL4
Desarrollando una utilidad para la selección y navegación de instrumentos en los lenguajes MQL5 y MQL4

Desarrollando una utilidad para la selección y navegación de instrumentos en los lenguajes MQL5 y MQL4

Para el tráder avanzado no es un secreto que la mayor parte del tiempo que ocupa el comercio no se invierte en la apertura o acompañamiento de transacciones. Lo que más tiempo ocupa es la selección de instrumentos y la búsqueda de puntos de entrada. En este artículo trataremos de escribir un asesor que simplifique la búsqueda de puntos de entrada en los instrumentos ofrecidos por nuestro bróker.
Recuento múltiple de barras nulas en algunos indicadores
Recuento múltiple de barras nulas en algunos indicadores

Recuento múltiple de barras nulas en algunos indicadores

El artículo trata sobre el problema de recuento del valor del indicador en la Terminal de Cliente de MetaTrader 4 cuando cambia la barra nula. Resume la idea general de cómo añadir al código del indicador algún elemento de programa extra que permita restablecer el código de programa guardado antes del recuento múltiple.
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.
Interfaces gráficas X: Gestión ampliada de las listas y tablas. Optimización de código (build 7)
Interfaces gráficas X: Gestión ampliada de las listas y tablas. Optimización de código (build 7)

Interfaces gráficas X: Gestión ampliada de las listas y tablas. Optimización de código (build 7)

Es necesario optimizar el código de la librería: debe estar mejor ordenado, o sea, ser más comprensible y legible. Además de eso, vamos a continuar el desarrollo de los controles creados anteriormente: listas, tablas y barras de desplazamiento.
preview
Implementación de una estrategia de trading con Bandas de Bollinger en MQL5: Guía paso a paso

Implementación de una estrategia de trading con Bandas de Bollinger en MQL5: Guía paso a paso

Una guía paso a paso para implementar un algoritmo de trading automatizado en MQL5 basado en la estrategia de trading de las Bandas de Bollinger. Un tutorial detallado basado en la creación de un Asesor Experto que puede ser útil para los traders.
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.
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.
Gráficos en la biblioteca DoEasy (Parte 78): Fundamentos de animación en la biblioteca. Cortando las imágenes
Gráficos en la biblioteca DoEasy (Parte 78): Fundamentos de animación en la biblioteca. Cortando las imágenes

Gráficos en la biblioteca DoEasy (Parte 78): Fundamentos de animación en la biblioteca. Cortando las imágenes

En el artículo, definiremos los principios de animación que se usarán en algunas partes de la biblioteca, y también desarrollaremos una clase para copiar una parte de una imagen y pegarla en un lugar específico del objeto de formulario, con la posibilidad de guardar y restaurar la parte del fondo del formulario sobre la que se superpondrá la imagen.
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é.
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.
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.
preview
Crear paneles gráficos en MQL5 es ahora más fácil

Crear paneles gráficos en MQL5 es ahora más fácil

En este artículo, ofreceremos una guía sencilla y comprensible para cualquier usuario que quiera crear una de las herramientas más valiosas y útiles en el trading: un panel gráfico que facilite las tareas comerciales. Los paneles gráficos nos permiten ahorrar tiempo y centrarnos más en las operaciones en sí.