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
Del básico al intermedio: Variables (I)

Del básico al intermedio: Variables (I)

Muchos programadores principiantes tienen muchas dificultades para comprender por qué sus códigos no funcionan como esperan. Existen muchos detalles que hacen que un código sea realmente funcional. No se trata simplemente de escribir toda una serie de funciones y operaciones para que un código funcione. ¿Qué tal si aprendemos de la manera correcta cómo se crea un código real en lugar de copiar y pegar fragmentos de código encontrados aquí y allá? El contenido expuesto aquí tiene como objetivo, pura y simplemente, la 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
Reimaginando las estrategias clásicas en MQL5 (Parte II): FTSE100 y bonos del Reino Unido (UK Gilts)

Reimaginando las estrategias clásicas en MQL5 (Parte II): FTSE100 y bonos del Reino Unido (UK Gilts)

En esta serie de artículos, exploramos estrategias de negociación populares e intentamos mejorarlas utilizando IA. En el artículo de hoy, retomamos la estrategia de negociación clásica basada en la relación entre el mercado de valores y el mercado de bonos.
preview
Del básico al intermedio: Eventos (II)

Del básico al intermedio: Eventos (II)

En este artículo veremos que no siempre es necesario implementar las cosas de una u otra manera. Existen formas alternativas de hacer las cosas. Comprender los conceptos explicados en artículos anteriores es primordial para entender adecuadamente el contenido de este artículo. El contenido expuesto aquí tiene como objetivo único y exclusivo la didáctica. En ningún caso debe considerarse una aplicación final, en la que el objetivo no sea el estudio de los conceptos aquí mostrados.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte IV): Capa de seguridad de inicio de sesión

Creación de un Panel de administración de operaciones en MQL5 (Parte IV): Capa de seguridad de inicio de sesión

Imagine un actor malicioso infiltrándose en la sala del administrador comercial y obteniendo acceso a las computadoras y al panel de administración que se utilizan para comunicar información valiosa a millones de comerciantes en todo el mundo. Una intrusión de este tipo podría tener consecuencias desastrosas, como el envío no autorizado de mensajes engañosos o clics aleatorios en botones que desencadenan acciones no deseadas. En esta discusión, exploraremos las medidas de seguridad en MQL5 y las nuevas características de seguridad que hemos implementado en nuestro Panel de administración para protegernos contra estas amenazas. Al mejorar nuestros protocolos de seguridad, nuestro objetivo es proteger nuestros canales de comunicación y mantener la confianza de nuestra comunidad comercial global. Encuentre más información en la discusión de este artículo.
preview
Algoritmo de Tribu Artificial (Artificial Tribe Algorithm, ATA)

Algoritmo de Tribu Artificial (Artificial Tribe Algorithm, ATA)

Este artículo detalla los componentes clave y las innovaciones del algoritmo de optimización ATA, un método evolutivo con un sistema de comportamiento dual único que se adapta según la situación. Usando el cruce para la exploración en profundidad y la migración para la búsqueda cuando se dan atascos en óptimos locales, el ATA combina el aprendizaje individual y el social.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 04): Haciendo ajustes (II)

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

Vamos continuar con el desarrollo del sistema y el control. Sin una forma de controlar el servicio, se complica avanzar y mejorar el sistema.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 09): Eventos personalizados

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 09): Eventos personalizados

Aquí veremos cómo accionar eventos personalizados y mejorar la cuestión de cómo el indicador informa del estado del servicio de repetición/simulación.
preview
Pruebas de robustez en asesores expertos

Pruebas de robustez en asesores expertos

En el desarrollo de una estrategia hay muchos detalles complejos a tener en cuenta, muchos de los cuales no se destacan para los traders principiantes. Como resultado, muchos comerciantes, incluido yo mismo, hemos tenido que aprender estas lecciones a las duras penas. Este artículo se basa en mis observaciones de errores comunes que la mayoría de los traders principiantes encuentran al desarrollar estrategias en MQL5. Ofrecerá una variedad de consejos, trucos y ejemplos para ayudar a identificar la descalificación de un EA y probar la solidez de nuestros propios EA de una manera fácil de implementar. El objetivo es educar a los lectores, ayudándolos a evitar futuras estafas al comprar EA, así como a prevenir errores en el desarrollo de su propia estrategia.
preview
Del básico al intermedio: Definiciones (I)

