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
Promocione sus proyectos de desarrollo usando las librerías EX5
Promocione sus proyectos de desarrollo usando las librerías EX5

Promocione sus proyectos de desarrollo usando las librerías EX5

Ocultar los detalles de la implementación de las clases/funciones en un archivo .ex5 le permitirá compartir sus algoritmos propios con otros desarrolladores, iniciar proyectos y promocionarlos en la Web. Y mientras el equipo de MetaQuotes no escatima esfuerzos para tener la posibilidad de heredar directamente las clases de las librerías ex5, vamos a implementarlas ahora.
Un método de escritura de los niveles de soporte/resistencia
Un método de escritura de los niveles de soporte/resistencia

Un método de escritura de los niveles de soporte/resistencia

Este artículo describe el proceso de crear un script simple para detectar los niveles de soporte/resistencia. Está escrito para principiantes, y tiene una explicación detallada de cada fase del proceso. Sin embargo, aunque el guión es muy simple, el artículo también será útil para traders más avanzados y para los usuarios de la plataforma MetaTrader 4. Contiene ejemplos de la exportación de datos en formato tabular, la importación de la tabla a Microsoft Excel, y la esquematización de gráficos para su futuro análisis más detallado.
Guía práctica de MQL5: Supervisar múltiples períodos de tiempo en una sola ventana
Guía práctica de MQL5: Supervisar múltiples períodos de tiempo en una sola ventana

Guía práctica de MQL5: Supervisar múltiples períodos de tiempo en una sola ventana

MetaTrader 5 ofrece 21 períodos de tiempo para el análisis. Puede aprovechar los objetos gráficos especiales que puede colocar en el gráfico existente y establecer el símbolo, el período de tiempo y otras propiedades. En este artículo se va a proporcionar una información detallada acerca de estos objetos gráficos: crearemos un indicador con controles (botones) que nos permitirán establecer múltiples objetos gráficos en una subventana al mismo tiempo. Además, se encajarán los objetos gráficos con precisión en la subventana y se ajustarán automáticamente al modificar el tamaño del gráfico principal o el de la ventana del terminal.
Trabajamos con archivos ZIP con los medios de MQL5, sin usar bibliotecas ajenas
Trabajamos con archivos ZIP con los medios de MQL5, sin usar bibliotecas ajenas

Trabajamos con archivos ZIP con los medios de MQL5, sin usar bibliotecas ajenas

El lenguaje MQL5 prosigue su desarrollo, continuamente se le añaden nuevas funciones para trabajar con datos. Desde hace cierto tiempo, gracias a las innovaciones, resulta posible trabajar con archivos ZIP con las herramientas estándar MQL5, sin tener que implicar bibliotecas DLL ajenas. Este artículo describe de forma detallada cómo hacerlo, usando como ejemplo la descripción de la clase CZip, un instruemnto universal de lectura, creación y modificación de archivos ZIP.
preview
Websockets para MetaTrader 5 — Usando la API de Windows

Websockets para MetaTrader 5 — Usando la API de Windows

En este artículo, usaremos WinHttp.dll para crear un cliente de websocket para los programas de MetaTrader 5. El cliente se implementará finalmente como una clase, y también se probará contra la API de websocket de Binary.com.
Pivot points para ayudar a determinar las tendencias del mercado
Pivot points para ayudar a determinar las tendencias del mercado

Pivot points para ayudar a determinar las tendencias del mercado

El Pivot point (punto pivote) es una línea en el gráfico de precios que muestra una posible tendencia de un par de divisas. Si el precio está por encima de esta línea, la tendencia tiende a crecer. Si el precio está por debajo de esta línea, la tendencia tiende a caer.
La Orden de Creación y Destrucción de Objetos en MQL5
La Orden de Creación y Destrucción de Objetos en MQL5

La Orden de Creación y Destrucción de Objetos en MQL5

