Artículos sobre programación en el lenguaje 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
preview
Desarrollo de un sistema de repetición (Parte 60): Presionando play en el servicio (I)

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

Llevamos bastante tiempo trabajando únicamente con los indicadores. Pero ahora ha llegado el momento de hacer que el servicio vuelva a ejecutar su trabajo y podamos ver el gráfico construyéndose con los datos proporcionados. Sin embargo, como no todo es tan simple, será necesario observar para entender lo que nos espera.
preview
Redes neuronales en el trading: Optimización LSTM para la previsión de series temporales multivariantes (DA-CG-LSTM)

Redes neuronales en el trading: Optimización LSTM para la previsión de series temporales multivariantes (DA-CG-LSTM)

En este artículo presentamos el algoritmo DA-CG-LSTM, que ofrece nuevos enfoques para el análisis y la previsión de series temporales. En él aprenderemos cómo los innovadores mecanismos de atención y la flexibilidad de los modelos mejoran la precisión de las predicciones.
preview
Del básico al intermedio: Herencia

Del básico al intermedio: Herencia

Sin duda, se trata de un artículo al que deberás dedicarle bastante tiempo para entender cómo y por qué funcionan las cosas que se muestran aquí. Esto se debe simplemente a que todo lo que se verá y mostrará aquí está orientado originalmente a lo que sería la programación orientada a objetos. Pero, en realidad, se basa en principios de programación estructural.
preview
Del básico al intermedio: Indicador (V)

Del básico al intermedio: Indicador (V)

En este artículo, veremos cómo podemos lidiar con solicitudes del usuario para cambiar el modo de trazado del gráfico. Esto, para que podamos lograr que un indicador, orientado a usar el modo de trazado gráfico actual, no quede extraño ni diferente de lo que el usuario de MetaTrader 5 esperaría.
preview
Analizamos el código binario de los precios en bolsa (Parte II): Convirtiendo a BIP39 y escribiendo un modelo GPT

Analizamos el código binario de los precios en bolsa (Parte II): Convirtiendo a BIP39 y escribiendo un modelo GPT

Seguimos intentando descifrar los movimientos de los precios.... ¿Qué tal un análisis lingüístico del "diccionario de mercado" que obtendríamos convirtiendo el código binario de precios en BIP39? En el presente artículo, nos adentramos en un enfoque innovador del análisis de los datos bursátiles y exploramos cómo pueden aplicarse las modernas técnicas de procesamiento del lenguaje natural al lenguaje del mercado.
preview
Simulación de mercado: iniciando SQL en MQL5 (II)

Simulación de mercado: iniciando SQL en MQL5 (II)

Aunque muchos creen que podemos incluir sin problemas código SQL dentro de otro código, por lo general esto no es así. El motivo es que el código SQL siempre se incorpora al ejecutable como un string. Y este hecho de colocar el código SQL como string, si bien no genera inconvenientes en fragmentos pequeños, puede terminar provocándonos bastantes dolores de cabeza.
preview
Del básico al intermedio: Objetos (I)

Del básico al intermedio: Objetos (I)

En este artículo, empezaremos a ver cómo podremos trabajar con objetos directamente en el gráfico. Esto usando un código construido especialmente para mostrarnos algo. Trabajar con objetos es algo muy interesante y bastante divertido. Como este será el primer contacto, empezaremos con algo muy simple.
preview
Simulación de mercado (Parte 21): Iniciando SQL (IV)

Simulación de mercado (Parte 21): Iniciando SQL (IV)

Muchos de ustedes, queridos lectores, pueden tener un nivel de experiencia muy superior al mío en lo que respecta a trabajar con bases de datos y, así, por esta razón, tener una visión diferente de la mía. Pero, como era necesario definir y desarrollar alguna forma de explicar el motivo por el cual las bases de datos se crean como se crean, explicar por qué SQL tiene el formato que tiene y, sobre todo, por qué surgieron las claves primarias y las claves foráneas, fue necesario dejar las cosas un poco abstractas.
preview
Operando con el Calendario Económico MQL5 (Parte 8): Optimización del backtesting basado en noticias mediante el filtrado inteligente de eventos y el registro selectivo

