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

Estrategia de Bill Williams con y sin otros indicadores y predicciones

En este artículo, analizaremos una de las famosas estrategias de Bill Williams, la analizaremos e intentaremos mejorarla con otros indicadores y predicciones.
Consejos de un programador profesional (parte II): Organizando el almacenamiento y el intercambio de parámetros entre el experto, los scripts y los programas externos

Consejos de un programador profesional (parte II): Organizando el almacenamiento y el intercambio de parámetros entre el experto, los scripts y los programas externos

Consejos de un programador profesional sobre métodos, técnicas y herramientas auxiliares para facilitar la programación. En esta ocasión, hablaremos de los parámetros que podemos restaurar tras reiniciar (cerrar) el terminal. Todos los ejemplos son en realidad trozos del código operativo del proyecto Cayman del propio autor.
preview

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.
preview

Múltiples indicadores en un gráfico (Parte 02): primeros experimentos

En el artículo anterior, múltiples indicadores en un gráfico, presenté los conceptos y fundamentos para que podamos utilizar múltiples indicadores en un gráfico. Aquí presentaré y desglosaré el código fuente.
Modificación en dos etapas de posiciones abiertas

Modificación en dos etapas de posiciones abiertas

El método de las dos etapas nos permite evitar el cierre y la reapertura innecesaria de posiciones en situaciones cercanas a la tendencia y en casos de posible aparición de divergencias.
preview

Algoritmos de optimización de la población: Método de Nelder-Mead

En el artículo de hoy, le presentamos un estudio completo del método de Nelder-Mead, en el que se explica cómo el símplex (el espacio de parámetros de la función) se modifica y reordena en cada iteración para alcanzar la solución óptima; asimismo, describiremos una forma de mejorar este método.
Gráficos sin agujeros

Gráficos sin agujeros

Este artículo explica cómo implementar gráficos sin barras vacías.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte V): Clases y colección de eventos comerciales, envío de eventos al programa

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte V): Clases y colección de eventos comerciales, envío de eventos al programa

En anteriores artículos comenzamos a crear una gran biblioteca multiplataforma cuyo objetivo es simplificar la escritura de programas para las plataformas MetaTrader 5 y MetaTrader 4. En la cuarta parte, hemos puesto a prueba el seguimiento de eventos comerciales en la cuenta. En esta parte, vamos a crear las clases de los eventos comerciales y a colocarlas en la colección de eventos desde la que serán enviadas al objeto básico de la biblioteca Engine y al gráfico del programa de control.
preview

Algoritmos de optimización de la población: Optimización de malas hierbas invasoras (IWO)

La asombrosa capacidad de las malas hierbas para sobrevivir en una gran variedad de condiciones inspiró la idea de un potente algoritmo de optimización. El IWO es uno de los mejores entre los analizados anteriormente.
Aserciones en los programas MQL5

Aserciones en los programas MQL5

Este artículo explica cómo utilizar aserciones en el lenguaje MQL5. Proporciona dos mecanismos de aserción a modo de ejemplo, así como una guía para implementarlas correctamente.
LibMatrix: Librería de Álgebra Matrix (Parte uno)

LibMatrix: Librería de Álgebra Matrix (Parte uno)

El autor familiariza a los lectores con una librería de álgebra matrix simple y ofrece descripciones y peculiaridades de las funciones principales.
preview

Indicadores adaptativos

En este artículo, analizaremos varios enfoques posibles en la creación de indicadores adaptativos. Los indicadores adaptativos se distinguen por la presencia de retroalimentación entre los valores de las señales de entrada y salida. Esta relación permite que el indicador se ajuste de forma independiente al procesamiento óptimo de los valores de las series temporales financieras.
preview

Creación simple de indicadores complejos usando objetos

El artículo presenta un método para crear indicadores complejos que nos evitará problemas al trabajar con múltiples gráficos y búferes, así como al combinar datos de varias fuentes.
Prueba visual de la rentabilidad de los indicadores y alertas

Prueba visual de la rentabilidad de los indicadores y alertas

De lo que avisa un indicador de trading, o simplemente el método de su cálculo, se decide generalmente cuando los AEs de prueba usan estas alertas. Sin embargo, no siempre es posible/necesario/razonable escribir un AE para cada indicador. Se puede calcular rápidamente la rentabilidad de trading en alertas de otros indicadores, utilizando un indicador especial que recoge sus alertas él mismo y dibuja una imagen del trading ideal con ellas. Puede ayudar tanto a hacer una estimación visual de los resultados obtenidos y elegir rápidamente los mejores parámetros.
preview

Trabajando con las series temporales en la biblioteca DoEasy (Parte 51): Indicadores estándar compuestos de período y símbolo múltiples