Cada objeto, ya sea un objeto personalizado, un array dinámico o un array de objetos, se crea y elimina en el programa MQL5 de una forma particular. A menudo, algunos objetos son parte de otros objetos, y el orden de eliminación de objetos durante la desinicialización se vuelve especialmente importante. Este artículo facilita algunos ejemplos que muestran los mecanismos para trabajar con objetos.
Interfaces gráficas IV: Modo de ventanas múltiples y sistema de prioridades (Capítulo 2)
Interfaces gráficas IV: Modo de ventanas múltiples y sistema de prioridades (Capítulo 2)

Interfaces gráficas IV: Modo de ventanas múltiples y sistema de prioridades (Capítulo 2)

En este artículo vamos a ampliar la implementación de la librería hasta conseguir la posibilidad de crear las interfaces de ventanas múltiples para nuestras aplicaciones MQL. Aparte de eso, desarrollaremos el sistema de las prioridades para el clic izquierdo del ratón en los objetos gráficos. Lo vamos a necesitar para no tener problemas cuando los controles no responden inesperadamente a las acciones del usuario.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 35): El objeto "Barra" y la lista de serie temporal del símbolo
Trabajando con las series temporales en la biblioteca DoEasy (Parte 35): El objeto "Barra" y la lista de serie temporal del símbolo

Trabajando con las series temporales en la biblioteca DoEasy (Parte 35): El objeto "Barra" y la lista de serie temporal del símbolo

Con este artículo, comenzamos una nueva serie en la descripción de la biblioteca "DoEasy" para la creación rápida y sencilla de programas. Hoy, empezaremos a preparar la funcionalidad de la biblioteca para acceder a los datos de las series temporales de los símbolos y trabajar con los mismos. Asimismo, crearemos el objeto "Barra", encargado de guardar los datos tanto básicos como ampliados de la barra de la serie temporal, y también ubicaremos los objetos de barra en la lista de serie temporal para que resulte más cómodo buscar y clasificar dichos objetos.
Interfaces gráficas X: Control "Campo de edición del texto multilínea" (build 8)
Interfaces gráficas X: Control "Campo de edición del texto multilínea" (build 8)

Interfaces gráficas X: Control "Campo de edición del texto multilínea" (build 8)

Se considera el control «Campo de edición multilínea». A diferencia del objeto gráfico OBJ_EDIT, en esta versión no habrá limitación alguna para el número de los caracteres a introducir. Aparte de eso, se hace disponible el modo cuando el campo de edición se convierte en un sencillo editor de texto donde se puede mover el cursor usando el ratón o el teclado.
Recetas de MQL5 - implementamos el array asociativo o el diccionario para el acceso rápido a los datos
Recetas de MQL5 - implementamos el array asociativo o el diccionario para el acceso rápido a los datos

Recetas de MQL5 - implementamos el array asociativo o el diccionario para el acceso rápido a los datos

En este artículo se describe un algoritmo especial que permite acceder de manera eficaz a los elementos usando su clave única. Como clave se puede utilizar cualquier tipo básico de datos, por ejemplo, las cadenas o variables de números enteros. Este contenedor de datos suelen llamarlo el diccionario o array asociativo. La solución de muchas tareas con su ayuda resulta más simple y eficaz.
preview
Técnicas útiles y exóticas para el comercio automático

Técnicas útiles y exóticas para el comercio automático

En el presente artículo, mostraremos algunos trucos muy útiles e interesantes para comerciar de forma automatizada. Alguna de estas técnicas podría resultar familiar al lector, o quizá no, pero intentaremos exponer los métodos más interesantes y explicar por qué merece la pena utilizarlos. Y lo que es más importante: mostraremos lo que pueden hacer en la práctica. Vamos a escribir asesores expertos y comprobar todas las técnicas descritas en la historia de cotizaciones.
Usando los recursos computacionales de MATLAB 2018 en MetaTrader 5
Usando los recursos computacionales de MATLAB 2018 en MetaTrader 5