Operando con el Calendario Económico MQL5 (Parte 8): Optimización del backtesting basado en noticias mediante el filtrado inteligente de eventos y el registro selectivo

En este artículo, optimizamos nuestro calendario económico mediante un filtrado inteligente de eventos y un registro selectivo, con el fin de lograr un backtesting más rápido y claro, tanto en modo en vivo como en modo sin conexión. Optimizamos el procesamiento de eventos y centramos los registros en los eventos críticos relacionados con las operaciones y los paneles de control, lo que mejora la visualización de las estrategias. Estas mejoras permiten probar y perfeccionar sin problemas las estrategias de negociación basadas en noticias.
preview
Del básico al intermedio: Definiciones (II)

Del básico al intermedio: Definiciones (II)

En este artículo, veremos y exploraremos un poco más sobre la directiva #define, pero esta vez nos centraremos en su segunda forma de utilización. Es decir, la creación de macros. Como sé que este tema puede resultar un poco complicado al principio, he decidido utilizar una aplicación que ya hemos estado explorando desde hace algún tiempo. Espero que disfrutes del contenido de este artículo.
preview
Operar con noticias de manera sencilla (Parte 4): Mejora del rendimiento

Operar con noticias de manera sencilla (Parte 4): Mejora del rendimiento

Este artículo profundizará en los métodos para mejorar el tiempo de ejecución del experto en el probador de estrategias. El código se escribirá para dividir los tiempos de los eventos de noticias en categorías por hora. Las horas de estos eventos noticiosos se accederán dentro de la hora especificada. Esto garantiza que el EA pueda gestionar de manera eficiente las operaciones basadas en eventos tanto en entornos de alta como de baja volatilidad.
preview
Dominando los registros (Parte 2): Formateo de registros

Dominando los registros (Parte 2): Formateo de registros

En este artículo, exploraremos cómo crear y aplicar formateadores de registros en la biblioteca. Veremos todo, desde la estructura básica de un formateador hasta ejemplos de implementación práctica. Al finalizar, tendrás el conocimiento necesario para formatear registros dentro de la biblioteca y comprenderás cómo funciona todo detrás de escena.
preview
Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Componentes principales)

Redes neuronales en el trading: Modelo multidimensional de extremo a extremo para la previsión de series temporales (Componentes principales)

Hoy les invitamos a explorar una nueva implementación de los componentes clave del framework GinAR, un algoritmo adaptativo para trabajar con series temporales de grafos. El artículo ofrece un análisis paso a paso de la arquitectura y los algoritmos de propagación directa e inversa del error.
preview
Simulación de mercado: Iniciando SQL en MQL5 (V)

Simulación de mercado: Iniciando SQL en MQL5 (V)

En el artículo anterior mostré cómo debías proceder para poder añadir el mecanismo de consulta. Esto para que, dentro del código MQL5, pudieras usar SQL plenamente y obtener los resultados al usar el comando SELECT FROM de SQL. Pero faltó hablar de la última función que necesitamos implementar. Esta es la función DatabaseReadBind. Y, como para entenderla adecuadamente hace falta una explicación un poco más amplia, se decidió hacerlo no en aquel artículo anterior, sino en este. Entonces, como el tema será relativamente largo, vayamos directamente al siguiente apartado.
preview
Creación de un Panel de administración de operaciones en MQL5 (Parte V): Autenticación de dos factores (2FA)

Creación de un Panel de administración de operaciones en MQL5 (Parte V): Autenticación de dos factores (2FA)

Hoy discutiremos cómo mejorar la seguridad del Panel de administrador comercial que actualmente se encuentra en desarrollo. Exploraremos cómo implementar MQL5 en una nueva estrategia de seguridad, integrando la API de Telegram para la autenticación de dos factores (2FA). Esta discusión proporcionará información valiosa sobre la aplicación de MQL5 para reforzar las medidas de seguridad. Además, examinaremos la función MathRand, centrándonos en su funcionalidad y cómo se puede utilizar de forma efectiva dentro de nuestro marco de seguridad. ¡Sigue leyendo para descubrir más!
preview
De novato a experto: Implementación de estrategias de Fibonacci en el trading posterior al NFP

