Artículos con ejemplos de programación en el lenguaje MQL5

icon

Le espera una gran variedad de diferentes artículos sobre la creación de indicadores y robots comerciales para la plataforma MetaTrader usando el lenguaje MQL5. Cada artículo va acompañado con los códigos fuente, Usted puede abrir e iniciarlos en el editor MetaEditor de una manera independiente.

Estos artículos serán útiles tanto para los principiantes en el trading automático, como para los operadores experimentados en la programación y el trading. Aquí encontrará no sólo los ejemplos, sino también las nuevas ideas.

Nuevo artículo
últimas | mejores
preview
Creación de un modelo de restricción de tendencia de velas (Parte 10): Estrategia de Cruce Dorado y Cruce de la Muerte (EA)

Creación de un modelo de restricción de tendencia de velas (Parte 10): Estrategia de Cruce Dorado y Cruce de la Muerte (EA)

¿Sabías que el Cruce Dorado y el Cruce de la Muerte están entre las estrategias más fiables para detectar tendencias de mercado a largo plazo? Un Cruce Dorado señala una tendencia alcista cuando una media móvil corta cruza por encima de una más larga, mientras que un Cruce de la Muerte indica una tendencia bajista cuando la media corta cruza por debajo. A pesar de su sencillez y eficacia, aplicar estas estrategias manualmente suele llevar a perder oportunidades o a ejecutar operaciones con retraso.
preview
Redes neuronales: así de sencillo (Parte 91): Previsión en el dominio de la frecuencia (FreDF)

Redes neuronales: así de sencillo (Parte 91): Previsión en el dominio de la frecuencia (FreDF)

Vamos a continuar con el tema del análisis y la previsión de series temporales en el dominio de la frecuencia. En este artículo, introduciremos un nuevo método de predicción en el dominio de la frecuencia que puede añadirse a muchos de los algoritmos que hemos estudiado anteriormente.
preview
El tipo de dibujado DRAW_ARROW en indicadores de símbolo y periodo múltiple

El tipo de dibujado DRAW_ARROW en indicadores de símbolo y periodo múltiple

En este artículo nos ocuparemos de dibujar los indicadores de símbolo y periodo múltiple. Asimismo, mejoraremos los métodos de la clase para representar correctamente las flechas que muestran los datos de los indicadores de flecha calculados sobre un símbolo/periodo que no se corresponde con el símbolo/periodo del gráfico actual.
preview
DoEasy. Elementos de control (Parte 16): Objeto WinForms TabControl - múltiples filas de encabezados de pestañas, modo de expansión de encabezados para ajustarse al tamaño del contenedor

DoEasy. Elementos de control (Parte 16): Objeto WinForms TabControl - múltiples filas de encabezados de pestañas, modo de expansión de encabezados para ajustarse al tamaño del contenedor

En este artículo, proseguiremos con el desarrollo del control TabControl, e implementaremos la disposición de los encabezados de las pestañas en los cuatro lados del control para todos los modos de establecimiento de tamaño del encabezado: "Normal", "Fixed" y "Fill To Right".
preview
Desarrollo de un sistema de repetición (Parte 71): Ajuste del tiempo (IV)

Desarrollo de un sistema de repetición (Parte 71): Ajuste del tiempo (IV)

En este artículo, mostraré cómo implementar lo presentado en el artículo anterior en el servicio de repetición/simulación. Pero, como suele ocurrir con muchas cosas en la vida, es habitual que surjan problemas. Y este caso no fue una excepción. Sigue leyendo y descubre cuál será el tema del próximo artículo de esta serie. El contenido expuesto aquí tiene como único propósito la enseñanza. En ningún caso debe considerarse una aplicación cuyo objetivo no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
Reconocimiento de patrones mediante deformación dinámica del tiempo (Dynamic Time Warping, DTW) en MQL5

Reconocimiento de patrones mediante deformación dinámica del tiempo (Dynamic Time Warping, DTW) en MQL5

En este artículo, analizamos el concepto de deformación dinámica del tiempo como medio para identificar patrones predictivos en series de tiempo financieras. Veremos cómo funciona y presentaremos su implementación en MQL5.
preview
Del básico al intermedio: Array (II)

Del básico al intermedio: Array (II)

