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
Redes neuronales: así de sencillo (Parte 79): Adición de solicitudes en el contexto de estado (FAQ)

Redes neuronales: así de sencillo (Parte 79): Adición de solicitudes en el contexto de estado (FAQ)

En el artículo anterior, nos familiarizamos con uno de los métodos para detectar objetos en una imagen. Sin embargo, el procesamiento de una imagen estática se diferencia ligeramente del trabajo con series temporales dinámicas que incluyen la dinámica de los precios que hemos analizado. En este artículo les presentaré un método de detección de objetos en vídeo que resulta algo más cercano al problema que estamos resolviendo.
preview
Practicando el desarrollo de estrategias de trading

Practicando el desarrollo de estrategias de trading

En este artículo, intentaremos desarrollar nuestra propia estrategia de trading. Toda estrategia de trading debe basarse en algún tipo de ventaja estadística. Además, esta ventaja debería existir durante mucho tiempo.
preview
Redes neuronales: así de sencillo (Parte 81): Razonamiento de movimiento guiado por el contexto de grueso a fino (CCMR, Coarse-to-Fine Context-Guided Motion Reasoning)

Redes neuronales: así de sencillo (Parte 81): Razonamiento de movimiento guiado por el contexto de grueso a fino (CCMR, Coarse-to-Fine Context-Guided Motion Reasoning)

En trabajos anteriores, siempre evaluábamos el estado actual del entorno. Al mismo tiempo, la dinámica de los cambios en los indicadores siempre permaneció «entre bastidores». En este artículo quiero presentarle un algoritmo que permite evaluar el cambio directo de los datos entre 2 estados ambientales sucesivos.
preview
DoEasy. Funciones de servicio (Parte 1): Patrones de precios

DoEasy. Funciones de servicio (Parte 1): Patrones de precios

En este artículo empezaremos a desarrollar métodos de búsqueda de patrones de precios usando datos de series temporales. Un patrón tiene una serie de parámetros comunes a todas las clases y tipos de patrones. Todos los datos de este tipo se centrarán en la clase de objeto de patrón abstracto básico. Hoy crearemos una clase de patrón abstracto y una clase de patrón Pin-bar.
preview
Desarrollamos un Asesor Experto multidivisas (Parte 5): Tamaños de posición variables

Desarrollamos un Asesor Experto multidivisas (Parte 5): Tamaños de posición variables

En las partes anteriores, el Asesor Experto (EA) en desarrollo sólo podía utilizar un tamaño de posición fijo para operar. Esto es aceptable para las pruebas, pero no es aconsejable cuando se opera en una cuenta real. Hagamos posible el comercio utilizando tamaños de posición variables.
preview
Puntuación de propensión (Propensity score) en la inferencia causal

Puntuación de propensión (Propensity score) en la inferencia causal

Este artículo trata el tema del emparejamiento en la inferencia causal. El emparejamiento se usa para emparejar observaciones similares en un conjunto de datos. Esto es necesario para identificar correctamente los efectos causales, eliminando el sesgo. Hoy explicaremos cómo esto ayuda a crear sistemas comerciales basados en el aprendizaje automático que se vuelven más robustos con nuevos datos en los que no se ha entrenado. El papel principal lo asignaremos a la puntuación de propensión, ampliamente utilizada en la inferencia causal.
preview
Filtrado de estacionalidad y período de tiempo para modelos de Deep Learning ONNX con Python para EA

Filtrado de estacionalidad y período de tiempo para modelos de Deep Learning ONNX con Python para EA

¿Podemos beneficiarnos de la estacionalidad al crear modelos para Deep Learning con Python? ¿Ayuda el filtrado de datos para los modelos ONNX a obtener mejores resultados? ¿Qué periodo de tiempo debemos utilizar? Trataremos todo esto a lo largo de este artículo.
preview
Características del Wizard MQL5 que debe conocer (Parte 13): DBSCAN para la clase experta de señales