De novato a experto: Implementación de estrategias de Fibonacci en el trading posterior al NFP

En los mercados financieros, las leyes del retroceso siguen siendo una de las fuerzas más indiscutibles. Una regla general es que el precio siempre retrocede, ya sea en movimientos amplios o incluso en los patrones de tick más pequeños, que a menudo adoptan la forma de un zigzag. Sin embargo, el patrón de retroceso en sí mismo nunca es fijo; sigue siendo incierto y solo puede anticiparse. Esta incertidumbre explica por qué los operadores se basan en múltiples niveles de Fibonacci, cada uno de los cuales conlleva una determinada probabilidad de influir en el mercado. En este análisis, presentamos una estrategia perfeccionada que aplica técnicas de Fibonacci para hacer frente a los retos que plantea operar poco después de los anuncios de acontecimientos económicos importantes. Al combinar los principios del retroceso con el comportamiento del mercado impulsado por eventos, nuestro objetivo es identificar oportunidades de entrada y salida más fiables. Te invitamos a seguir leyendo para conocer el análisis completo y ver cómo adaptar Fibonacci a la operativa posterior al evento.
preview
Características del Wizard MQL5 que debe conocer (Parte 59): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico (II)

Características del Wizard MQL5 que debe conocer (Parte 59): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico (II)

Continuamos nuestro último artículo sobre DDPG con indicadores MA y estocásticos examinando otras clases clave de aprendizaje por refuerzo cruciales para la implementación de DDPG. Aunque programamos principalmente en Python, el producto final de una red entrenada se exportará como un archivo ONNX a MQL5, donde lo integraremos como un recurso en un Asesor Experto creado mediante un asistente.
preview
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte VI): Cómo aprovechar el doble descenso profundo

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte VI): Cómo aprovechar el doble descenso profundo

El aprendizaje automático tradicional enseña a los profesionales a estar atentos para no sobreajustar sus modelos. Sin embargo, esta ideología está siendo cuestionada por nuevos hallazgos publicados por diligentes investigadores de Harvard, quienes han descubierto que lo que parece ser un sobreajuste puede, en algunas circunstancias, ser el resultado de finalizar prematuramente los procedimientos de entrenamiento. Demostraremos cómo podemos utilizar las ideas publicadas en el artículo de investigación para mejorar nuestro uso de la IA en la previsión de retornos del mercado.
preview
Redes neuronales en el trading: Jerarquía de habilidades para el comportamiento adaptativo de agentes (Final)

Redes neuronales en el trading: Jerarquía de habilidades para el comportamiento adaptativo de agentes (Final)

El artículo analiza la aplicación práctica del framework HiSSD en tareas de trading algorítmico. Muestra cómo la jerarquía de habilidades y la arquitectura adaptativa pueden usarse para construir estrategias de negociación sostenibles.
preview
Automatización de estrategias de trading en MQL5 (Parte 20): Estrategia multisímbolo con CCI y AO

Automatización de estrategias de trading en MQL5 (Parte 20): Estrategia multisímbolo con CCI y AO

En este artículo, creamos una estrategia de trading multisimbolo utilizando los indicadores CCI y AO para captar reversiones de tendencia. Analizamos su diseño, la implementación de MQL5 y el proceso de backtesting. El artículo concluye con consejos para mejorar el rendimiento.
preview
Motor de decisión Multi-IA para MQL5 (Parte 2): Voto ponderado que aprende en cuál IA confiar, más gestión de riesgo

Motor de decisión Multi-IA para MQL5 (Parte 2): Voto ponderado que aprende en cuál IA confiar, más gestión de riesgo