En este artículo, vamos a finalizar el desarrollo de indicadores estándar de período y símbolo múltiples. A base del indicador Ichimoku Kinko Hyo, vamos a analizar la creación de los indicadores personalizados de composición compleja que disponen de los búferes dibujados auxiliares para la visualización de los datos en el gráfico.
Promediación efectiva de algoritmos con retraso mínimo: Uso en indicadores

Promediación efectiva de algoritmos con retraso mínimo: Uso en indicadores

Este artículo describe las funciones de promediación personalizadas de alta calidad desarrolladas por el autor: JJMASeries(), JurXSeries(), JLiteSeries(), ParMASeries(), LRMASeries(), T3Series(). El artículo también trata sobre la aplicación de dichas funciones en indicadores. El autor presenta una abundante biblioteca de indicadores basada en el uso de estas funciones.
Indicador técnico de preparación propia

Indicador técnico de preparación propia

En este artículo, analizaremos algunos algoritmos que nos permitirán crear nuestro propio indicador técnico. Asimismo, veremos cómo, con unos supuestos iniciales muy sencillos, podremos obtener resultados bastante complejos e interesantes.
Gráficos en la biblioteca DoEasy (Parte 83): Clase de objeto gráfico abstracto estándar

Gráficos en la biblioteca DoEasy (Parte 83): Clase de objeto gráfico abstracto estándar

En el presente artículo, crearemos la clase de objeto gráfico abstracto. Este objeto constituirá la base para crear las clases de objetos gráficos estándar. Los objetos gráficos tienen muchas propiedades y hoy, antes de crear una clase de objeto gráfico abstracto, necesitaremos hacer mucho trabajo preparatorio: registrar estas propiedades en las enumeraciones de la biblioteca.
preview
Redes neuronales de propagación inversa del error en matrices MQL5

Redes neuronales de propagación inversa del error en matrices MQL5

El artículo describe la teoría y la práctica de la aplicación del algoritmo de propagación inversa del error en MQL5 con la ayuda de matrices. Asimismo, incluye clases y ejemplos preparados del script, el indicador y el asesor.
preview
Creación de predicciones de series temporales mediante redes neuronales LSTM: Normalización del precio y tokenización del tiempo

Creación de predicciones de series temporales mediante redes neuronales LSTM: Normalización del precio y tokenización del tiempo

Este artículo describe una estrategia simple para normalizar los datos del mercado utilizando el rango diario y entrenar una red neuronal para mejorar las predicciones del mercado. Los modelos desarrollados pueden utilizarse junto con un marco de análisis técnico existente o de forma independiente para ayudar a predecir la dirección general del mercado. Cualquier analista técnico puede perfeccionar aún más el marco descrito en este artículo para desarrollar modelos adecuados tanto para estrategias comerciales manuales como automatizadas.
La sandbox aleatoria

La sandbox aleatoria

El artículo incluye una "sandbox" interactiva como archivo Excel que simula datos de backtest de un Asesor Experto aleatorio. Los lectores pueden utilizar esto para ayudarse a explorar y comprender mejor el funcionamiento de los parámetros del AE por defecto con MetaTrader. El texto del artículo está diseñado para guiar al usuario a través de esta experiencia.
preview
Cómo construir un EA que opere automáticamente (Parte 15): Automatización (VII)

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

Para coronar esta secuencia sobre automatización vamos a complementar lo visto en el artículo anterior. Este muestra definitivamente cómo todo encajará, haciendo que el Asesor Experto funcione como un reloj.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 46): Búferes de indicador de periodo y símbolo múltiples

Trabajando con las series temporales en la biblioteca DoEasy (Parte 46): Búferes de indicador de periodo y símbolo múltiples

En el presente artículo, mejoraremos las clases de los objetos de los búferes de indicador para trabajar en el modo multisímbolo. De esta forma, tendremos todo listo para crear en nuestros programas indicadores de periodo y símbolo múltiples. También añadiremos la funcionalidad que falta en los búferes de cálculo, lo cual nos permitirá crear indicadores estándar de periodo y símbolo múltiples.
preview
DoEasy. Elementos de control (Parte 1): Primeros pasos

DoEasy. Elementos de control (Parte 1): Primeros pasos

Con este artículo, iniciamos un extenso tutorial sobre la creación de controles al estilo de Windows Forms en MQL5. Vamos a empezar el tema creando una clase de panel. Ya se está haciendo difícil manejar las cosas sin controles. Por consiguiente, crearemos todos los controles posibles al estilo de Windows Forms.
Trabajando con los precios y Señales en la biblioteca DoEasy (Parte 65): Colección de la profundidad de mercado y clase para trabajar con las Señales MQL5.com

