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
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
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000

En esta serie de artículos, analizamos cómo podemos construir Asesores Expertos capaces de adaptarse de forma autónoma a las condiciones dinámicas del mercado. En el artículo de hoy, intentaremos sintonizar una red neuronal profunda con los mercados sintéticos de Deriv.
Enviando señales de trading a través de feeds RSS
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
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
Algoritmos de optimización de la población: Algoritmo de enjambre de aves (Bird Swarm Algorithm, BSA)

Algoritmos de optimización de la población: Algoritmo de enjambre de aves (Bird Swarm Algorithm, BSA)

El artículo analiza un algoritmo BSA basado en el comportamiento de las aves, que se inspira en las interacciones colectivas de bandadas de aves en la naturaleza. Las diferentes estrategias de búsqueda de individuos en el BSA, que incluyen el cambio entre el comportamiento de vuelo, la vigilancia y la búsqueda de alimento, hacen que este algoritmo sea multidimensional. El algoritmo usa los principios del comportamiento de las bandadas, la comunicación, la adaptabilidad, el liderazgo y el seguimiento de las aves para encontrar con eficacia soluciones óptimas.
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.
Un ayudante para el trader basado en un análisis MACD ampliado
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.
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

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
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.
preview
Algoritmos de optimización de la población: Algoritmo de búsqueda gravitacional (GSA)

Algoritmos de optimización de la población: Algoritmo de búsqueda gravitacional (GSA)

El GSA es un algoritmo de optimización basado en la población e inspirado en la naturaleza no viviente. La simulación de alta fidelidad de la interacción entre los cuerpos físicos, gracias a la ley de la gravedad de Newton presente en el algoritmo, permite observar la mágica danza de los sistemas planetarios y los cúmulos galácticos, capaz de hipnotizar en la animación. Hoy vamos a analizar uno de los algoritmos de optimización más interesantes y originales. Adjuntamos un simulador de movimiento de objetos espaciales.
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

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.
preview
StringFormat(). Panorámica, ejemplos de uso listos para aplicar

StringFormat(). Panorámica, ejemplos de uso listos para aplicar

El artículo supone una continuación de la revisión de la función PrintFormat(). Hoy veremos brevemente cómo formatear líneas utilizando StringFormat() y su uso posterior en el programa. Asimismo, escribiremos plantillas para mostrar información sobre un símbolo en el registro del terminal. El presente artículo resultará útil tanto a principiantes como a desarrolladores experimentados.
preview
Modelos de clasificación de la biblioteca Scikit-learn y su exportación a ONNX

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

En este artículo, analizaremos el uso de todos los modelos de clasificación del paquete Scikit-learn para resolver el problema de la clasificación de los iris de Fisher; asimismo, intentaremos convertir estos al formato ONNX y usar los modelos resultantes en programas MQL5. También compararemos la precisión de los modelos originales y sus versiones ONNX en el conjunto de datos completo Iris dataset.
Enviando señales de trading en un asesor experto universal
Enviando señales de trading en un asesor experto universal

Enviando señales de trading en un asesor experto universal

Este artículo describe las diferentes formas de enviar señales de trading desde una unidad de programa de señal de un asesor experto universal a la unidad de control de las posiciones y órdenes. Hace hincapié en las interfaces serie y paralelo
preview
Cómo integrar los conceptos de dinero inteligente (Smart Money Concepts, SMC) junto con el indicador RSI en un EA

Cómo integrar los conceptos de dinero inteligente (Smart Money Concepts, SMC) junto con el indicador RSI en un EA

Concepto de dinero inteligente (ruptura de estructura) junto con el indicador RSI para tomar decisiones comerciales automatizadas informadas basadas en la estructura del mercado.
preview
Analizamos ejemplos de estrategias comerciales en el terminal de cliente

Analizamos ejemplos de estrategias comerciales en el terminal de cliente

En este artículo, utilizaremos esquemas de bloques para analizar visualmente la lógica de los asesores de entrenamiento adjuntos al terminal, ubicados en la carpeta Experts\Free Robots, que negocian con patrones de velas.
Gráficos en la biblioteca DoEasy (Parte 84): Clases herederas del objeto gráfico abstracto estándar
Gráficos en la biblioteca DoEasy (Parte 84): Clases herederas del objeto gráfico abstracto estándar

