Artículos de programación MQL4 y 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
Aprendiendo de las compañías de Prop-Trading (Parte 1) - Introducción

Aprendiendo de las compañías de Prop-Trading (Parte 1) - Introducción

En este artículo introductorio, compartiremos algunas de las lecciones que se pueden aprender de las pruebas realizadas en las empresas de prop-trading. Esto resulta especialmente actual para los principiantes y aquellos que luchan por encontrar su lugar en el mundo del trading. El siguiente artículo se centrará en la implementación del código.
preview
Trabajando con las series temporales en la biblioteca DoEasy (Parte 54): Clases herederas del indicador abstracto básico

Trabajando con las series temporales en la biblioteca DoEasy (Parte 54): Clases herederas del indicador abstracto básico

En este artículo, vamos a hablar de la creación de las clases de los objetos herederos del indicador abstracto básico. Estos objetos nos permitirán crear los asesores expertos tipo indicador, recopilar y obtener estadísticas de valores de datos de diferentes indicadores y precios. Además, crearemos una colección de objetos de indicador de la cual se podrá obtener el acceso a las propiedades y datos de cada indicador creado en el programa.
preview
Desarrollo de un EA comercial desde cero (Parte 24): Dotando de robustez al sistema (I)

Desarrollo de un EA comercial desde cero (Parte 24): Dotando de robustez al sistema (I)

En este artículo haremos que el sistema sea más robusto, para que sea más estable y seguro de usar. Una forma de conseguir robustez es intentar reutilizar el código lo máximo posible, de esta forma él mismo será probado todo el tiempo y en diversas ocasiones. Pero esta es solo una de las formas, otra forma es el uso de la programación OOP.
preview
Tablero de cotizaciones: Versión mejorada

Tablero de cotizaciones: Versión mejorada

¿Qué tal si animamos la versión básica del tablero? Lo primero que vamos a hacer es modificar el tablero para añadir una imagen, ya sea el logotipo del activo o cualquier otra imagen, para facilitar una rápida identificación del activo que estamos viendo.
preview
Redes neuronales: así de sencillo (Parte 15): Clusterización de datos usando MQL5

Redes neuronales: así de sencillo (Parte 15): Clusterización de datos usando MQL5

Continuamos analizando el método de clusterización. En este artículo, crearemos una nueva clase CKmeans para implementar uno de los métodos de clusterización de k-medias más extendidos. Según los resultados de la prueba, el modelo ha podido identificar alrededor de 500 patrones.
preview
Desarrollando un EA comercial desde cero (Parte 19): Un nuevo sistema de órdenes (II)

Desarrollando un EA comercial desde cero (Parte 19): Un nuevo sistema de órdenes (II)

Aquí vamos a desarrollar un sistema gráfico de órdenes, del tipo «vea lo que está pasando». Cabe decir que no partiremos de cero, sino que modificaremos el sistema existente añadiendo aún más objetos y eventos al gráfico del activo que estamos negociando.
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.
preview
DoEasy. Elementos de control (Parte 11): Objetos WinForms: grupos, el objeto WinForms CheckedListBox

DoEasy. Elementos de control (Parte 11): Objetos WinForms: grupos, el objeto WinForms CheckedListBox

En este artículo, analizaremos el agrupamiento de objetos WinForms y crearemos una lista de objeto con objetos CheckBox.
preview
Cómo crear un panel informativo para mostrar datos en indicadores y asesores

Cómo crear un panel informativo para mostrar datos en indicadores y asesores

En el presente artículo consideraremos la creación de una clase de panel informativo para utilizarla en indicadores y asesores. Este será el artículo introductorio de una pequeña serie de artículos con plantillas para la conexión y el uso de indicadores estándar en asesores. Empezaremos creando un panel, un análogo de la ventana de datos de MetaTrader 5.
preview
Cómo construir un EA que opere automáticamente (Parte 10): Automatización (II)

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

La automatización no significa nada si no se puede controlar el horario. Ningún trabajador puede ser eficiente trabajando 24 horas al día. Sin embargo, muchos creen que un sistema automatizado debe trabajar 24 horas al día. Siempre es bueno tener formas de configurar una franja horaria para el Expert Advisor. En este artículo, vamos a discutir cómo agregar correctamente tal franja horaria.
preview
Aprendizaje automático y Data Science (Parte 06). Redes neuronales (Parte 02): arquitectura de la redes neuronales con conexión directa

Aprendizaje automático y Data Science (Parte 06). Redes neuronales (Parte 02): arquitectura de la redes neuronales con conexión directa

En el artículo anterior, comenzamos a estudiar las redes neuronales con conexión directa, pero hay algunas cosas que quedaron sin resolver. Una de ellas es el diseño de la arquitectura. Por ello, en el presente artículo, veremos cómo diseñar una red neuronal flexible, teniendo en cuenta los datos de entrada, el número de capas ocultas y los nodos de cada red.
preview
Patrones de diseño en MQL5 (Parte I): Patrones de creación (Creational Patterns)