Usando los recursos computacionales de MATLAB 2018 en MetaTrader 5

Tras la modernización del paquete MATLAB en 2015, es necesario analizar el método moderno de creación de bibliotecas DLL. Usando como ejemplo un indicador de pronóstico, en el artículo se ilustran las peculiaridades de la vinculación de MetaTrader 5 y MATLAB al utilizar las versiones modernas de 64 bits de la plataforma. El análisis de todas las posibilidades de conexión de MATLAB permitirá al desarrollador de MQL5 crear más rápido aplicaciones con recursos computacionales ampliados, evitando tropezones indeseables.
Experto comercial universal: Los modos comerciales de las estrategias (Parte 1)
Experto comercial universal: Los modos comerciales de las estrategias (Parte 1)

Experto comercial universal: Los modos comerciales de las estrategias (Parte 1)

Cada escritor de expertos, independientemente de su nivel de preparación, se encuentra todos los días con las mismas tareas comerciales y problemas algorítmicos, que debe resolver de una forma u otra para organizar un proceso comercial fiable. Este artículo describe las capacidades del motor comercial CStrategy, capaz de ocuparse de la resolución de estas tareas y de proporcionar al usuario mecanismos cómodos para describir sus ideas sobre trading.
preview
Múltiples indicadores en un gráfico (Parte 01): Entendiendo los conceptos

Múltiples indicadores en un gráfico (Parte 01): Entendiendo los conceptos

Entienda cómo se puede agregar varios indicadores al mismo tiempo sin ocupar un área diferente de su gráfico. A mucha gente le gusta y se siente más segura operando cuando observa varios indicadores al mismo tiempo, por ejemplo, RSI, ESTOCÁSTICO, MACD, ADX, entre otros, y en algunos casos incluso diferentes activos que componen un índice determinado.
Usar Pseudo-Plantillas como Alternativa a Plantillas C++
Usar Pseudo-Plantillas como Alternativa a Plantillas C++

Usar Pseudo-Plantillas como Alternativa a Plantillas C++

Este artículo describe una forma de programas sin usar plantillas, pero manteniendo el estilo de programación inherente a ellas. Trata sobre la implementación de plantillas usando métodos personalizados y tiene un archivo adjunto con un script ya hecho para crear un código basado en las plantillas especificadas.
Modelo de continuación de movimiento - búsqueda en el gráfico y estadísticas de ejecución
Modelo de continuación de movimiento - búsqueda en el gráfico y estadísticas de ejecución

Modelo de continuación de movimiento - búsqueda en el gráfico y estadísticas de ejecución

En este artículo vamos a describir la definición programática de uno de los modelos de continuación del movimiento. La base del trabajo viene constituida por dos ondas: la principal y la de corrección. Como extremos se usarán fractales, además de los llamados fractales potenciales, los extremos que no se han formado aún como fractales.
Aplicación de OpenCL para simular patrones de velas
Aplicación de OpenCL para simular patrones de velas

Aplicación de OpenCL para simular patrones de velas

En este artículo analizaremos el algoritmo de implementación de un simulador de patrones de velas en el lenguaje OpenCL en el modo "OHLC en M1". Asimismo, compararemos su rapidez con el simulador de estrategias incorporado en el modo de optimización rápida y lenta.
Visualización simultánea de señales de varios indicadores de los cuatro periodos de tiempo
Visualización simultánea de señales de varios indicadores de los cuatro periodos de tiempo

Visualización simultánea de señales de varios indicadores de los cuatro periodos de tiempo

Durante el trading manual, podemos vigilar los valores de varios indicadores. Es algo distinto al trading mecánico. Si tenemos dos o tres indicadores y hemos elegido un periodo de tiempo para el trading, no es una tarea complicada. Pero ¿qué ocurre si tenemos cinco o seis indicadores y nuestra estrategia de trading requiere tener en cuenta las señales de varios periodos de tiempo?
preview
Explorando opciones para crear velas multicolores

Explorando opciones para crear velas multicolores