Gráficos en la biblioteca DoEasy (Parte 84): Clases herederas del objeto gráfico abstracto estándar

En este artículo, analizaremos la creación de las clases herederas del objeto gráfico abstracto estándar del terminal. El objeto de esta clase describirá las propiedades comunes para todos los objetos gráficos, es decir, se tratará simplemente de un cierto objeto gráfico. Para aclarar su pertenencia a un objeto gráfico real, necesitaremos heredar de él, y en la clase del objeto heredado, escribir las propiedades inherentes a ese objeto gráfico en particular.
preview
Análisis de múltiples símbolos con Python y MQL5 (Parte I): Fabricantes de circuitos integrados del NASDAQ

Análisis de múltiples símbolos con Python y MQL5 (Parte I): Fabricantes de circuitos integrados del NASDAQ

Acompáñenos mientras debatimos cómo puede utilizar la IA para optimizar el tamaño de sus posiciones y las cantidades de sus órdenes para maximizar la rentabilidad de su cartera. Mostraremos cómo identificar algorítmicamente una cartera óptima y adaptar su cartera a sus expectativas de rentabilidad o niveles de tolerancia al riesgo. En este debate, utilizaremos la biblioteca SciPy y el lenguaje MQL5 para crear una cartera óptima y diversificada utilizando todos los datos de que disponemos.
preview
Optimización automatizada de parámetros para estrategias de negociación con Python y MQL5

Optimización automatizada de parámetros para estrategias de negociación con Python y MQL5

Existen varios tipos de algoritmos para la autooptimización de estrategias y parámetros de negociación. Estos algoritmos se utilizan para mejorar automáticamente las estrategias de negociación basándose en datos históricos y actuales del mercado. En este artículo veremos uno de ellos con ejemplos en Python y MQL5.
preview
Desarrollando un EA comercial desde cero (Parte 08): Un salto conceptual (I)

Desarrollando un EA comercial desde cero (Parte 08): Un salto conceptual (I)

¿Cómo implementar una nueva funcionalidad de la forma más sencilla posible? Aquí daremos un paso atrás y luego daremos dos pasos adelante.
preview
Algoritmos de optimización de la población: Algoritmo de siembra y crecimiento de árboles (Saplings Sowing and Growing up — SSG)

Algoritmos de optimización de la población: Algoritmo de siembra y crecimiento de árboles (Saplings Sowing and Growing up — SSG)

El algoritmo de siembra y crecimiento de árboles (SSG) está inspirado en uno de los organismos más resistentes del planeta, que es un ejemplo notable de supervivencia en una amplia variedad de condiciones.
preview
Desarrollo de un EA comercial desde cero (Parte 28): Rumbo al futuro (III)

Desarrollo de un EA comercial desde cero (Parte 28): Rumbo al futuro (III)

Nuestro sistema de órdenes todavía falla en hacer una cosa, pero FINALMENTE lo resolveremos...
Gráficos en la biblioteca DoEasy (Parte 75): Métodos de trabajo con primitivas y texto en el elemento gráfico básico
Gráficos en la biblioteca DoEasy (Parte 75): Métodos de trabajo con primitivas y texto en el elemento gráfico básico

Gráficos en la biblioteca DoEasy (Parte 75): Métodos de trabajo con primitivas y texto en el elemento gráfico básico

En el presente artículo, continuaremos el desarrollo de la clase de elemento gráfico de todos los elementos gráficos de la biblioteca creados sobre la base de la Biblioteca Estándar CCanvas. En concreto, crearemos los métodos para dibujar las primitivas gráficas y los métodos para mostrar el texto en un objeto de elemento gráfico.
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VIII): Eventos de modificación de órdenes y posiciones
Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VIII): Eventos de modificación de órdenes y posiciones

Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VIII): Eventos de modificación de órdenes y posiciones

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 el séptimo artículo, añadimos el seguimiento de los eventos de activación de órdenes StopLimit y preparamos la funcionalidad para monitorear el resto de eventos que tienen lugar con las órdenes y posiciones. En el presente artículo, vamos a crear una clase que monitoreará los eventos de modificación de las órdenes y posiciones de mercado.
preview
Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 2): Señales del indicador - Parabolic SAR de marco temporal múltiple

Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 2): Señales del indicador - Parabolic SAR de marco temporal múltiple

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. Esta vez usaremos solo un indicador, a saber, Parabolic SAR o iSAR en varios marcos temporales, comenzando desde PERIOD_M15 y terminando con PERIOD_D1.
preview
Algoritmos de optimización de la población: Algoritmo de forrajeo bacteriano (Bacterial Foraging Optimisation — BFO)