En este artículo, veremos qué es un array dinámico y un array estático. ¿Existe diferencia entre usar uno u otro? ¿O ambos son siempre lo mismo? ¿Cuándo debo usar uno y cuándo usar el otro? ¿Y los arrays constantes? ¿Por qué existen y cuál es el riesgo que corro, cuando no inicializo todos los valores de un array? Suponiendo que serán iguales a cero. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse como una aplicación final, si el objetivo no es el estudio de los conceptos mostrados aquí.
preview
Equilibrio de riesgos en la negociación simultánea de varios instrumentos comerciales

Equilibrio de riesgos en la negociación simultánea de varios instrumentos comerciales

Este artículo permitirá a los principiantes escribir desde cero la implementación de un script para el equilibrio de riesgos en la negociación simultánea de varios instrumentos comerciales, mientras que los usuarios experimentados podrán obtener nuevas ideas para la implementación de sus soluciones en cuanto a las opciones propuestas en este artículo.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 03):  Haciendo ajustes (I)

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 03): Haciendo ajustes (I)

Pongamos las cosas en su sitio, porque este comienzo no ha sido de los mejores. Si no lo hacemos ahora, pronto tendremos problemas.
preview
Un algoritmo de selección de características que utiliza aprendizaje basado en energía en MQL5 puro

Un algoritmo de selección de características que utiliza aprendizaje basado en energía en MQL5 puro

En este artículo presentamos la implementación de un algoritmo de selección de características descrito en un artículo académico titulado "FREL: Un algoritmo de selección de características estable", llamado Ponderación de características como aprendizaje regularizado basado en energía.
preview
Desarrollo de un sistema de repetición (Parte 35): Haciendo retoques (I)

Desarrollo de un sistema de repetición (Parte 35): Haciendo retoques (I)

Tenemos que arreglar algunas cosas antes de poder continuar de verdad. Pero no es necesariamente una corrección, sino una mejora en la forma de gestionar y utilizar la clase. La razón es que hay fallos debidos a algún tipo de interacción dentro del sistema. A pesar de los intentos de comprender la razón de algunos de los fallos, para ponerles fin, todos ellos se vieron frustrados, ya que algunos no tenían sentido. Cuando usamos punteros o recursión en C / C++, y el programa empieza a fallar.
preview
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 5): Volatility Navigator EA

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 5): Volatility Navigator EA

Determinar la dirección del mercado puede ser sencillo, pero saber cuándo entrar puede resultar complicado. Como parte de la serie titulada «Desarrollo de un kit de herramientas para el análisis de la acción del precio», me complace presentar otra herramienta que proporciona puntos de entrada, niveles de toma de ganancias y colocación de órdenes stop loss. Para lograrlo, hemos utilizado el lenguaje de programación MQL5. Profundicemos en cada paso de este artículo.
preview
Algoritmo de optimización de reacciones químicas (CRO) (Parte II): Ensamblaje y resultados

Algoritmo de optimización de reacciones químicas (CRO) (Parte II): Ensamblaje y resultados

En la segunda parte, reuniremos los operadores químicos en un único algoritmo y presentaremos un análisis detallado de sus resultados. Descubramos cómo el método de optimización de reacciones químicas (CRO) aborda la solución de problemas complejos en funciones de prueba.
preview
Del básico al intermedio: Comando IF ELSE

Del básico al intermedio: Comando IF ELSE

En este artículo veremos cómo trabajar con el comando IF y su compañero ELSE. Este es el comando más importante y significativo que existe en cualquier lenguaje de programación. Sin embargo, aunque es muy sencillo de usar, a veces genera cierta confusión cuando nos falta experiencia en su uso y en los conceptos asociados. El contenido expuesto aquí tiene como objetivo exclusivamente la enseñanza didáctica. En ningún caso debe considerarse como una aplicación destinada a otro fin que no sea el aprendizaje y estudio de los conceptos presentados.
preview
Del básico al intermedio: Unión (II)

Del básico al intermedio: Unión (II)

Este será un artículo muy divertido y bastante curioso, en varios aspectos. Abordará la unión, para resolver un problema discutido anteriormente. Además, exploraremos algunas situaciones inusuales que pueden surgir al usar una unión en aplicaciones. El contenido expuesto aquí tiene, pura y simplemente, una finalidad didáctica. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
El filtro de Kalman para estrategias de reversión a la media en Forex