Características del Wizard MQL5 que debe conocer (Parte 13): DBSCAN para la clase experta de señales

El agrupamiento basado en densidad para aplicaciones con ruido (DBSCAN) es una forma no supervisada de agrupar datos que apenas requiere parámetros de entrada, salvo solo 2, lo cual, en comparación con otros enfoques como k-means, es una ventaja. Profundizamos en cómo esto podría ser constructivo para probar y eventualmente operar con Asesores Expertos montados por Wizard MQL5.
preview
Desarrollamos un Asesor Experto multidivisas (Parte 4): Órdenes pendientes virtuales y guardado del estado

Desarrollamos un Asesor Experto multidivisas (Parte 4): Órdenes pendientes virtuales y guardado del estado

Tras empezar a desarrollar un EA multidivisa, ya hemos obtenido algunos resultados y hemos conseguido realizar varias iteraciones de mejora del código. Sin embargo, nuestro EA fue incapaz de trabajar con órdenes pendientes y reanudar la operación después del reinicio del terminal. Añadamos estas características.
preview
Creación de un modelo de restricción de tendencia de velas (Parte 1): Para EAs e Indicadores Técnicos

Creación de un modelo de restricción de tendencia de velas (Parte 1): Para EAs e Indicadores Técnicos

Este artículo está dirigido a principiantes y desarrolladores avanzados de MQL5. Proporciona un fragmento de código para definir y limitar los indicadores generadores de señales a tendencias en plazos superiores. De este modo, los operadores pueden mejorar sus estrategias incorporando una perspectiva de mercado más amplia, lo que da lugar a señales de negociación potencialmente más sólidas y fiables.
preview
Trabajamos con modelos ONNX en formato float16 y float8

Trabajamos con modelos ONNX en formato float16 y float8

Los formatos de datos usados para representar modelos de aprendizaje automático desempeñan un papel clave en su eficacia. En los últimos años, se han desarrollado varios tipos de datos nuevos específicamente para trabajar con modelos de aprendizaje profundo. En este artículo nos centraremos en dos nuevos formatos de datos que se han generalizado en los modelos modernos.
preview
Algoritmos de optimización de la población: Resiliencia ante el estancamiento en los extremos locales (Parte I)

Algoritmos de optimización de la población: Resiliencia ante el estancamiento en los extremos locales (Parte I)

El presente artículo presenta un experimento único cuyo objetivo es investigar el comportamiento de los algoritmos de optimización basados en poblaciones en el contexto de su capacidad para abandonar eficientemente los mínimos locales cuando la diversidad en la población es baja y alcanzar los máximos globales. Los trabajos en este campo nos permitirán comprender mejor qué algoritmos específicos pueden continuar con éxito la búsqueda a partir de las coordenadas fijadas por el usuario como punto de partida, y qué factores influyen en su éxito en este proceso.
preview
Superar los retos de integración de ONNX

Superar los retos de integración de ONNX

ONNX es una gran herramienta para la integración de código complejo de IA entre diferentes plataformas, es una gran herramienta que viene con algunos desafíos que uno debe abordar para obtener el máximo provecho de ella, En este artículo se discuten los problemas comunes que podría enfrentar y cómo mitigarlos.
preview
Clase básica de algoritmos de población como base para una optimización eficaz

Clase básica de algoritmos de población como base para una optimización eficaz

El presente material supone un intento único de investigación para combinar una variedad de algoritmos de población en una sola clase y simplificar la aplicación de técnicas de optimización. Este enfoque no solo descubre oportunidades para el desarrollo de nuevos algoritmos, incluidas variantes híbridas, sino que también crea un banco de pruebas básico y versátil. Este banco se convertirá así en una herramienta clave para seleccionar el algoritmo óptimo según un problema específico.
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
Redes neuronales: así de sencillo (Parte 78): Detector de objetos basado en el Transformer (DFFT)

Redes neuronales: así de sencillo (Parte 78): Detector de objetos basado en el Transformer (DFFT)