Patrones de diseño en MQL5 (Parte I): Patrones de creación (Creational Patterns)

Existen métodos que pueden usarse para resolver problemas típicos. Una vez entendemos cómo utilizar estas técnicas una vez, podemos escribir programas de forma eficaz y aplicar el concepto DRY (No te repitas, en inglés, don't repeat yourself). En este contexto, resultan muy útiles los patrones de diseño que pueden aportar soluciones a problemas bien descritos y recurrentes.
preview
Desarrollo de un EA comercial desde cero (Parte 29): Plataforma parlante

Desarrollo de un EA comercial desde cero (Parte 29): Plataforma parlante

En este artículo aprenderemos a hacer hablar a la plataforma MT5. ¿Qué tal si hacemos que el EA sea más divertido? Operar en los mercados financieros suele ser una actividad extremadamente aburrida y monótona, pero podemos hacerla un poco menos tediosa. Este proyecto podría ser peligroso en caso de que tengas un problema que te haga adicto, pero en realidad con las modificaciones todo el escenario podría ser más entretenido, menos aburrido.
preview
Recetas MQL5 - Base de datos de eventos macroeconómicos

Recetas MQL5 - Base de datos de eventos macroeconómicos

El presente artículo analiza las posibilidades de trabajar con bases de datos que utilizan el motor SQLite como base. Hemos creado una clase CDatabase para usar de forma cómoda y eficaz los principios de la programación orientada a objetos. Posteriormente se utilizará para crear y gestionar una base de datos de eventos macroeconómicos. Asimismo, ofreceremos ejemplos de muchos métodos de la clase CDatabase.
preview
Redes neuronales: así de sencillo (Parte 46): Aprendizaje por refuerzo dirigido a objetivos (GCRL)

Redes neuronales: así de sencillo (Parte 46): Aprendizaje por refuerzo dirigido a objetivos (GCRL)

En el artículo de hoy, nos familiarizaremos con otra tendencia en el campo del aprendizaje por refuerzo. Se denomina aprendizaje por refuerzo dirigido a objetivos (Goal-conditioned reinforcement learning, GCRL). En este enfoque, el agente se entrenará para alcanzar diferentes objetivos en determinados escenarios.
Gráficos en la biblioteca DoEasy (Parte 87): Colección de objetos gráficos - control de la modificación de propiedades en todos los gráficos abiertos
Gráficos en la biblioteca DoEasy (Parte 87): Colección de objetos gráficos - control de la modificación de propiedades en todos los gráficos abiertos

Gráficos en la biblioteca DoEasy (Parte 87): Colección de objetos gráficos - control de la modificación de propiedades en todos los gráficos abiertos

En este artículo, continuaremos trabajando en el monitoreo de los eventos de los objetos gráficos estándar y crearemos una funcionalidad que nos permitirá controlar los cambios en las propiedades de los objetos gráficos colocados en cualquier gráfico abierto en el terminal.
Gráficos en la biblioteca DoEasy (Parte 91): Eventos de objetos gráficos estándar en el programa. Historia de cambio de nombre del objeto
Gráficos en la biblioteca DoEasy (Parte 91): Eventos de objetos gráficos estándar en el programa. Historia de cambio de nombre del objeto

Gráficos en la biblioteca DoEasy (Parte 91): Eventos de objetos gráficos estándar en el programa. Historia de cambio de nombre del objeto

En el artículo, finalizaremos la funcionalidad básica para posibilitar el control de eventos para los objetos gráficos desde un programa basado en la biblioteca. Comenzaremos creando la funcionalidad necesaria para almacenar la historia de cambios en las propiedades de los objetos gráficos usando la propiedad "Nombre del objeto" como ejemplo.
preview
Aprendiendo a diseñar un sistema comercial con Gator Oscillator

Aprendiendo a diseñar un sistema comercial con Gator Oscillator

Bienvenidos a un nuevo artículo de la serie dedicada a la creación de sistemas comerciales basados en indicadores técnicos populares. En esta ocasión, hablaremos sobre el indicador Gator Oscillator y crearemos un sistema comercial utilizando estrategias simples.
preview
Mejore sus gráficos comerciales con una GUI interactiva basada en MQL5 (Parte I): Interfaz móvil (I)

Mejore sus gráficos comerciales con una GUI interactiva basada en MQL5 (Parte I): Interfaz móvil (I)

Libere el poder de la presentación dinámica de datos en sus estrategias o utilidades comerciales con nuestra guía detallada para desarrollar una GUI móvil en MQL5. Sumérjase en los eventos del gráfico y aprenda a diseñar e implementar una GUI simple y con capacidad de movimiento múltiple en un solo gráfico. El artículo también analizará la adición de elementos a una interfaz gráfica, aumentando su funcionalidad y atractivo estético.
preview
Redes neuronales: así de sencillo (Parte 30): Algoritmos genéticos

Redes neuronales: así de sencillo (Parte 30): Algoritmos genéticos

En el artículo de hoy, hablaremos de un método de aprendizaje ligeramente distinto. Podríamos decir que lo hemos tomado de la teoría de la evolución de Darwin. Probablemente resulte menos controlable que los métodos anteriormente mencionados, pero también nos permite entrenar modelos indiferenciados.
preview
DoEasy. Elementos de control (Parte 25): El objeto WinForms «Tooltip»

DoEasy. Elementos de control (Parte 25): El objeto WinForms «Tooltip»

En este artículo, comenzaremos a desarrollar el control Tooltip ("pista emergente") y comenzaremos a crear nuevas primitivas gráficas para la biblioteca. Obviamente, no todos los elementos tendrán sugerencias emergentes, pero cada objeto gráfico poseerá la capacidad de configurarla.
Análisis técnico: ¡Hacer posible lo imposible!
Análisis técnico: ¡Hacer posible lo imposible!

Análisis técnico: ¡Hacer posible lo imposible!

Esto artículo responde a la siguiente pregunta: ¿Por qué se puede hacer posible lo imposible cuando muchos sugieren lo contrario? Razonamiento del análisis técnico.
preview
Desarrollando un EA comercial desde cero (Parte 15): Acceso a los datos en la web (I)

Desarrollando un EA comercial desde cero (Parte 15): Acceso a los datos en la web (I)

Cómo acceder a los datos en la web dentro de MetaTrader 5. En la web tenemos varios sitios y lugares en los que una gran y vasta cantidad de información está disponible y accesible para aquellos que saben dónde buscar y cómo utilizar mejor esta información.
preview
Desarrollando una DLL experimental con soporte multihilo en C++ para MetaTrader 5 en Linux

Desarrollando una DLL experimental con soporte multihilo en C++ para MetaTrader 5 en Linux

En este artículo, describiremos el proceso de desarrollo de la plataforma MetaTrader 5 exclusivamente en Linux. El producto final funcionará a la perfección tanto en Windows como en Linux. Asimismo, aprenderemos sobre Wine y Mingw, herramientas importantes para el desarrollo multiplataforma. Mingw ofrece transmisión de flujo (POSIX y Win32), lo que debe tenerse en cuenta a la hora de elegir la herramienta adecuada. A continuación crearemos una DLL para probar el concepto; luego la usaremos en el código MQL5 y compararemos el rendimiento de ambas implementaciones de los hilos. Este artículo pretende ser un punto de partida para experimentos propios. Después de leer este artículo, el lector será capaz de crear herramientas para MetaTrader en Linux.
preview
Cómo construir un EA que opere automáticamente (Parte 14): Automatización (VI)

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

Aquí pondremos realmente en práctica todos los conocimientos de esta serie. Finalmente construiremos un sistema 100% automático y funcional. Pero para hacer esto, tendrás que aprender una última cosa.
preview
Programación orientada a objetos (OOP) en MQL5

Programación orientada a objetos (OOP) en MQL5

Como desarrolladores, debemos aprender a crear y desarrollar software que sea reutilizable y flexible sin duplicar código, especialmente si tenemos diferentes objetos con comportamientos distintos. Esto se puede lograr fácilmente utilizando las técnicas y principios de la programación orientada a objetos. En este artículo le presentamos los conceptos básicos de la programación orientada a objetos en MQL5.
Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado
Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado

Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado

En el presente artículo, empezaremos a desarrollar la funcionalidad para trabajar con la Profundidad del mercado. Crearemos la clase del objeto de una orden abstracta de la Profundidad del mercado y sus clases herederas.
preview
Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad

Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad

Seguimos analizando modelos de inteligencia artificial, y en particular, los algoritmos de aprendizaje no supervisado. Ya nos hemos encontrado con uno de los algoritmos de clusterización. Y en este artículo queremos compartir con ustedes una posible solución a los problemas de la reducción de la dimensionalidad.
preview
DoEasy. Elementos de control (Parte 12): Objeto de lista básico, objetos WinForms ListBox y ButtonListBox

DoEasy. Elementos de control (Parte 12): Objeto de lista básico, objetos WinForms ListBox y ButtonListBox

En este artículo, crearemos un objeto de lista básico de objetos WinForms y dos nuevos objetos: ListBox y ButtonListBox.
preview
Biblioteca de análisis numérico ALGLIB en MQL5

Biblioteca de análisis numérico ALGLIB en MQL5

En este artículo, echaremos un vistazo rápido a la biblioteca de análisis numérico ALGLIB 3.19, sus aplicaciones y sus nuevos algoritmos, que pueden mejorar la eficiencia del análisis de datos financieros.
Vídeo: Comercio automatizado simple: cómo crear un asesor comercial sencillo usando MQL5
Vídeo: Comercio automatizado simple: cómo crear un asesor comercial sencillo usando MQL5

Vídeo: Comercio automatizado simple: cómo crear un asesor comercial sencillo usando MQL5

La mayoría de los estudiantes de mis cursos consideraban que el lenguaje MQL5 era difícil de entender. Asimismo, buscaban formas sencillas de automatizar algunos procesos. En este artículo, el lector aprenderá cómo comenzar a trabajar directamente en MQL5 incluso sin conocimientos de programación y habiendo tenido incluso intentos fallidos de dominar este tema en el pasado.
preview
Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 1): Señales basadas en ADX combinadas con Parabolic SAR