El filtro de Kalman para estrategias de reversión a la media en Forex

El filtro de Kalman es un algoritmo recursivo utilizado en el trading algorítmico para estimar el estado real de una serie temporal financiera filtrando el ruido de los movimientos de precios. Actualiza dinámicamente las predicciones basándose en nuevos datos del mercado, lo que lo hace valioso para estrategias adaptativas como la reversión a la media. Este artículo presenta primero el filtro de Kalman, cubriendo su cálculo e implementación. A continuación, aplicamos el filtro a una estrategia clásica de reversión a la media en el mercado de divisas como ejemplo. Por último, realizamos diversos análisis estadísticos comparando el filtro con una media móvil en diferentes pares de divisas.
preview
Aprendiendo MQL5 de principiante a profesional (Parte V): Operadores básicos para redirigir el flujo de comandos

Aprendiendo MQL5 de principiante a profesional (Parte V): Operadores básicos para redirigir el flujo de comandos

Este artículo trata de los operadores básicos para cambiar el flujo de ejecución: condiciones, ciclos y el operador switch. El uso de estos operadores añadirá la capacidad de que las funciones que creemos actúen de forma "inteligente".
preview
Hibridación de algoritmos basados en poblaciones. Esquema secuencial y paralelo

Hibridación de algoritmos basados en poblaciones. Esquema secuencial y paralelo

En este artículo, nos sumergiremos en el mundo de la hibridación de algoritmos de optimización analizando tres tipos clave: la mezcla de estrategias y la hibridación secuencial y paralela. Asimismo, realizaremos una serie de experimentos combinando y probando los algoritmos de optimización correspondientes.
preview
Desarrollo de un sistema de repetición (Parte 75): Un nuevo Chart Trade (II)

Desarrollo de un sistema de repetición (Parte 75): Un nuevo Chart Trade (II)

En este artículo explicaré gran parte de la clase C_ChartFloatingRAD. Esta es la encargada de hacer que Chart Trade funcione. Sin embargo, no terminaré la explicación aquí. La finalizaré en el próximo artículo, ya que el contenido de este es bastante denso y necesita ser comprendido a fondo. El contenido expuesto aquí tiene como único objetivo la enseñanza. En ningún caso debe considerarse como una aplicación cuya finalidad sea distinta a la enseñanza y el estudio de los conceptos mostrados.
preview
Encabezado en Connexus (Parte 3): Dominando el uso de encabezado HTTP para solicitudes WebRequest

Encabezado en Connexus (Parte 3): Dominando el uso de encabezado HTTP para solicitudes WebRequest

Continuamos desarrollando la biblioteca Connexus. En este capítulo, exploramos el concepto de cabeceras en el protocolo HTTP, explicando qué son, para qué sirven y cómo usarlos en las solicitudes. Cubrimos los principales encabezados utilizados en las comunicaciones con API y mostramos ejemplos prácticos de cómo configurarlos en la biblioteca.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición

Aquí veremos cómo se pueden utilizar datos más fiables (ticks negociados) en el sistema de repetición, sin tener que preocuparnos necesariamente de si están ajustados o no.
preview
DoEasy. Elementos de control (Parte 22): SplitContainer. Cambiando las propiedades del objeto creado

DoEasy. Elementos de control (Parte 22): SplitContainer. Cambiando las propiedades del objeto creado

En este artículo, implementaremos la capacidad de cambiar las propiedades y el aspecto del control SplitContainer después de haberlo creado.
preview
Integración de MQL5 con paquetes de procesamiento de datos (Parte 3): Visualización mejorada de datos

Integración de MQL5 con paquetes de procesamiento de datos (Parte 3): Visualización mejorada de datos

En este artículo, realizaremos una visualización de datos mejorada que va más allá de los gráficos básicos, incorporando características como interactividad, datos en capas y elementos dinámicos, lo que permite a los operadores explorar tendencias, patrones y correlaciones de manera más eficaz.
preview
DoEasy. Elementos de control (Parte 18): Preparamos la funcionalidad para el scrolling de las pestañas en TabControl

DoEasy. Elementos de control (Parte 18): Preparamos la funcionalidad para el scrolling de las pestañas en TabControl