En este artículo, le propongo abordar la creación de una estrategia comercial desde una perspectiva diferente. Hoy no pronosticaremos los movimientos futuros de los precios, sino que trataremos de construir un sistema comercial basado en el análisis de datos históricos.
preview
Desarrollando un cliente MQTT para MetaTrader 5: un enfoque TDD - Final

Desarrollando un cliente MQTT para MetaTrader 5: un enfoque TDD - Final

Este artículo es la última parte de una serie que describe nuestros pasos de desarrollo de un cliente MQL5 nativo para el protocolo MQTT 5.0. Aunque la biblioteca aún no está lista para la producción, en esta parte utilizaremos nuestro cliente para actualizar un símbolo personalizado con ticks (o precios) procedentes de otro broker. Por favor, consulte la parte inferior de este artículo para obtener más información sobre el estado actual de la biblioteca, lo que falta para que sea totalmente compatible con el protocolo MQTT 5.0, una posible hoja de ruta, y cómo seguir y contribuir a su desarrollo.
preview
Características del Wizard MQL5 que debe conocer (Parte 15): Máquinas de vectores de soporte utilizando el polinomio de Newton

Características del Wizard MQL5 que debe conocer (Parte 15): Máquinas de vectores de soporte utilizando el polinomio de Newton

Las máquinas de vectores de soporte clasifican los datos en función de clases predefinidas explorando los efectos de aumentar su dimensionalidad. Se trata de un método de aprendizaje supervisado bastante complejo dado su potencial para tratar datos multidimensionales. Para este artículo consideramos cómo su implementación muy básica de datos bidimensionales puede hacerse más eficientemente con el polinomio de Newton al clasificar precio-acción.
preview
Multibot en MetaTrader (Parte II): Plantilla dinámica mejorada

Multibot en MetaTrader (Parte II): Plantilla dinámica mejorada

Desarrollando el tema del artículo anterior sobre el multibot, hemos decidido crear una plantilla más flexible y funcional, que tenga grandes posibilidades, y que se pueda utilizar eficazmente en freelance, además de como base para desarrollar asesores de divisa y periodo múltiple con posibilidad de integración con soluciones externas.
preview
Desarrollo de asesores expertos autooptimizantes en MQL5

Desarrollo de asesores expertos autooptimizantes en MQL5

Construya asesores expertos que miren hacia delante y se ajusten a cualquier mercado.
preview
Operar con noticias de manera sencilla (Parte 1): Creando una base de datos

Operar con noticias de manera sencilla (Parte 1): Creando una base de datos

Operar con noticias puede ser complicado y abrumador, en este artículo repasaremos los pasos para obtener datos de noticias. Además, conoceremos el calendario económico de MQL5 y lo que ofrece.
preview
Operaciones angulares para tráders

Operaciones angulares para tráders

En este artículo se analizarán las operaciones angulares. Veremos varios métodos para construir ángulos y cómo aplicarlos en el trading.
preview
Aprendizaje automático y Data Science (Parte 20): Elección entre LDA y PCA en tareas de trading algorítmico en MQL5

Aprendizaje automático y Data Science (Parte 20): Elección entre LDA y PCA en tareas de trading algorítmico en MQL5

En este artículo analizaremos los métodos de reducción de la dimensionalidad y su aplicación en el entorno comercial MQL5. En concreto, exploraremos los matices del análisis discriminante lineal (LDA) y el análisis de componentes principales (PCA) y analizaremos su impacto en el desarrollo de estrategias y el análisis de mercados.
preview
Introducción a MQL5 (Parte 6): Guía para principiantes sobre las funciones de matriz en MQL5 (II)

Introducción a MQL5 (Parte 6): Guía para principiantes sobre las funciones de matriz en MQL5 (II)