En este artículo, abordaremos las distintas posibilidades de crear indicadores personalizados con velas, señalando sus correspondientes ventajas y desventajas.
Asistente MQL5: Ampliación de la biblioteca estándar para el establecimiento de órdenes, stops y objetivos según precios calculados
Asistente MQL5: Ampliación de la biblioteca estándar para el establecimiento de órdenes, stops y objetivos según precios calculados

Asistente MQL5: Ampliación de la biblioteca estándar para el establecimiento de órdenes, stops y objetivos según precios calculados

En el artículo se describe la ampliación de la biblioteca estándar MQL5, que permite, con ayuda del Asistente, crear asesores que pongan órdenes, stop loss y take profit según los precios obtenidos de los módulos conectados. Esta aproximación no supone limitaciones adicionales en la cantidad de módulos y no provoca conflictos en su trabajo conjunto.
Conjunto de instrumentos para el marcado manual de gráficos y comercio (Parte I). Preparación - descripción de la estructura y clase de funciones auxiliares
Conjunto de instrumentos para el marcado manual de gráficos y comercio (Parte I). Preparación - descripción de la estructura y clase de funciones auxiliares

Conjunto de instrumentos para el marcado manual de gráficos y comercio (Parte I). Preparación - descripción de la estructura y clase de funciones auxiliares

En este artículo, comenzaremos a describir el conjunto para el marcado gráfico con la ayuda de atajos de teclado. Es un herramienta muy cómoda: con solo pulsar un botón, aparecerá una línea de tendencia, el abanico de Fibonacci con los parámetros necesarios, etcétera. Asimismo, tendremos la posibilidad de alternar marcos temporales, cambiar el orden de las "capas" de los objetos o eliminar todos los objetos de un gráfico.
Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF
Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF

Como exportar cotizaciones desde MetaTrader 5 a aplicaciones .NET usando los servicios de WCF

¿Quiere organizar la exportación de cotización desde MetaTrader 5 a su propia aplicación? ¡La compatibilidad entre MQL5 y DLL permite crear este tipo de soluciones! Este artículo le mostrará una de las formas de exportar cotizaciones desde MetaTrader 5 a aplicaciones escritas en .NET. Para mí, la exportación de cotizaciones usando esta plataforma fue más interesante, racional y fácil de implementar. Por desgracia, la versión 5 todavía no soporta .NET, por lo que, como en los viejos tiempos, usaremos win32 dell con .NET como capa intermedia.
Libro de Recetas MQL5: El Historial de Transacciones y la Biblioteca de Funciones para Obtener Propiedades de Posición
Libro de Recetas MQL5: El Historial de Transacciones y la Biblioteca de Funciones para Obtener Propiedades de Posición

Libro de Recetas MQL5: El Historial de Transacciones y la Biblioteca de Funciones para Obtener Propiedades de Posición

Es momento de resumir brevemente la información facilitada los artículos anteriores sobre propiedades de posición. En este artículo crearemos unas cuantas funciones adicionales para obtener las propiedades que solo se pueden conseguir tras acceder al historial de transacciones. También nos familiarizaremos con estructuras de datos que nos permitirán acceder a propiedades de posición y del símbolo de una forma más conveniente.
preview
Multibot en MetaTrader: iniciamos múltiples robots desde un gráfico

Multibot en MetaTrader: iniciamos múltiples robots desde un gráfico

En este artículo, veremos una plantilla simple para crear un robot MetaTrader universal que se pueda usar en varios gráficos, pero adjunto a uno solo, sin necesidad de configurar cada ejemplar del robot en cada gráfico individual.
Controles gráficos personalizados. Parte 3. Formularios
Controles gráficos personalizados. Parte 3. Formularios

Controles gráficos personalizados. Parte 3. Formularios