Algoritmos de optimización de la población: Algoritmo de forrajeo bacteriano (Bacterial Foraging Optimisation — BFO)

La estrategia de búsqueda de alimento de la bacteria E.coli inspiró a los científicos para crear el algoritmo de optimización BFO. El algoritmo contiene ideas originales y enfoques prometedores para la optimización y merece ser investigado en profundidad.
Enviar mensajes desde un Asesor Experto mediante Skype
Enviar mensajes desde un Asesor Experto mediante Skype

Enviar mensajes desde un Asesor Experto mediante Skype

Este artículo aborda la manera de enviar mensajes internos y mensajes SMS desde un Asesor Experto a un teléfono móvil mediante Skype.
Promediación efectiva de algoritmos con retraso mínimo: Uso en indicadores y en Asesores Expertos
Promediación efectiva de algoritmos con retraso mínimo: Uso en indicadores y en Asesores Expertos

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

Este artículo describe las funciones de promediación personalizadas de alta calidad desarrolladas por el autor: JJMASeries(), JurXSeries(), JLiteSeries(), ParMASeries(), LRMASeries(), T3Series(). El autor considera la sustitución en caliente de estas funciones en los indicadores utilizando la llamada de la función SmoothXSeries().
preview
Implementación de breakeven en MQL5 (Parte 1): Clase base y breakeven por puntos fijos

Implementación de breakeven en MQL5 (Parte 1): Clase base y breakeven por puntos fijos

En este artículo se estudia el uso del breakeven aplicado a estrategias automáticas en MQL5. Se parte de una explicación sencilla sobre qué es, cómo se implementa y cuáles son sus posibles variantes. Luego, se integra la funcionalidad dentro de un bot de Order Blocks, creado en el último artículo sobre gestión de riesgo. Para evaluar su comportamiento, se ejecutaron dos backtest bajo condiciones específicas: uno sin breakeven y otro con esta función activa.
La inactividad es el estímulo del progreso. Marcado semiautomático de una plantilla.
La inactividad es el estímulo del progreso. Marcado semiautomático de una plantilla.

La inactividad es el estímulo del progreso. Marcado semiautomático de una plantilla.

Entre las docenas de ejemplos de cómo trabajar con gráficos, hay un método para marcar manualmente una plantilla. Líneas de tendencia, canales, niveles de apoyo/resistencia, etc. se imponen en un gráfico. Por supuesto que hay algunos programas especiales para este tipo de programas. Cada uno decide pos sí mismo/a qué método utilizar. En este artículo, ofrezco varios métodos de marcado manual para que los considere, con la subsecuente automatización de algunos elementos de acciones rutinarias repetidas.
Gráficos en la biblioteca DoEasy (Parte 74): Elemento gráfico básico sobre la clase CCanvas
Gráficos en la biblioteca DoEasy (Parte 74): Elemento gráfico básico sobre la clase CCanvas

Gráficos en la biblioteca DoEasy (Parte 74): Elemento gráfico básico sobre la clase CCanvas

En esta ocasión, vamos a revisar el concepto de construcción de objetos gráficos del artículo anterior y a preparar una clase básica para todos los objetos gráficos de la biblioteca creados sobre la base de la clase CCanvas de la Biblioteca Estándar.
Interfaces gráficas XI: Controles dibujados (build 14.2)
Interfaces gráficas XI: Controles dibujados (build 14.2)

Interfaces gráficas XI: Controles dibujados (build 14.2)

En la nueva versión de la librería, todos los controles van a dibujarse en los objetos gráficos separados tipo OBJ_BITMAP_LABEL. Además, seguiremos describiendo la optimización del código: es decir, analizaremos los cambios en las clases que representan el núcleo de la librería.
Otras clases en la biblioteca DoEasy (Parte 66): Clases de Colección de Señales MQL5.com
Otras clases en la biblioteca DoEasy (Parte 66): Clases de Colección de Señales MQL5.com