Embárquese en la siguiente fase de nuestro viaje MQL5. En este artículo para principiantes analizaremos el resto de funciones de la matriz y desmitificaremos conceptos complejos para que pueda elaborar estrategias de negociación eficaces. Hablaremos de ArrayPrint, ArrayInsert, ArraySize, ArrayRange, ArrarRemove, ArraySwap, ArrayReverse y ArraySort. Aumente su experiencia en negociación algorítmica con estas funciones de matriz esenciales. ¡Únase a nosotros en el camino hacia el dominio de MQL5!
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
Obtenga una ventaja sobre cualquier mercado

Obtenga una ventaja sobre cualquier mercado

Aprenda cómo puede adelantarse a cualquier mercado en el que desee operar, independientemente de su nivel actual de habilidad.
preview
Características del Wizard MQL5 que debe conocer (Parte 12): Polinomio de Newton

Características del Wizard MQL5 que debe conocer (Parte 12): Polinomio de Newton

El polinomio de Newton, que crea ecuaciones cuadráticas a partir de un conjunto de unos pocos puntos, es un enfoque arcaico pero interesante para observar una serie temporal. En este artículo tratamos de explorar qué aspectos podrían ser de utilidad para los operadores desde este enfoque, así como abordar sus limitaciones.
preview
Redes neuronales: así de sencillo (Parte 77): Transformador de covarianza cruzada (XCiT)

Redes neuronales: así de sencillo (Parte 77): Transformador de covarianza cruzada (XCiT)

En nuestros modelos, a menudo utilizamos varios algoritmos de atención. Y, probablemente, lo más frecuente es utilizar transformadores. Su principal desventaja es la necesidad de recursos. En este artículo, estudiaremos un nuevo algoritmo que puede ayudar a reducir los costes informáticos sin perder calidad.
preview
Redes neuronales: así de sencillo (Parte 76): Exploración de diversos patrones de interacción con Multi-future Transformer

Redes neuronales: así de sencillo (Parte 76): Exploración de diversos patrones de interacción con Multi-future Transformer

Este artículo continúa con el tema de la predicción del próximo movimiento de los precios. Le invito a conocer la arquitectura del Transformador Multifuturo. Su idea principal es descomponer la distribución multimodal del futuro en varias distribuciones unimodales, lo que permite simular eficazmente varios modelos de interacción entre agentes en la escena.
preview
DoEasy. Elementos de control (Parte 33): "ScrollBar" vertical

DoEasy. Elementos de control (Parte 33): "ScrollBar" vertical

En este artículo, continuaremos desarrollando los elementos gráficos de la librería DoEasy, y añadiremos el desplazamiento vertical de los controles del objeto formulario y algunas funciones y métodos útiles que serán necesarios más adelante.
preview
Desarrollo y prueba de sistemas comerciales basados en el canal de Keltner

Desarrollo y prueba de sistemas comerciales basados en el canal de Keltner

En este artículo examinaremos los sistemas comerciales que utilizan un concepto muy importante de los mercados financieros: la volatilidad. Asimismo, estudiaremos un sistema comercial basado en el Canal de Keltner, incluyendo su implementación en código y sus pruebas con varios activos.
preview
Aplicamos el coeficiente generalizado de Hurst y la prueba del coeficiente de varianza en MQL5

Aplicamos el coeficiente generalizado de Hurst y la prueba del coeficiente de varianza en MQL5

En este artículo, discutiremos cómo utilizar el coeficiente generalizado de Hurst y la prueba del coeficiente de varianza para analizar el comportamiento de las series de precios en MQL5.
preview
Redes neuronales: así de sencillo (Parte 75): Mejora del rendimiento de los modelos de predicción de trayectorias

Redes neuronales: así de sencillo (Parte 75): Mejora del rendimiento de los modelos de predicción de trayectorias

Los modelos que creamos son cada vez más grandes y complejos. Esto aumenta los costes no sólo de su formación, sino también de su funcionamiento. Sin embargo, el tiempo necesario para tomar una decisión suele ser crítico. A este respecto, consideremos los métodos para optimizar el rendimiento del modelo sin pérdida de calidad.
preview
Algoritmos de optimización de la población: Objetos artificiales de búsqueda multisocial (artificial Multi-Social search Objects, MSO)