En este artículo colocaremos los botones de control de scrolling del encabezado en el objeto WinForms TabControl en su lugar en caso de que la fila del encabezado no se ajuste al tamaño del control, y haremos que la fila del encabezado se desplace al clicar en un encabezado de pestaña recortado.
preview
Desarrollo de un sistema de repetición (Parte 51): Esto complica las cosas (III)

Desarrollo de un sistema de repetición (Parte 51): Esto complica las cosas (III)

En este artículo comprenderás una de las cosas más complejas que existen en la programación MQL5: la forma correcta de obtener el ID del gráfico y por qué a veces los objetos no se trazan en él. El contenido expuesto aquí tiene como objetivo, pura y simplemente, ser didáctico. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
Del básico al intermedio: Indicador (I)

Del básico al intermedio: Indicador (I)

En este artículo, crearemos nuestro primer indicador, que será totalmente práctico y funcional. El objetivo no es mostrar cómo se crea una aplicación, sino ayudarte a entender cómo puedes desarrollar tus propias ideas. El objetivo es que puedas ponerlas en práctica de forma segura, simple y práctica.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte III): Ampliación de las clases incorporadas para la gestión de temas (II)

Creación de un Panel de administración de operaciones en MQL5 (Parte III): Ampliación de las clases incorporadas para la gestión de temas (II)

En este artículo, ampliaremos cuidadosamente la biblioteca Dialog existente para incorporar la lógica de gestión de temas. Además, integraremos métodos para cambiar de tema en las clases CDialog, CEdit y CButton utilizadas en nuestro proyecto de Panel de administración. Continúe leyendo para obtener perspectivas más reveladoras.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte VII): Usuario de confianza, recuperación y criptografía

Creación de un Panel de administración de operaciones en MQL5 (Parte VII): Usuario de confianza, recuperación y criptografía

Los avisos de seguridad, como los que se activan cada vez que actualiza el gráfico, agrega un nuevo par al chat con el EA del Panel de administración o reinicia la terminal, pueden volverse tediosos. En esta discusión, exploraremos e implementaremos una función que rastrea la cantidad de intentos de inicio de sesión para identificar a un usuario confiable. Después de una determinada cantidad de intentos fallidos, la aplicación pasará a un procedimiento de inicio de sesión avanzado, que también facilita la recuperación de la contraseña para los usuarios que la hayan olvidado. Además, cubriremos cómo se puede integrar eficazmente la criptografía en el Panel de administración para mejorar la seguridad.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 9): Asesor Experto de múltiples estrategias (II)

Creación de un modelo de restricción de tendencia de velas (Parte 9): Asesor Experto de múltiples estrategias (II)

El número de estrategias que se pueden integrar en un Asesor Experto es prácticamente ilimitado. Sin embargo, cada estrategia adicional aumenta la complejidad del algoritmo. Al incorporar múltiples estrategias, un Asesor Experto puede adaptarse mejor a las condiciones cambiantes del mercado, lo que puede mejorar su rentabilidad. Hoy exploraremos cómo implementar MQL5 para una de las estrategias más destacadas desarrolladas por Richard Donchian, mientras continuamos mejorando la funcionalidad de nuestro Asesor Experto Trend Constraint.
preview
DoEasy. Elementos de control (Parte 17): Recortando partes invisibles de objetos, objetos WinForms auxiliares de botón con flechas

DoEasy. Elementos de control (Parte 17): Recortando partes invisibles de objetos, objetos WinForms auxiliares de botón con flechas

En el artículo, crearemos la funcionalidad necesaria para ocultar secciones de objetos que quedan más allá de su contenedor; asimismo, crearemos objetos de botón auxiliares con flechas para usarlos como parte de otros objetos WinForms.
preview
DoEasy. Elementos de control (Parte 33): "ScrollBar" vertical

DoEasy. Elementos de control (Parte 33): "ScrollBar" vertical

En este artículo, continuaremos desarrollando los elementos gráficos de la librería DoEasy, y añadiremos el desplazamiento vertical de los controles del objeto formulario y algunas funciones y métodos útiles que serán necesarios más adelante.
preview
De lo básico a intermedio: Indicador (III)

De lo básico a intermedio: Indicador (III)