Este es el último de los tres artículos dedicados a los controles gráficos. En él vamos a ver la creación del principal componente de la interfaz gráfica, el formulario, y su uso en combinación con otros controles. Además de las clases para formularios, las clases CFrame, CButton y CLabel se han añadido a la librería del control.
Experto comercial universal: Acceso a las propiedades de los instrumentos (parte 8)
Experto comercial universal: Acceso a las propiedades de los instrumentos (parte 8)

Experto comercial universal: Acceso a las propiedades de los instrumentos (parte 8)

La octava parte del artículo está dedicada a la descripción de la clase CSymbol, un objeto especial que proporciona acceso a un instrumento comercial aleatorio. Incluida en el experto comercial, esta clase proporciona un rico conjunto de propiedades de cualquier instrumento, haciendo la programación de expertos aún más sencilla y multifuncional.
Interfaces gráficas VI: Controles "Slider" y "Slider doble" (Capítulo 2)
Interfaces gráficas VI: Controles "Slider" y "Slider doble" (Capítulo 2)

Interfaces gráficas VI: Controles "Slider" y "Slider doble" (Capítulo 2)

En el artículo anterior nuestra librería ha sido completada con cuatro controles bastante frecuentes en las interfaces gráficas: “checkbox”, “campo de edición”, “campo de edición con checkbox” y “combobox con checkbox”. El segundo capítulo de la sexta parte estará dedicado a los controles como Slider y Slider doble.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 40): Indicadores basados en la biblioteca - actualización de datos en tiempo real
Trabajando con las series temporales en la biblioteca DoEasy (Parte 40): Indicadores basados en la biblioteca - actualización de datos en tiempo real

Trabajando con las series temporales en la biblioteca DoEasy (Parte 40): Indicadores basados en la biblioteca - actualización de datos en tiempo real

En el artículo, vamos a analizar la creación de un indicador multiperiodo basado en la biblioteca DoEasy. Asimismo, vamos a mejorar las clases de las series temporales para obtener los datos de cualquier marco temporal y representarlos en el periodo actual del gráfico.
preview
Redes neuronales: así de sencillo (Parte 3): Redes convolucionales

Redes neuronales: así de sencillo (Parte 3): Redes convolucionales

Continuando el tema de la redes neuronales, proponemos al lector analizar las redes neuronales convolucionales. Este tipo de redes neuronales ha sido desarrollado para buscar objetos en una imagen. Asimismo, analizaremos cómo nos pueden ayudar al operar en los mercados financieros.
Comunicándonos con Meta Trader 5 usando conexiones designadas sin utilizar DLL
Comunicándonos con Meta Trader 5 usando conexiones designadas sin utilizar DLL

Comunicándonos con Meta Trader 5 usando conexiones designadas sin utilizar DLL

Muchos desarrolladores se enfrentan con el mismo problema: cómo llegar al módulo del terminal sin utilizar DLL poco seguras. Una de los métodos más sencillos y seguros es utilizar conexiones designadas que funcionan como operaciones de archivo normales. Estos nos permiten organizar la comunicación cliente-servidor entre procesadores entre los programas. Eche un vistazo a los ejemplos prácticos en C++ y MQL5 que incluyen el intercambio de datos entre cliente y servidor y la prueba de rendimiento.
Interfaces gráficas III: Grupos de botones simples y multifuncionales (Capítulo 2)
Interfaces gráficas III: Grupos de botones simples y multifuncionales (Capítulo 2)

Interfaces gráficas III: Grupos de botones simples y multifuncionales (Capítulo 2)

El primer capítulo de la tercera pare de la serie estaba dedicada a los botones simples y multifuncionales. En el segundo capítulo hablaremos de los grupos de botones interconectados que permiten crear los controles, cuando el usuario puede elegir una opción de un determinado conjunto (grupo).
Método para encontrar los errores en el código mediante comentarios
Método para encontrar los errores en el código mediante comentarios

Método para encontrar los errores en el código mediante comentarios