Algoritmos de optimización de la población: Objetos artificiales de búsqueda multisocial (artificial Multi-Social search Objects, MSO)

Continuación del artículo anterior como desarrollo de la idea de grupos sociales. El nuevo artículo investiga la evolución de los grupos sociales mediante algoritmos de reubicación y memoria. Los resultados ayudarán a comprender la evolución de los sistemas sociales y a aplicarlos a la optimización y la búsqueda de soluciones.
preview
Red neuronal en la práctica: Recta secante

Red neuronal en la práctica: Recta secante

Como se explicó en la parte teórica, necesitamos usar regresiones lineales y derivadas cuando trabajamos con redes neuronales. ¿Pero por qué? La razón es que la regresión lineal es una de las fórmulas más simples que existen. Básicamente, una regresión lineal es solo una función afín. Sin embargo, cuando hablamos de redes neuronales, no nos interesan los efectos de la recta de regresión lineal. Lo que nos interesa es la ecuación que genera dicha recta. La recta generada poco importa. ¿Pero sabes cuál es la ecuación principal que hay que comprender? Si no, lee este artículo para empezar a comprenderlo.
preview
Factorización de matrices: lo básico

Factorización de matrices: lo básico

Como el objetivo aquí es ser didáctico. Mantendré las cosas en su forma más sencilla. Es decir, implementaremos solo lo necesario: la multiplicación de matrices. Verás que esto será suficiente para simular la multiplicación de una matriz por un escalar. La gran dificultad que muchas personas tienen a la hora de implementar un código utilizando la factorización de matrices es que, a diferencia de una factorización escalar, donde en casi todos los casos el orden de los factores no altera el resultado, cuando se usan matrices, la cosa no es así.
preview
Inferencia causal en problemas de clasificación de series temporales

Inferencia causal en problemas de clasificación de series temporales

En este artículo, examinaremos la teoría de la inferencia causal utilizando el aprendizaje automático, así como la implementación del enfoque personalizado en Python. La inferencia causal y el pensamiento causal tienen sus raíces en la filosofía y la psicología y desempeñan un papel importante en nuestra comprensión de la realidad.
preview
Introducción a MQL5 (Parte 4): Estructuras, clases y funciones de tiempo

Introducción a MQL5 (Parte 4): Estructuras, clases y funciones de tiempo

En esta serie, seguiremos desvelando los secretos de la programación. En nuestro nuevo artículo, aprenderemos los fundamentos de las estructuras, las clases y las funciones de tiempo y adquiriremos nuevas habilidades para lograr una programación eficiente. Esta guía será probablemente útil no solo para los principiantes, sino también para los desarrolladores experimentados, ya que simplifica conceptos complejos, ofreciendo información valiosa para dominar MQL5. Así que hoy podrá seguir aprendiendo cosas nuevas, mejorando sus conocimientos de programación y dominando el mundo del trading algorítmico.
preview
Redes neuronales: así de sencillo (Parte 74): Predicción de trayectorias con adaptación

Redes neuronales: así de sencillo (Parte 74): Predicción de trayectorias con adaptación

Este artículo presenta un método bastante eficaz de previsión de trayectorias de múltiples agentes, capaz de adaptarse a diversas condiciones ambientales.
preview
Desarrollo de un sistema de repetición (Parte 58): Volvemos a trabajar en el servicio

Desarrollo de un sistema de repetición (Parte 58): Volvemos a trabajar en el servicio

Después de haber tomado un descanso en el desarrollo y perfeccionamiento del servicio usado en la repetición/simulación, retomaremos el trabajo en él. Ahora que no utilizaremos algunos recursos, como las variables globales del terminal, es necesario reestructurar por completo algunas partes de él. No se preocupen, este proceso se explicará adecuadamente para que todos puedan seguir el desarrollo del servicio.