Del básico al intermedio: Definiciones (I)

En este artículo, haremos cosas que para muchos parecerán extrañas y totalmente fuera de contexto, pero que, si se aplican bien, harán que tu aprendizaje sea mucho más divertido y emocionante, ya que podemos construir cosas bastante interesantes basándonos en lo que se muestra aquí, lo que permite una mejor asimilación de la sintaxis del lenguaje MQL5. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
Kit de herramientas de negociación MQL5 (Parte 4): Desarrollo de una biblioteca EX5 para la gestión del historial

Kit de herramientas de negociación MQL5 (Parte 4): Desarrollo de una biblioteca EX5 para la gestión del historial

Aprenda a recuperar, procesar, clasificar, ordenar, analizar y gestionar posiciones cerradas, órdenes e historiales de operaciones utilizando MQL5 mediante la creación de una amplia biblioteca EX5 de gestión de historiales con un enfoque detallado paso a paso.
preview
Implementación del algoritmo criptográfico SHA-256 desde cero en MQL5

Implementación del algoritmo criptográfico SHA-256 desde cero en MQL5

La creación de integraciones de intercambio de criptomonedas sin DLL ha sido durante mucho tiempo un reto, pero esta solución proporciona un marco completo para la conectividad directa con el mercado.
preview
El método de agrupamiento para el manejo de datos: Implementación del algoritmo iterativo multicapa en MQL5

El método de agrupamiento para el manejo de datos: Implementación del algoritmo iterativo multicapa en MQL5

En este artículo describimos la implementación del algoritmo iterativo multicapa del método de agrupamiento para el manejo de datos en MQL5.
preview
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte V): Modelos profundos de Markov

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte V): Modelos profundos de Markov

En esta discusión, aplicaremos una cadena de Markov simple en un indicador RSI, para observar cómo se comporta el precio después de que el indicador pasa por niveles clave. Concluimos que las señales de compra y venta más fuertes en el par NZDJPY se generan cuando el RSI está en el rango 11-20 y 71-80, respectivamente. Demostraremos cómo puedes manipular tus datos para crear estrategias comerciales óptimas que se aprenden directamente de los datos que tienes. Además, demostraremos cómo entrenar una red neuronal profunda para aprender a utilizar la matriz de transición de manera óptima.
preview
Introducción a las curvas ROC (Receiver Operating Characteristic)

Introducción a las curvas ROC (Receiver Operating Characteristic)

Las curvas ROC son representaciones gráficas que se utilizan para evaluar el rendimiento de los clasificadores. A pesar de que los gráficos ROC son relativamente sencillos, existen conceptos erróneos y dificultades comunes a la hora de utilizarlos en la práctica. El objetivo de este artículo es ofrecer una introducción a los gráficos ROC como herramienta para los profesionales que desean comprender la evaluación del rendimiento de los clasificadores.
preview
Simulación de mercado (Parte 10): Sockets (IV)

Simulación de mercado (Parte 10): Sockets (IV)

En este artículo, te muestro lo que necesitas hacer para empezar a utilizar Excel y controlar MetaTrader 5, pero de una forma muy interesante. Para ello, utilizaremos un complemento de Excel, de modo que no sea necesario utilizar el VBA integrado. Si no sabes de qué complemento se trata, consulta este artículo y aprende a programar en Python directamente en Excel.
preview
Desarrollo de un sistema comercial basado en el libro de órdenes (Parte I): el indicador

Desarrollo de un sistema comercial basado en el libro de órdenes (Parte I): el indicador

El libro de órdenes —Depth of Market— es, sin duda, un elemento muy relevante para la ejecución de operaciones rápidas, especialmente en algoritmos de alta frecuencia (HFT). En esta serie de artículos, exploraremos este tipo de evento comercial que podemos obtener a través del bróker en muchos de los símbolos negociados. Empezaremos con un indicador en el que se pueden configurar la paleta de colores, la posición y el tamaño del histograma que se mostrará directamente en el gráfico. También veremos cómo generar eventos BookEvent para probar el indicador en condiciones específicas. Otros posibles temas que trataremos en artículos futuros son el almacenamiento de estas distribuciones de precios y las formas de utilizarlas en el simulador de estrategias.
preview
Desarrollo de un sistema de repetición (Parte 52): Esto complica las cosas (IV)