Creamos un asesor multidivisa sencillo utilizando MQL5 (Parte 1): Señales basadas en ADX combinadas con Parabolic SAR

En este artículo, entenderemos por asesor multidivisa un asesor o robot comercial que puede comerciar (abrir/cerrar órdenes, gestionar órdenes, etc.) con más de un par de símbolos de un gráfico.
preview
Desarrollando un EA comercial desde cero (Parte 17): Acceso a los datos en la web (III)

Desarrollando un EA comercial desde cero (Parte 17): Acceso a los datos en la web (III)

En este artículo continuaremos a aprender cómo obtener datos de la web para utilizarlos en un EA. Así que pongamos manos a la obra, o más bien a empezar a codificar un sistema alternativo.
preview
Experimentos con redes neuronales (Parte 6): El perceptrón como herramienta autosuficiente de predicción de precios

Experimentos con redes neuronales (Parte 6): El perceptrón como herramienta autosuficiente de predicción de precios

Ejemplo de utilización de un perceptrón como herramienta autónoma de predicción de precios. En el artículo exploraremos los conceptos generales y veremos un sencillo asesor experto ya preparado, así como los resultados de su optimización.
preview
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 02): Primeros experimentos (II)

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 02): Primeros experimentos (II)

Intentemos esta vez un enfoque diferente para lograr el objetivo de 1 minuto. Sin embargo, esta tarea no es tan sencilla como muchos piensan.
preview
Gráficos en la biblioteca DoEasy (Parte 100): Solucionamos las deficiencias al trabajar con los objetos gráficos estándar extendidos