Esta segunda parte convierte el motor multi-IA en un sistema que aprende en qué modelos confiar. Se registra cada predicción, se evalúa su acierto tras un horizonte y se actualiza un hit-rate por proveedor (EMA), para ponderar el voto por confianza × acierto real. Además, se añade gestión de riesgo: SL/TP basada en ATR con ratio recompensa-riesgo fijado en el código y tamaño de posición escalado por la confianza. Útil para pruebas de demostración.
preview
Solicitudes en Connexus (Parte 6): Creación de una solicitud y respuesta HTTP

Solicitudes en Connexus (Parte 6): Creación de una solicitud y respuesta HTTP

En este sexto artículo de la serie de la biblioteca Connexus, nos centraremos en una solicitud HTTP completa, cubriendo cada componente que la conforma. Crearemos una clase que represente la solicitud en su conjunto, lo que nos ayudará a reunir las clases creadas anteriormente.
preview
Herramientas de trading de MQL5 (Parte 5): Creación de una cinta de cotizaciones deslizante para el seguimiento en tiempo real de símbolos

Herramientas de trading de MQL5 (Parte 5): Creación de una cinta de cotizaciones deslizante para el seguimiento en tiempo real de símbolos

En este artículo, desarrollamos una cinta de cotizaciones deslizante en MQL5 para monitorizar varios símbolos en tiempo real, mostrando los precio Bid (oferta), los spreads y las variaciones porcentuales diarias mediante efectos de desplazamiento. Implementamos fuentes, colores y velocidades de desplazamiento personalizables para resaltar eficazmente los movimientos y las tendencias de los precios.
preview
Simulación de mercado (Parte 19): Iniciando SQL (II)

Simulación de mercado (Parte 19): Iniciando SQL (II)

Como expliqué en el primer artículo sobre SQL, no tiene sentido que pierdas el tiempo programando rutinas para conseguir hacer algo que SQL ya incluye. Sin embargo, si no sabes lo más básico, no lograrás hacer nada con SQL para aprovechar lo que esta herramienta tiene para ofrecernos. Por ello, en este artículo veremos cómo ejecutar tareas fundamentales en bases de datos.
preview
Características del Wizard MQL5 que debe conocer (Parte 61): Uso de patrones del ADX y el CCI con aprendizaje supervisado

Características del Wizard MQL5 que debe conocer (Parte 61): Uso de patrones del ADX y el CCI con aprendizaje supervisado

El oscilador ADX y el oscilador CCI son indicadores de seguimiento de tendencias y de impulso que pueden combinarse al desarrollar un asesor experto. Analizamos cómo se puede sistematizar esto utilizando los tres modos principales de entrenamiento del aprendizaje automático. Los asesores expertos ensamblados por el Wizard MQL5 (Asistente MQL5) nos permiten evaluar los patrones que presentan estos dos indicadores, y comenzamos analizando cómo se puede aplicar el aprendizaje supervisado con estos patrones.
preview
Simulación de mercado: Iniciando SQL en MQL5 (I)

Simulación de mercado: Iniciando SQL en MQL5 (I)

En este artículo, comenzaremos a explorar el uso de SQL dentro de un código MQL5. Veremos cómo podemos crear una base de datos. O, mejor dicho, cómo podemos crear un archivo de base de datos en SQLite, utilizando, para ello, recursos o procedimientos incluidos en el lenguaje MQL5. Veremos también cómo crear una tabla y, después, cómo crear una relación entre tablas mediante una clave primaria y una clave foránea. Todo esto usando, nuevamente, MQL5. Veremos lo sencillo que es crear un código que, en el futuro, podrá portarse a otras implementaciones de SQL, usando una clase que nos ayude a ocultar la implementación creada. Y, lo más importante de todo, veremos que, en diversos momentos, podemos correr el riesgo de que algo no salga bien al usar SQL. Esto se debe a que, dentro del código MQL5, un código SQL siempre se colocará dentro de una STRING.
preview
Símbolos personalizados MQL5: Creamos un símbolo de barras 3D

Símbolos personalizados MQL5: Creamos un símbolo de barras 3D