Otras clases en la biblioteca DoEasy (Parte 66): Clases de Colección de Señales MQL5.com

En este artículo, crearemos una clase de colección de señales del Servicio de señales de MQL5.com con funciones para gestionar las señales suscritas, y también modificaremos la clase del objeto de instantánea de la profundidad de mercado para mostrar el volumen total de la profundidad de mercado de compra y venta.
Gráficos en la biblioteca DoEasy (Parte 95): Elementos de control de los objetos gráficos compuestos
Gráficos en la biblioteca DoEasy (Parte 95): Elementos de control de los objetos gráficos compuestos

Gráficos en la biblioteca DoEasy (Parte 95): Elementos de control de los objetos gráficos compuestos

En este artículo, analizaremos el instrumental usado para gestionar los objetos gráficos compuestos, a saber, los elementos de gestión del objeto gráfico estándar extendido. Hoy nos desviaremos un poco del tema del desplazamiento de objetos gráficos compuestos y crearemos un manejador de eventos de cambio del gráfico en el que se encuentra el objeto gráfico compuesto; también trabajaremos con los objetos de gestión de objetos gráficos compuestos.
preview
Representaciones en el dominio de la frecuencia de series temporales: El espectro de potencia

Representaciones en el dominio de la frecuencia de series temporales: El espectro de potencia

En este artículo, veremos métodos asociados con el análisis de series temporales en el dominio de la frecuencia. También prestaremos atención a los beneficios del estudio de las funciones espectrales de series temporales al construir modelos predictivos. Además, analizaremos algunas perspectivas prometedoras para el análisis de series temporales en el dominio de la frecuencia utilizando la transformada discreta de Fourier (DFT).
preview
Obtenga una ventaja sobre cualquier mercado (Parte II): Predicción de indicadores técnicos

Obtenga una ventaja sobre cualquier mercado (Parte II): Predicción de indicadores técnicos

¿Sabía que podemos obtener más precisión pronosticando ciertos indicadores técnicos que prediciendo el precio subyacente de un símbolo negociado? Únase a nosotros para explorar cómo aprovechar esta información para mejorar las estrategias de negociación.
preview
Aprendiendo MQL5 de principiante a profesional (Parte VI): Fundamentos del desarrollo de asesores expertos

Aprendiendo MQL5 de principiante a profesional (Parte VI): Fundamentos del desarrollo de asesores expertos

Este artículo continúa la serie para principiantes. Aquí discutiremos los principios básicos del desarrollo de Asesores Expertos (EAs). Crearemos dos EAs: el primero operará sin indicadores, utilizando órdenes pendientes, y el segundo se basará en el indicador MA estándar, abriendo operaciones al precio actual. Aquí doy por sentado que ya no eres un principiante absoluto y que dominas relativamente bien el material de los artículos anteriores.
Gráficos en la biblioteca DoEasy (Parte 93): Preparando la funcionalidad para crear objetos gráficos compuestos
Gráficos en la biblioteca DoEasy (Parte 93): Preparando la funcionalidad para crear objetos gráficos compuestos

Gráficos en la biblioteca DoEasy (Parte 93): Preparando la funcionalidad para crear objetos gráficos compuestos

En el presente artículo, comenzaremos a desarrollar la funcionalidad necesaria para crear objetos gráficos compuestos. Nuestra biblioteca ofrecerá soporte a la creación de objetos gráficos compuestos complejos en los que dichos objetos podrán tener cualquier jerarquía de relaciones. Vamos a preparar todas las clases necesarias para la posterior implementación de tales objetos.
preview
Algoritmos de optimización de la población: Búsqueda de bancos de peces (Fish School Search — FSS)

Algoritmos de optimización de la población: Búsqueda de bancos de peces (Fish School Search — FSS)

La búsqueda de bancos de peces (FSS) es un nuevo algoritmo de optimización moderno inspirado en el comportamiento de los peces en un banco, la mayoría de los cuales, hasta el 80%, nadan en una comunidad organizada de parientes. Se ha demostrado que las asociaciones de peces juegan un papel importante a la hora de buscar alimento y protegerse contra los depredadores de forma eficiente.