Trabajando con los precios y Señales en la biblioteca DoEasy (Parte 65): Colección de la profundidad de mercado y clase para trabajar con las Señales MQL5.com

En el presente artículo, crearemos una clase de colección de profundidad de mercado para todos los símbolos y comenzaremos a desarrollar la funcionalidad necesaria para trabajar con el servicio de señales de MQL5.com. Para ello, crearemos una clase de objeto de señal.
preview
Trabajando con las series temporales en la biblioteca DoEasy (Parte 50): Indicadores estándar de período y símbolo múltiples con desplazamiento

Trabajando con las series temporales en la biblioteca DoEasy (Parte 50): Indicadores estándar de período y símbolo múltiples con desplazamiento

En el artículo de hoy, vamos a mejorar los métodos de la biblioteca para una representación correcta de los indicadores de período y símbolo múltiples cuyas líneas se muestran en el gráfico del símbolo actual con desplazamiento que se establece en los ajustes. Además, acondicionaremos el contenido dentro de los métodos de trabajo con los indicadores estándar y guardaremos el código sobrante del indicador final en la parte de la biblioteca.
preview
Recetas MQL5 - Servicios

Recetas MQL5 - Servicios

Este artículo describe las capacidades versátiles de los servicios, como los programas MQL5 que no requieren un gráfico vinculante. Asimismo, se detallan las diferencias de los servicios respecto a otros programas MQL5, enfatizando los matices del trabajo del desarrollador con los servicios. Como ejemplos, el lector podrá estudiar varias tareas que abarcan una amplia gama de funcionalidades que pueden implementarse como un servicio.
Enviando señales de trading a través de feeds RSS

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

Esta es mi idea sobre cómo enviar nuestras señales de trading como FEEDS RSS, una popular forma de comunicarnos con los miembros de nuestra comunidad ahora mismo.
preview
Paradigmas de programación (Parte 2): Enfoque orientado a objetos para el desarrollo de EA basados en la dinámica de precios

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

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

Algoritmos de optimización de la población: Búsqueda armónica (HS)

Hoy estudiaremos y pondremos a prueba un algoritmo de optimización muy potente, la búsqueda armónica (HS), que se inspira en el proceso de búsqueda de la armonía sonora perfecta. ¿Qué algoritmo lidera ahora mismo nuestra clasificación?
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
Cómo añadir Trailing Stop según el indicador Parabolic SAR

Cómo añadir Trailing Stop según el indicador Parabolic SAR

Al crear una estrategia comercial, debemos probar una amplia variedad de stops de protección. Y aquí surge la idea del ajuste dinámico del nivel de Stop Loss siguiendo el precio. El mejor candidato en este punto es el indicador Parabolic SAR, resulta difícil pensar en algo más simple y claro.
Un ayudante para el trader basado en un análisis MACD ampliado

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

El script 'Trader's Assistant' (ayudante del trader), que sirve para tomar decisiones en la apertura de operaciones, se basa en un análisis ampliado del estado de MACD en las tres últimas barras de cualquier marco temporal. También se puede utilizar en backtesting.
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
Trailing stop en el trading

Trailing stop en el trading

En este artículo, analizaremos el uso del trailing stop en el trading: su utilidad y eficacia, y cómo podemos utilizarlo. La eficacia de un trailing stop depende en gran medida de la volatilidad del precio y de la selección del nivel de stop loss. Para fijar un stop loss pueden usarse diversos métodos.
Gráficos en la biblioteca DoEasy (Parte 73): Objeto de formulario del elemento gráfico

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

En el presente artículo, iniciaremos un nuevo apartado del trabajo con gráficos. En esta ocasión, vamos a crear el objeto de estado del ratón, el objeto básico de todos los elementos gráficos y la clase de objeto de formulario de los elementos gráficos de la biblioteca.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte IX): Compatibilidad con MQL4 - Preparando los datos

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

En artículos anteriores, comenzamos a crear una gran biblioteca multiplataforma, cuyo cometido es simplificar la escritura de programas para las plataformas MetaTrader 5 y MetaTrader 4. En la novena parte, hemos creado una clase que monitoreará los eventos de modificación de las órdenes y posiciones de mercado. En el presente artículo, comenzaremos a desarrollar la biblioteca para hacerla totalmente compatible con MQL4.
preview
Redes neuronales: así de sencillo (Parte 14): Clusterización de datos

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

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

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

La regresión es una tarea que consiste en predecir un valor real a partir de un ejemplo sin etiquetar. Para evaluar la precisión de las predicciones de los modelos de regresión, se usan las llamadas métricas de regresión.
preview
DoEasy. Funciones de servicio (Parte 2): Patrón "Barra interior"

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

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