Gráficos en la biblioteca DoEasy (Parte 100): Solucionamos las deficiencias al trabajar con los objetos gráficos estándar extendidos

Hoy vamos a hacer un poco de "limpieza": para ello, eliminaremos los defectos que surgen al trabajar con los objetos gráficos extendidos (y estándar) y los objetos de formulario simultáneamente en el lienzo, y también arreglaremos los errores detectados durante las pruebas en el artículo anterior. Y así concluirá esta sección de la descripción de la biblioteca.
preview
Algoritmos de optimización de la población: Enjambre de partículas (PSO)

Algoritmos de optimización de la población: Enjambre de partículas (PSO)

En este artículo, analizaremos el popular algoritmo de optimización de la población «Enjambre de partículas» (PSO — particle swarm optimisation). Con anterioridad, ya discutimos características tan importantes de los algoritmos de optimización como la convergencia, la tasa de convergencia, la estabilidad, la escalabilidad, y también desarrollamos un banco de pruebas y analizamos el algoritmo RNG más simple.
preview
Analizamos PrintFormat() y tomamos ejemplos listos para usar

Analizamos PrintFormat() y tomamos ejemplos listos para usar

El presente artículo resultará útil tanto a principiantes como a desarrolladores experimentados. En él veremos el funcionamiento de la función PrintFormat(), analizaremos ejemplos de formato string y escribiremos plantillas para enviar información diversa al registro del terminal.
preview
Aproximación por fuerza bruta a la búsqueda de patrones (Parte VI): Optimización cíclica

Aproximación por fuerza bruta a la búsqueda de patrones (Parte VI): Optimización cíclica

En este artículo mostraremos la primera parte de las mejoras que nos permitieron no solo cerrar toda la cadena de automatización para comerciar en MetaTrader 4 y 5, sino también hacer algo mucho más interesante. A partir de ahora, esta solución nos permitirá automatizar completamente tanto el proceso de creación de asesores como el proceso de optimización, así como minimizar el gasto de recursos a la hora de encontrar configuraciones comerciales efectivas.
preview
Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA

Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA

En artículos anteriores, expliqué cómo crear un indicador con múltiples subventanas, lo que se vuelve interesante cuando usamos un indicador personalizado. Aquí entenderemos cómo añadir múltiples ventanas en un EA.