En este artículo, veremos cómo declarar diversos indicadores de representación gráfica, como DRAW_COLOR_LINE y DRAW_FILLING. Además, por supuesto, aprenderemos a trazar múltiples indicadores de forma sencilla, práctica y rápida. Esto puede cambiar realmente tu forma de ver MetaTrader 5 y el mercado en general.
preview
Del básico al intermedio: Indicador (IV)

Del básico al intermedio: Indicador (IV)

En este artículo, veremos lo fácil que es crear e implementar una metodología operativa para teñir velas. Este es un concepto muy apreciado por los operadores. Es necesario tener cuidado al implementar este tipo de cosas para que las barras o velas mantengan su apariencia original y no se dificulte la lectura vela por vela.
preview
Desarrollo de un sistema de repetición (Parte 50): Esto complica las cosas (II)

Desarrollo de un sistema de repetición (Parte 50): Esto complica las cosas (II)

Vamos resolver la cuestión del ID del gráfico, pero al mismo tiempo, vamos empezar a garantizar que el usuario pueda hacer uso de una plantilla personal, enfocada en analizar el activo que desea estudiar y simular. El contenido expuesto aquí tiene como objetivo, pura y simplemente, ser didáctico. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
DoEasy. Elementos de control (Parte 29): Control auxiliar "ScrollBar"

DoEasy. Elementos de control (Parte 29): Control auxiliar "ScrollBar"

En este artículo, comenzaremos a desarrollar el control auxiliar ScrollBar y sus objetos derivados: las barras de desplazamiento verticales y horizontales. ScrollBar (barra de desplazamiento) se usa para desplazar el contenido del formulario si va más allá del contenedor. Por lo general, las barras de desplazamiento se encuentran en la parte inferior y derecha del formulario. La barra horizontal en la parte inferior desplaza el contenido hacia la izquierda y hacia la derecha, mientras que la barra vertical desplaza el contenido hacia arriba y hacia abajo.
preview
HTTP y Connexus (Parte 2): Comprensión de la arquitectura HTTP y el diseño de bibliotecas

HTTP y Connexus (Parte 2): Comprensión de la arquitectura HTTP y el diseño de bibliotecas

Este artículo explora los fundamentos del protocolo HTTP, cubriendo los métodos principales (GET, POST, PUT, DELETE), los códigos de estado y la estructura de las URL. Además, presenta el inicio de la construcción de la librería Conexus con las clases CQueryParam y CURL, que facilitan la manipulación de URLs y parámetros de consulta en peticiones HTTP.
preview
Reimaginando las estrategias clásicas (Parte VI): Análisis de múltiples marcos temporales

Reimaginando las estrategias clásicas (Parte VI): Análisis de múltiples marcos temporales

En esta serie de artículos, revisamos las estrategias clásicas para ver si podemos mejorarlas utilizando IA. En el artículo de hoy, examinaremos la popular estrategia de análisis de múltiples marcos temporales para juzgar si la estrategia se podría mejorar con IA.
preview
Del básico al intermedio: Indicador (II)

Del básico al intermedio: Indicador (II)

En este artículo, veremos cómo implementar el cálculo de una media móvil y qué precauciones debemos tomar al realizar este cálculo. También hablaremos sobre la sobrecarga de la función OnCalculate para saber cuándo y cómo trabajar con un modelo u otro.
preview
Kit de herramientas de negociación MQL5 (Parte  5): Ampliación de la libreria EX5 de gestión del historial con funciones de posición

Kit de herramientas de negociación MQL5 (Parte 5): Ampliación de la libreria EX5 de gestión del historial con funciones de posición

Descubra cómo crear funciones EX5 exportables para consultar y guardar de forma eficiente datos históricos de posición. En esta guía paso a paso, ampliaremos la libreria de gestión del historial EX5 mediante el desarrollo de módulos que recuperan las propiedades clave de la posición cerrada más recientemente. Entre ellos se incluyen el beneficio neto, la duración de la operación, el stop loss basado en pips, el take profit, los valores de beneficio y otros detalles importantes.
preview
Del básico al intermedio: Unión (I)

Del básico al intermedio: Unión (I)

En este artículo, veremos qué es una unión. Aquí, mediante la experimentación, analizaremos las primeras construcciones en las que podría utilizarse una unión. No obstante, lo que se mostrará aquí es solo la parte básica de todo un conjunto de conceptos e información que se explorará más a fondo en artículos futuros. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea aprender y estudiar los conceptos mostrados.