Este artículo ofrece una guía detallada para crear el innovador indicador 3DBarCustomSymbol.mq5, que genera símbolos personalizados en MetaTrader 5 que combinan precio, tiempo, volumen y volatilidad en una única representación tridimensional. Asimismo, analizaremos los fundamentos matemáticos, la arquitectura del sistema y los aspectos prácticos de su implementación y aplicación en estrategias de negociación.
preview
Del básico al intermedio: Objetos (III)

Del básico al intermedio: Objetos (III)

En este artículo veremos cómo podemos implementar un sistema de interacción muy atractivo e interesante, sobre todo para quienes están empezando a practicar programación en MQL5. No se trata de algo realmente nuevo. La forma en que abordaré el tema hará que todo sea mucho más fácil de entender, ya que veremos, en la práctica, cómo se desarrolla una programación estructural con un objetivo bastante divertido.
preview
Descarga de datos del Fondo Monetario Internacional en Python

Descarga de datos del Fondo Monetario Internacional en Python

Descarga de datos del Fondo Monetario Internacional en Python: extraemos datos del FMI para su uso en estrategias monetarias macroeconómicas. ¿Cómo puede la macroeconomía ayudar a los tráders y tráders algorítmicos?
preview
Del básico al intermedio: Eventos de mouse

Del básico al intermedio: Eventos de mouse

Este artículo es uno de esos en los que, definitivamente, no basta con ver el código y estudiarlo para entender qué ocurre. De hecho, es necesario crear una aplicación ejecutable y usarla en cualquier gráfico. Esto, para poder entender pequeños detalles que, de otro modo, son muy complicados de comprender. Como, por ejemplo, la combinación del teclado con el mouse para construir ciertos tipos de cosas.
preview
Simulación de mercado: Position View (VII)

Simulación de mercado: Position View (VII)

En este artículo, comenzaremos a realizar algunas mejoras en el indicador de posición, para poder interactuar con él y modificar las líneas de precio, o cerrar una posición directamente mediante la interacción con el indicador de posición. Antes de entrar realmente en la implementación, conviene aclarar algo, sobre todo para quienes no estén al tanto. No es posible, de ninguna manera, usar un indicador para modificar algo en el servidor de trading. Esto se debe a que MetaTrader 5 cuenta con un sistema de seguridad que permite únicamente a los Asesores Expertos actuar sobre una orden o una posición. Ninguna otra aplicación que no sea un Asesor Experto podrá manipular órdenes o posiciones.
preview
Características del Wizard MQL5 que debe conocer (Parte 66): Uso de patrones FrAMA y Force Index con el núcleo de producto escalar

Características del Wizard MQL5 que debe conocer (Parte 66): Uso de patrones FrAMA y Force Index con el núcleo de producto escalar

El indicador FrAMA y el oscilador Force Index son herramientas de tendencia y volumen que pueden combinarse al desarrollar un asesor experto. Retomamos nuestro último artículo, en el que presentamos este par, para analizar la aplicabilidad del aprendizaje automático al mismo. Estamos utilizando una red neuronal convolucional que emplea el núcleo de producto escalar para realizar previsiones a partir de los datos de estos indicadores. Esto se lleva a cabo en un archivo de clase de señal personalizado que funciona con el asistente de MQL5 para crear un asesor experto.
preview
Determinación de los tipos de cambio justos en PPA usando los datos del FMI

Determinación de los tipos de cambio justos en PPA usando los datos del FMI

Construcción de un sistema de análisis de tipo de cambio basado en paridad de poder adquisitivo (PPA) en Python. El autor ha desarrollado un algoritmo con cinco métodos para calcular tipos de cambio justos utilizando datos del FMI. El presente artículo supone una guía práctica para el análisis fundamental de divisas, el procesamiento de datos económicos y la integración con sistemas comerciales. Encontrará el código completo en open source.
preview
Simulación de mercado (Parte 07): Sockets (I)

Simulación de mercado (Parte 07): Sockets (I)