El artículo describe un método de búsqueda de errores en el código de MQL4 basado en los comentarios. Este método ha mostrado ser útil en caso de que problemas originados durante la compilación y provocados por los errores en un código razonablemente grande.
Interfaces gráficas VII: Control "Tablas" (Capítulo 1)
Interfaces gráficas VII: Control "Tablas" (Capítulo 1)

Interfaces gráficas VII: Control "Tablas" (Capítulo 1)

En la séptima parte de la serie de los artículos sobre las interfaces gráficas en los terminales MetaTrader serán presentados tres tipos de tablas: tabla a base de las etiquetas de texto, tabla a base de los campos de edición y tabla dibujada. Otro control importante que se usa con bastante frecuencia son las pestañas a través de los cuales se puede ocultar o mostrar los grupos de otros controles. Eso permite al usuario diseñar las interfaces gráficas muy compactas en sus aplicaciones MQL.
Interacción entre MetaTrader 4 y Matlab a través de archivos CSV
Interacción entre MetaTrader 4 y Matlab a través de archivos CSV

Interacción entre MetaTrader 4 y Matlab a través de archivos CSV

Las instrucciones paso a paso de cómo organizar las gamas intercambio de datos entre MetaTrader 4 y Metlab a través de archivos CSV.
Experto comercial universal: integración con los módulos estándar de señales de MetaTrader (parte 7)
Experto comercial universal: integración con los módulos estándar de señales de MetaTrader (parte 7)

Experto comercial universal: integración con los módulos estándar de señales de MetaTrader (parte 7)

Esta parte está dedicada a la integración del motor comercial CStrategy con los módulos de señales incluidos en la biblioteca estándar de MetaTrader. El material describe los métodos de trabajo con las señales y la creación de estrategias de usuario basadas ellas.
Estudiamos la clase CCanvas. Implementación de la transparencia de los objetos gráficos
Estudiamos la clase CCanvas. Implementación de la transparencia de los objetos gráficos

Estudiamos la clase CCanvas. Implementación de la transparencia de los objetos gráficos

¿Está harto del gráfico anguloso de las medias móviles? ¿Quiere usted dibujar en el terminal algo más bonito que un simple rectángulo rellenado? Ahora es posible dibujar de manera vistosa en el terminal. Para ello existe la clase de creación de gráficos personalizados CCanvas. Con ayuda de esta clase, es posible conseguir transparencia, mezclar los colores y alcanzar la ilusión de transparencia con ayuda de la superposición y la mezcla de colores.
MT4TerminalSyn: Sistema para la Sincronización de Terminales MetaTrader 4
MT4TerminalSyn: Sistema para la Sincronización de Terminales MetaTrader 4

MT4TerminalSyn: Sistema para la Sincronización de Terminales MetaTrader 4

Este artículo está dedicado al tema "Ampliar las posibilidades de los programas MQL4 utilizando funciones de sistemas operativos y otros medios de desarrollo de programas". El artículo describe un ejemplo de un sistema que integra la tarea de la sincronización de varias copias de terminales basada en una única plantilla de base.
Interacción entre MetaTrader 4 y Matlab mediante DDE
Interacción entre MetaTrader 4 y Matlab mediante DDE

Interacción entre MetaTrader 4 y Matlab mediante DDE

Instrucciones paso a paso sobre cómo organizar la transferencia de datos desde Matlab a MetaTrader 4 usando DDE.
Estudiamos la clase CCanvas. Suavizado y sombras
Estudiamos la clase CCanvas. Suavizado y sombras

Estudiamos la clase CCanvas. Suavizado y sombras

El algoritmo de suavizado de la clase CCanvas es la base de todas las construcciones en las que se usa el suavizado. En el artículo se cuenta cómo funciona este algoritmo y se muestran ejemplos visuales de su funcionamiento. Además, se analizará el dibujado de las sombras de los objetos gráficos y se desarrollará un algoritmo detallado del dibujado de la sombra en el elemento canvas. Para los cálculos se ha utilizado la biblioteca de análisis numérico ALGLIB.