Desarrollo de un sistema de repetición (Parte 52): Esto complica las cosas (IV)

En este artículo vamos a cambiar el indicador de mouse para poder interactuar con el indicador de control, ya que esta se está realizando de forma errática.
preview
Simulación de mercado (Parte 04): Creación de la clase C_Orders (I)

Simulación de mercado (Parte 04): Creación de la clase C_Orders (I)

En este artículo comenzaremos a construir la clase C_Orders para poder enviar órdenes al servidor de negociación. Lo haremos poco a poco, ya que el objetivo es explicar detalladamente cómo se realizará esto a través del sistema de mensajería.
preview
Desarrollo de un sistema de repetición (Parte 49): Esto complica las cosas (I)

Desarrollo de un sistema de repetición (Parte 49): Esto complica las cosas (I)

En este artículo complicaremos un poco las cosas. Utilizando lo que vimos en los artículos anteriores, comenzaremos a liberar el archivo de plantilla para que el usuario pueda utilizar una plantilla personalizada. Sin embargo, haré los cambios poco a poco, ya que también modificaré el indicador con el fin de reducir la carga de MetaTrader 5.
preview
Integración de las API de los brókers con los Asesores Expertos usando MQL5 y Python

Integración de las API de los brókers con los Asesores Expertos usando MQL5 y Python

En este artículo, analizaremos la implementación de MQL5 en colaboración con Python para realizar operaciones relacionadas con los brókers. Imagina tener un asesor experto (Expert Advisor, EA) funcionando continuamente alojado en un VPS, ejecutando operaciones en tu nombre. En algún momento, la capacidad de la EA para gestionar fondos se vuelve primordial. Esto incluye operaciones como recargar su cuenta de trading e iniciar retiradas. En este debate, analizaremos las ventajas y la aplicación práctica de estas funciones, garantizando una integración perfecta de la gestión de fondos en su estrategia comercial. ¡Estén atentos!
preview
Visualización de estrategias en MQL5: distribuimos los resultados de la optimización en gráficos de criterios

Visualización de estrategias en MQL5: distribuimos los resultados de la optimización en gráficos de criterios

En este artículo, escribiremos un ejemplo de visualización del proceso de optimización e implementaremos la visualización de las tres mejores pasadas para cuatro criterios de optimización. Asimismo, ofreceremos la posibilidad de seleccionar una de las tres mejores pasadas para mostrar sus datos en tablas y gráficos.
preview
Cómo publicar código en CodeBase: Guía práctica

Cómo publicar código en CodeBase: Guía práctica

En este artículo, analizaremos el proceso de publicación de diferentes tipos de programas para el terminal en la biblioteca de código fuente MQL5 usando ejemplos reales.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte VI): Interfaz de múltiples funciones (I)

Creación de un Panel de administración de operaciones en MQL5 (Parte VI): Interfaz de múltiples funciones (I)

La función del administrador de operaciones va más allá de las comunicaciones por Telegram; también puede participar en diversas actividades de control, como la gestión de órdenes, el seguimiento de posiciones y la personalización de interfaces. En este artículo, compartiremos información práctica sobre cómo ampliar nuestro programa para admitir múltiples funcionalidades en MQL5. Esta actualización tiene como objetivo superar la limitación actual del Panel de administración, que se centra principalmente en la comunicación, permitiéndole gestionar una gama más amplia de tareas.
preview
Observador de Connexus (Parte 8): Cómo agregar un observador de solicitudes

Observador de Connexus (Parte 8): Cómo agregar un observador de solicitudes

En esta última entrega de nuestra serie de bibliotecas Connexus, exploramos la implementación del patrón Observer, así como refactorizaciones esenciales de rutas de archivos y nombres de métodos. Esta serie cubrió todo el desarrollo de Connexus, diseñado para simplificar la comunicación HTTP en aplicaciones complejas.
preview
Desarrollo de un sistema de repetición (Parte 43): Proyecto Chart Trade (II)

Desarrollo de un sistema de repetición (Parte 43): Proyecto Chart Trade (II)