Sockets. ¿Sabes para qué sirven o cómo usarlos en MetaTrader 5? Si la respuesta es no, comencemos aprendiendo un poco sobre ellos. Este artículo trata de lo más básico. Pero, como existen diversas maneras de hacer lo mismo, y lo que realmente nos interesa es siempre el resultado, quiero mostrar que sí, existe una forma sencilla de pasar datos desde MetaTrader 5 hacia otros programas, como, por ejemplo, Excel. Sin embargo, la idea principal no es transferir datos de MetaTrader 5 a Excel, sino hacer lo contrario. Es decir, transferir datos desde Excel, o desde cualquier otro programa, hacia MetaTrader 5.
preview
Minería de datos de los balances de los bancos centrales y obtención de un panorama de la liquidez global

Minería de datos de los balances de los bancos centrales y obtención de un panorama de la liquidez global

La minería de datos del balance de los bancos centrales ofrece una imagen de la liquidez global en el mercado Forex y en las divisas clave. Hoy combinaremos datos de la Fed, el BCE, el BOJ y el PBoC en un índice compuesto y utilizaremos el aprendizaje automático para descubrir patrones ocultos. Este enfoque convierte los datos sin procesar en señales comerciales reales combinando el análisis fundamental y técnico.
preview
Características del Wizard MQL5 que debe conocer (Parte 58): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico

Características del Wizard MQL5 que debe conocer (Parte 58): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico

La media móvil y el oscilador estocástico son indicadores muy comunes cuyos patrones colectivos analizamos en el artículo anterior, mediante una red de aprendizaje supervisado, para ver qué «patrones se mantendrían». Partiendo de los análisis de ese artículo, vamos un paso más allá y analizamos los efectos que tendría en el rendimiento el aprendizaje por refuerzo, cuando se utiliza con esta red entrenada. Los lectores deben tener en cuenta que nuestras pruebas se han realizado en un periodo de tiempo muy limitado. No obstante, seguimos aprovechando los requisitos mínimos de programación que ofrece el Asistente de MQL5 (MQL5 Wizard) para mostrar esto.
preview
Del básico al intermedio: Eventos en Objetos (IV)

Del básico al intermedio: Eventos en Objetos (IV)

En este artículo, terminaremos lo que comenzamos en el artículo anterior. Es decir, una forma total y completamente interactiva de redimensionar los objetos directamente en el gráfico. Aunque muchos imaginen que, para hacer algo así, haría falta mucho más conocimiento de MQL5, notarás que, con conceptos simples y conocimientos muy básicos, podemos implementar una forma de trabajar con los objetos directamente en el gráfico. Algo que da un resultado muy divertido y bastante interesante.
preview
Simulación de mercado: Position View (XVIII)

Simulación de mercado: Position View (XVIII)

En este artículo mostré, de la forma más didáctica posible, cómo puedes modificar y desarrollar un código capaz de cumplir determinados objetivos alterando lo mínimo posible un código ya existente. Añadiremos un indicador de volumen y, al mismo tiempo, impediremos que el usuario u operador elimine los objetos que se están creando por el indicador de posición.
preview
Del básico al intermedio: FileSave y FileLoad

Del básico al intermedio: FileSave y FileLoad

En este artículo se explicarán y explorarán algunas formas de trabajar con las funciones de la biblioteca FileSave y FileLoad. Aunque mucha gente las considera poco prometedoras, debido a algunas limitaciones o dificultades que generan en ciertos escenarios, entender correctamente cómo funcionan estas dos funciones puede ahorrarte mucho trabajo en determinados momentos. Además, son una excelente forma de trabajar con archivos de log.
preview
Simulación de mercado (Parte 18): Iniciando SQL (I)

Simulación de mercado (Parte 18): Iniciando SQL (I)

Da igual si vamos a usar uno u otro programa de SQL, ya sea MySQL, SQL Server, SQLite, OpenSQL o cualquier otro. Todos tienen algo en común. Ese algo en común es el lenguaje SQL. Aunque no vayas a usar una WorkBench, podrás manipular o trabajar con una base de datos directamente en MetaEditor o a través de MQL5 para hacer cosas en MetaTrader 5, pero necesitarás tener conocimientos de SQL. Así que aquí aprenderemos, al menos, lo básico.