Gran parte de las personas que quieren, o desean aprender a programar, no tienen en realidad idea de lo que están haciendo. Lo que hacen es intentar crear las cosas de una determinada manera. Sin embargo, cuando programamos no estamos realmente intentando crear una solución. Si intentas hacerlo de esta manera, generarás más problemas que soluciones. Aquí haremos algo un poco más avanzado, y por consecuencia diferente.
preview
Formulación Genérica de Optimización (GOF, Generic Optimization Formulation) utilizando el `Criterio máximos del usuario` (Custom Max) con múltiples restricciones en el Probador de Estrategias

Formulación Genérica de Optimización (GOF, Generic Optimization Formulation) utilizando el `Criterio máximos del usuario` (Custom Max) con múltiples restricciones en el Probador de Estrategias

En este artículo presentaremos una forma de implementar problemas de optimización con múltiples objetivos y restricciones al seleccionar «Custom Max» en la pestaña Setting del terminal MetaTrader 5. Como ejemplo, el problema de optimización podría ser: Maximizar el Factor de Beneficio, el Beneficio Neto y el Factor de Recuperación, de forma que la reducción sea inferior al 10%, el número de pérdidas consecutivas sea inferior a 5 y el número de operaciones por semana sea superior a 5.
preview
Optimización de la quimiotaxis bacteriana - Bacterial Chemotaxis Optimisation (BCO)

Optimización de la quimiotaxis bacteriana - Bacterial Chemotaxis Optimisation (BCO)

Este artículo presenta la versión original del algoritmo de optimización de la quimiotaxis bacteriana (BCO) y su versión modificada. Hoy veremos con detalle todas las diferencias, centrándonos en la nueva versión de BCOm, que simplifica el mecanismo de movimiento bacteriano, reduce la dependencia de la historia de cambios de posición y utiliza operaciones matemáticas más sencillas en comparación con la versión original, sobrecargada computacionalmente. También realizaremos pruebas y extraeremos conclusiones.
preview
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 11): EA de señales Heikin Ashi

Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 11): EA de señales Heikin Ashi

MQL5 ofrece infinitas oportunidades para desarrollar sistemas de trading automatizados adaptados a sus preferencias. ¿Sabías que incluso puede realizar cálculos matemáticos complejos? En este artículo, presentamos la técnica japonesa Heikin-Ashi como una estrategia de trading automatizada.
preview
Del básico al intermedio: Punto flotante

Del básico al intermedio: Punto flotante

Este artículo es una breve introducción a lo que sería el punto flotante. Como este contenido es muy complicado, te aconsejo leer con calma y atención. No esperes dominar el sistema de punto flotante de manera rápida. El mismo solo se domina con el tiempo y la experiencia de uso. Pero este artículo te ayudará a entender por qué, a veces, tu aplicación reporta un resultado diferente del esperado originalmente. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte VIII): Panel de análisis

Creación de un Panel de administración de operaciones en MQL5 (Parte VIII): Panel de análisis

Hoy profundizamos en la incorporación de métricas de trading útiles dentro de una ventana especializada integrada en el EA del Panel de Administración. Este debate se centra en la implementación de MQL5 para desarrollar un panel de análisis y destaca el valor de los datos que proporciona a los administradores de operaciones bursátiles. El impacto es principalmente educativo, ya que se extraen valiosas lecciones del proceso de desarrollo, lo que beneficia tanto a los desarrolladores noveles como a los experimentados. Esta función demuestra las oportunidades ilimitadas que ofrece esta serie de desarrollo al equipar a los gestores comerciales con herramientas de software avanzadas. Además, exploraremos la implementación de las clases PieChart y ChartCanvas como parte de la continua expansión de las capacidades del panel del administrador de operaciones.
preview
El método de manejo de datos en grupo: implementación del algoritmo combinatorio en MQL5

El método de manejo de datos en grupo: implementación del algoritmo combinatorio en MQL5

En este artículo continuamos nuestra exploración de la familia de algoritmos del método de manejo de datos en grupo, con la implementación del algoritmo combinatorio junto con su encarnación refinada, el algoritmo combinatorio selectivo en MQL5.
preview
Del básico al intermedio: Precedencia de operadores

Del básico al intermedio: Precedencia de operadores

Se trata, sin duda, del tema más complicado de explicar únicamente con la parte teórica. Por esta razón, te aconsejo que practiques lo que se mostrará aquí. Aunque al principio todo parezca simple, esta cuestión sobre los operadores solo se comprenderá bien con la práctica aliada a un estudio constante. 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.
preview
Reimaginando las estrategias clásicas (Parte VIII): Los mercados de divisas y metales preciosos en el USDCAD

Reimaginando las estrategias clásicas (Parte VIII): Los mercados de divisas y metales preciosos en el USDCAD

En esta serie de artículos, revisamos estrategias de negociación bien conocidas para ver si podemos mejorarlas utilizando IA. En el artículo de hoy comprobaremos si existe una relación fiable entre los metales preciosos y las divisas.
preview
Desarrollo de un sistema de repetición (Parte 66): Presionando play en el servicio (VII)

Desarrollo de un sistema de repetición (Parte 66): Presionando play en el servicio (VII)

En este artículo, implementaremos una primera solución para identificar cuándo puede aparecer una nueva barra en el gráfico. Esta solución es aplicable a diversas situaciones. Sin embargo, comprender su desarrollo puede ayudarte a entender varios aspectos. 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 presentados.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 08): Bloqueo del indicador

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 08): Bloqueo del indicador

En este artículo te mostraré cómo bloquear un indicador, simplemente utilizando el lenguaje MQL5, de una forma muy interesante y sorprendente.
preview
Características del Wizard MQL5 que debe conocer (Parte 17): Negociación con multidivisas

Características del Wizard MQL5 que debe conocer (Parte 17): Negociación con multidivisas

La negociación con varias divisas no está disponible por defecto cuando se crea un asesor experto mediante el asistente. Examinamos dos posibles trucos que los operadores pueden utilizar para poner a prueba sus ideas con más de un símbolo a la vez.
preview
Desarrollo de un sistema de repetición (Parte 46): Proyecto Chart Trade (V)

Desarrollo de un sistema de repetición (Parte 46): Proyecto Chart Trade (V)

¿Cansado de perder tiempo buscando ese archivo que es necesario para que tu aplicación funcione? ¿Qué tal si incluimos todo en el ejecutable? Así nunca perderás tiempo buscando las cosas. Sé que muchos utilizan exactamente esa forma de distribuir y guardar las cosas. Pero existe una manera mucho más adecuada. Al menos en lo que respecta a la distribución de ejecutables y almacenamiento de los mismos. La forma que explicaré aquí, puede ser de gran ayuda. Ya que puedes usar el propio MetaTrader 5 como un gran ayudante, así como el MQL5. No es algo tan complejo ni difícil de entender.
preview
Desarrollo de un sistema de repetición (Parte 68): Ajuste del tiempo (I)

Desarrollo de un sistema de repetición (Parte 68): Ajuste del tiempo (I)

A continuación, continuaremos con el trabajo de lograr que el indicador del mouse nos informe sobre el tiempo restante de la barra en momentos de baja liquidez. Aunque a primera vista parece sencillo, verás que esta tarea es mucho más complicada. Esto se debe a algunos obstáculos que tendremos que superar. Por eso, es importante que sigas esta primera parte para poder comprender las siguientes.
preview
Del básico al intermedio: Plantilla y Typename (V)

Del básico al intermedio: Plantilla y Typename (V)

En este artículo, veremos un último caso simple de uso de plantillas, pero también veremos cuál es la utilidad y por qué la necesidad de utilizar typename en tus códigos. Aunque este artículo pueda parecer un tanto complicado al principio, es necesario comprenderlo adecuadamente para que futuras aplicaciones que utilicen plantilla y typename, sean, de hecho, comprendidas.
preview
Desarrollo de un sistema de repetición (Parte 56): Adecuación de los módulos

Desarrollo de un sistema de repetición (Parte 56): Adecuación de los módulos

Aunque los módulos se comunican de manera adecuada, existe un error al intentar utilizar el indicador de mouse en el servicio de repetición. Necesitamos corregir esto ahora, antes de pasar al siguiente paso. Además, se ha corregido una incidencia en el código del indicador de mouse. Esta versión finalmente se ha vuelto estable y está debidamente finalizada.