Creación de sistemas de trading basados en IA en MQL5 (Parte 2): Desarrollo de un programa integrado con ChatGPT y con interfaz de usuario
En este artículo, desarrollaremos un programa en MQL5 integrado con ChatGPT y dotado de una interfaz de usuario, aprovechando el framework para el procesamiento de JSON de la primera parte para enviar prompts a la API de OpenAI y mostrar las respuestas en un gráfico de MetaTrader 5. Asismo, implementaremos un panel de control con un campo de entrada, un botón de envío y un área de visualización de la respuesta, gestionando la comunicación con la API y el ajuste de texto para la interacción con el usuario.
Modificación del algoritmo de optimización de Dingo — Dingo Optimization Algorithm M (DOAm)
La modificación del algoritmo de Dingo propuesta por el autor en este artículo ha elevado considerablemente el listón en la búsqueda del mejor de los mejores algoritmos de optimización. ¿Es posible obtener resultados aún mejores?
Ecuación simbólica de previsión del precio con SymPy
El artículo describe un enfoque interesante del trading algorítmico basado en ecuaciones matemáticas simbólicas, en lugar de las tradicionales «cajas negras» del aprendizaje automático. El autor muestra cómo transformar redes neuronales opacas en ecuaciones matemáticas legibles utilizando la biblioteca SymPy y la regresión polinómica, lo que permite comprender plenamente la lógica que subyace a las decisiones de trading. Este enfoque combina la potencia computacional del aprendizaje automático con la transparencia de los métodos clásicos, lo que permite a los traders analizar, ajustar y adaptar los modelos en tiempo real.
Simplificación de bases de datos en MQL5 (Parte 2): Uso de la metaprogramación para crear entidades
Hoy hemos analizado el uso avanzado de #define para la metaprogramación en MQL5, creando entidades que representan tablas y metadatos de columnas (tipo, clave primaria, autoincremento, posibilidad de valores nulos, etc.). Además, hemos centralizado estas definiciones en el archivo TickORM.mqh, automatizando la generación de clases de metadatos y allanando el camino para una manipulación eficiente de los datos por parte del ORM, sin necesidad de escribir SQL manualmente.
Creación de sistemas de trading basados en IA en MQL5 (Parte 1): Implementación del manejo de JSON para APIs de IA
En este artículo, desarrollaremos un framework de análisis de JSON en MQL5 para gestionar el intercambio de datos en la integración con APIs de IA, centrándonos en una clase JSON para procesar estructuras JSON. Asimismo, implementaremos métodos para serializar y deserializar datos JSON, compatibles con diversos tipos de datos, como cadenas, números y objetos. Esto resulta esencial para comunicarse con servicios de IA como ChatGPT, y permite desarrollar futuros sistemas de trading basados en IA al garantizar un tratamiento y una manipulación precisos de los datos.
Simplificación de bases de datos en MQL5 (Parte 1): Introducción a las bases de datos y SQL
Analizamos cómo manipular bases de datos en MQL5 utilizando las funciones nativas del lenguaje. Cubrimos todo, desde la creación de tablas, la inserción, la actualización y la eliminación de datos hasta la importación y exportación de datos, todo ello con código de ejemplo. El contenido sirve como base sólida para comprender el funcionamiento interno del acceso a los datos, allanando el camino para el análisis de los ORM, donde crearemos uno en MQL5.
Pipelines en MQL5
En este artículo, analizaremos un paso clave en la preparación de datos para el aprendizaje automático que está cobrando cada vez más importancia: los pipelines de preprocesamiento de datos. En esencia, supone una secuencia optimizada de pasos de transformación de datos que preparan los datos brutos antes de introducirlos en un modelo. Por muy poco interesante que pueda parecer a primera vista para quienes no estén familiarizados con el tema, esta «estandarización de datos» no solo ahorra tiempo de entrenamiento y costos de ejecución, sino que contribuye en gran medida a garantizar una mejor generalización. En este artículo nos centraremos en algunas funciones de preprocesamiento de SCIKIT-LEARN y, aunque no vamos a utilizar el asistente de MQL5, volveremos a él en próximos artículos.
MetaTrader se une a Google Sheets con Pythonanywhere: guía para un flujo de datos seguro
Este artículo muestra una forma segura de exportar datos de MetaTrader a Google Sheets. Google Sheets es la solución más valiosa, ya que está basada en la nube y se puede acceder a los datos guardados en ella en cualquier momento y desde cualquier lugar. De este modo, los traders pueden acceder a los datos de operaciones y a otros datos relacionados exportados a una hoja de cálculo de Google, y realizar análisis adicionales para futuras operaciones en cualquier momento y desde cualquier lugar en el que se encuentren.
Características del Wizard MQL5 que debe conocer (Parte 79): Uso de los osciladores Gator y Acumulación/Distribución con aprendizaje supervisado
En el último apartado, concluimos nuestro análisis del emparejamiento del oscilador caimán y el oscilador de acumulación/distribución cuando se utilizan en su configuración típica de las señales brutas que generan. Estos dos indicadores son complementarios, ya que funcionan como indicadores de tendencia y volumen, respectivamente. A continuación, damos seguimiento a ese artículo examinando el efecto que el aprendizaje supervisado puede tener en la mejora de algunos de los patrones de características que habíamos revisado. Nuestro enfoque de aprendizaje supervisado es una CNN que utiliza regresión por kernels y similitud de producto escalar para dimensionar sus núcleos y canales. Como siempre, lo hacemos en un archivo de clase de señal personalizado que funciona con el asistente MQL5 para ensamblar un Asesor Experto.
Estrategia del águila — Eagle Strategy (ES)
Eagle Strategy es un algoritmo que imita la estrategia de caza en dos fases del águila: la búsqueda global mediante vuelos de Lévy según el método de Mantegna se alterna con una explotación local intensiva del algoritmo de las luciérnagas (Firefly), un enfoque matemáticamente fundamentado para lograr el equilibrio entre la exploración y la explotación, así como un concepto bioinspirado que aúna dos fenómenos naturales en un único método computacional.
Aprendiendo MQL5 de principiante a profesional (Parte VII): Principios de depuración de aplicaciones MQL
La corrección de errores es una parte indispensable del ciclo de programación. En este artículo se analizan las técnicas habituales para corregir errores (depuración) en cualquier aplicación que se ejecute en el entorno de MetaTrader 5.
Operaciones CRUD en Firebase con MQL
Este artículo ofrece una guía paso a paso para dominar las operaciones CRUD (Create, Read, Update, Delete; crear, leer, actualizar y eliminar) en Firebase, centrándose en su Firebase Realtime Database (base de datos en tiempo real de Firebase) y en Firestore. Descubre cómo usar los métodos del SDK de Firebase para gestionar datos de forma eficiente en aplicaciones web y móviles, desde añadir nuevos registros hasta consultar, modificar y eliminar entradas. Explora ejemplos de código prácticos y las mejores prácticas para estructurar y gestionar datos en tiempo real, lo que permite a los desarrolladores crear aplicaciones dinámicas y escalables con la arquitectura NoSQL flexible de Firebase.
Integración de MQL5 con paquetes de procesamiento de datos (Parte 5): Aprendizaje adaptativo y flexibilidad
Esta parte se centra en la creación de un modelo de negociación flexible y adaptativo, entrenado con datos históricos del XAUUSD, preparándolo para su exportación a ONNX y su posible integración en sistemas de negociación en tiempo real.
Probador de estrategias para Python-MetaTrader 5 (Parte 01): Simulador de operaciones
El módulo de MetaTrader 5 disponible en Python ofrece una forma cómoda de abrir operaciones en la aplicación de MetaTrader 5 utilizando Python, pero presenta un gran problema: carece de la función de Probador de estrategias que sí incluye la aplicación de MetaTrader 5. En esta serie de artículos, crearemos un marco de trabajo para realizar pruebas retrospectivas de tus estrategias de trading en entornos de Python.
Robot de trading multiflujo con aprendizaje automático: del concepto a la implementación
El artículo presenta el desarrollo paso a paso de un robot de trading multiflujo con aprendizaje automático en Python y MetaTrader 5. Se analiza la arquitectura del sistema, desde la recopilación de datos y la creación de indicadores técnicos hasta el entrenamiento de modelos XGBoost con gestión de riesgos de cartera. Asimismo, se describe detalladamente la implementación del aumento de datos, la clusterización de características mediante Gaussian Mixture Models y la coordinación de flujos para el trading paralelo de varios pares de divisas.
Algoritmo de optimización del dingo — Dingo Optimization Algorithm (DOA)
En este artículo se presenta un nuevo método metaheurístico basado en las estrategias de caza de los dingos australianos: el ataque en grupo, la persecución y la búsqueda de carroña. Veamos cómo se comporta, desde el punto de vista algorítmico, el algoritmo de optimización del dingo (DOA).
Trading algorítmico de arbitraje basado en la teoría de grafos
En este artículo, el arbitraje triangular se presenta como un problema de búsqueda de ciclos en un grafo orientado, en el que los vértices son divisas y las aristas, pares de divisas con pesos que representan los tipos de cambio. Ciclo rentable: producto de los pesos >1. Los algoritmos de Floyd-Warshall y DFS que hemos desarrollado encuentran rutas óptimas para el cambio de divisas que permiten volver al vértice de origen con beneficio.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 35): Entrenamiento y despliegue de modelos predictivos
Los datos históricos están lejos de ser «basura»: son la base de cualquier análisis de mercado sólido. En este artículo, te guiaremos paso a paso desde la recopilación de esos datos históricos hasta su uso para entrenar un modelo predictivo y, finalmente, la implementación de dicho modelo para realizar previsiones de precios en tiempo real. ¡Sigue leyendo para descubrir cómo hacerlo!
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 34): Conversión de datos brutos del mercado en modelos predictivos mediante un pipeline avanzado de ingesta
¿Alguna vez te has perdido un repunte repentino del mercado o te ha pillado desprevenido cuando ocurrió uno? La mejor manera de anticiparse a los eventos en tiempo real es aprender de los patrones históricos. Con el objetivo de entrenar un modelo de aprendizaje automático, este artículo comienza mostrándole cómo crear un script en MetaTrader 5 que procese datos históricos y los envíe a Python para su almacenamiento, sentando así las bases de su sistema de detección de picos. Sigue leyendo para ver cada paso en acción.
De novato a experto: EA de informes — Configuración del flujo de trabajo
Los brókeres suelen proporcionar informes de cuentas de trading a intervalos regulares, según un calendario predefinido. Estas empresas, a través de sus tecnologías API, tienen acceso a la actividad de su cuenta y al historial de operaciones, lo que les permite generar informes de rendimiento en su nombre. Del mismo modo, la terminal MetaTrader 5 almacena registros detallados de su actividad de trading, que pueden aprovecharse mediante MQL5 para crear informes totalmente personalizados y definir métodos personalizados de envío.
Características del Wizard MQL5 que debe conocer (Parte 76): Uso de los patrones del Awesome Oscillator y los canales Envelopes con aprendizaje supervisado
Damos continuidad a nuestro último artículo, en el que presentamos el binomio de indicadores formado por el Awesome Oscillator y el canal de envolvente Envelopes, analizando cómo se podría mejorar esta combinación mediante el aprendizaje supervisado. El Awesome Oscillator y las envolventes constituyen una combinación complementaria para detectar tendencias e identificar niveles de soporte y resistencia. Nuestro enfoque de aprendizaje supervisado consiste en una red neuronal convolucional (CNN) que utiliza el núcleo de producto escalar con atención entre tiempos (Cross-Time-Attention) para ajustar el tamaño de sus núcleos y canales. Como es habitual, 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.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 32): Motor de reconocimiento de velas japonesas en Python (II) — Detección con TA-Lib
En este artículo, hemos pasado de codificar manualmente la detección de patrones de velas japonesas en Python a aprovechar TA-Lib, una biblioteca que reconoce más de sesenta patrones distintos. Estas formaciones ofrecen información valiosa sobre posibles cambios de tendencia en el mercado y continuaciones de tendencias. Sigue leyendo para obtener más información.
Algoritmo de optimización basado en los sueños — Dream Optimization Algorithm (DOA)
Un algoritmo de optimización poblacional inspirado en un fenómeno controvertido y poco estudiado: el fenómeno de los sueños humanos. Grupos de agentes con distintas «memorias», modulación cosenoidal del movimiento y una distribución de fases inusual de 99/1: descubra cómo estas características influyen en la eficacia de la optimización de sus estrategias de trading.
Algoritmo del duelista — Duelist Algorithm
¿Y si nuestras estrategias de trading pudieran aprender unas de otras, como auténticos luchadores? Duelist Algorithm es un nuevo método de optimización en el que los parámetros de los sistemas de trading se enfrentan literalmente en duelos por el derecho a ser considerados los mejores.
Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 02): Desarrollo de la biblioteca REQUESTS inspirada en requests de Python
En este artículo, implementamos un un módulo similar a requests, como el que ofrece Python para facilitar el envío y la recepción de solicitudes web en MetaTrader 5 utilizando MQL5.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 31): Motor de reconocimiento de velas japonesas en Python (I) — Detección manual
Los patrones de velas japonesas son fundamentales para el trading basado en la evolución de los precios, ya que ofrecen información valiosa sobre posibles reversiones o continuaciones del mercado. Imagina una herramienta fiable que supervise continuamente cada nueva barra de precios, identifique formaciones clave como los patrones envolvente, martillo, doji y estrella, y te avise de inmediato cuando detecte una oportunidad de negociación significativa. Esta es precisamente la funcionalidad que hemos desarrollado. Tanto si eres nuevo en el mundo del trading como si eres un profesional con experiencia, este sistema ofrece alertas en tiempo real sobre patrones de velas japonesas, lo que te permite centrarte en ejecutar operaciones con mayor confianza y eficiencia. Sigue leyendo para descubrir cómo funciona y cómo puede mejorar tu estrategia de trading.
Algoritmo del átomo artificial — Artificial Atom Algorithm (A3)
Implementación del algoritmo A3 en MQL5: un método metaheurístico de optimización inspirado en los procesos químicos. Con solo dos parámetros configurables, la compacidad y una población reducida proporcionan una alta velocidad de funcionamiento con una calidad suficiente de las soluciones.
Optimización por comunidad de científicos — Community of Scientist Optimization (CoSO): Práctica
Continuación del tema de la optimización mediante una comunidad de científicos. CoSO no debe considerarse una solución lista para usar, sino una plataforma de investigación prometedora. Con los ajustes adecuados, CoSO podría encontrar su nicho en problemas en los que la adaptabilidad y la robustez ante los cambios son importantes, y en los que el tiempo de cálculo no es un factor crítico.
Implementación de módulos prácticos de otros lenguajes en MQL5 (Parte 01): Desarrollo de una biblioteca SQLite3 inspirada en Python
El módulo sqlite3 de Python ofrece una forma sencilla de trabajar con bases de datos SQLite; es rápido y práctico. En este artículo, vamos a crear un módulo similar a partir de las funciones integradas de MQL5 para trabajar con bases de datos, con el fin de facilitar el trabajo con bases de datos SQLite3 en MQL5, al igual que en Python.
Características del Wizard MQL5 que debe conocer (Parte 72): Uso de los patrones del MACD y del OBV con aprendizaje supervisado
Damos continuidad a nuestro último artículo, en el que presentamos el par de indicadores formado por el MACD y el OBV, analizando cómo se podría mejorar esta combinación mediante el aprendizaje automático. MACD y OBV forman un emparejamiento complementario en cuanto a tendencia y volumen. Nuestro enfoque de aprendizaje automático utiliza una red neuronal convolucional que emplea un kernel para dimensionar sus núcleos y canales, al tiempo que ajusta las previsiones de este par de indicadores. Como siempre, esto se realiza en un archivo de clase de señal personalizado que funciona con el asistente MQL5 para ensamblar un Asesor Experto.
Aprendizaje automático y Data Science (Parte 45): Predicción de series temporales en Forex con el modelo Prophet de Facebook
El modelo «Prophet», desarrollado por Facebook, es una herramienta robusta de previsión de series temporales diseñada para captar tendencias, la estacionalidad y los efectos de días festivos con un ajuste manual mínimo. Se ha generalizado su uso para la previsión de la demanda y la planificación empresarial. En este artículo, analizamos la eficacia de Prophet a la hora de predecir la volatilidad de los instrumentos del mercado forex, y mostramos cómo puede aplicarse más allá de los casos de uso empresariales tradicionales.
Motor de decision Multi-IA para MQL5 (Parte 5): backtest del motor en el simulador de estrategias y comparacion contra reglas simples.
En esta última parte se pone a prueba el motor multi-IA de la serie. Se graban los votos reales de los modelos barra por barra en XAUUSD H1 y se reproducen en el Simulador de estrategias, para compararlo con reglas simples bajo el mismo riesgo y los mismos costos, dentro y fuera de muestra. Se reportan los resultados y su causa, y se incluye un arnés de grabación y reproducción y una prueba de diagnóstico aplicable a cualquier asesor con IA.
Simulación de mercado: La unión hace la fuerza (II)
Hasta ahora, la aplicación desarrollada a lo largo de esta serie de artículos se centraba exclusivamente en simular la parte gráfica. Sin embargo, para disponer de un sistema más completo, en el que podamos probar un Asesor Experto dentro del servicio de repetición/simulador, también debemos simular el servidor de trading. Observarás que esta simulación incluirá únicamente los elementos imprescindibles. No obstante, tú, estimado lector, podrás completar las partes que falten. Como esos componentes adicionales no influyen en lo que pretendo mostrar, ya contamos con más que suficiente para desarrollar lo que hemos planificado.
Simulación de mercado: La unión hace la fuerza (I)
Estamos llegando a la recta final. El desarrollo del sistema de repetición/simulador está casi terminado. Es cierto que aún tendremos que completar algunas cosas, pero, en comparación con todo lo que ya hemos hecho, implementar lo que falta será sencillo. Sin embargo, todo lo que se mostrará en este artículo deberá asimilarse y comprenderse adecuadamente. Quiero que tú, estimado lector y entusiasta...
Simulación de mercado: Position View (XX)
En este artículo veremos cómo modificar el código del indicador de posición para crear una especie de sombra que nos permita visualizar dónde se encuentra actualmente el precio que continúa vigente en el servidor de trading. Este mecanismo pretende facilitar la planificación de operaciones en las que desplazamos las líneas de stop loss o take profit. Añadir esta función, es decir, las sombras de precio, puede parecer extremadamente complejo. En este artículo mostraré que puedes implementarla de una forma muy sencilla y práctica.
De novato a experto: Trayectorias predictivas del precio
Los niveles de Fibonacci proporcionan un marco práctico que los mercados suelen respetar, destacando las zonas de precios donde es más probable que se produzcan reacciones. En este artículo, desarrollamos un asesor experto que aplica la lógica de retroceso de Fibonacci para anticipar posibles movimientos futuros y operar con retrocesos mediante órdenes pendientes. En este artículo recorremos todo el flujo de trabajo, desde la detección de oscilaciones hasta la representación gráfica de niveles, los controles de riesgo y la ejecución.
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.
De novato a experto: Trading con filtrado temporal
El hecho de que los ticks lleguen constantemente no significa que cada momento sea una oportunidad para operar. Hoy, realizaremos un estudio en profundidad del arte de la sincronización, centrándonos en el desarrollo de un algoritmo de aislamiento temporal para ayudar a los operadores a identificar y operar dentro de sus ventanas de mercado más favorables. Cultivar esta disciplina permite a los traders minoristas sincronizarse más estrechamente con el timing institucional, donde la precisión y la paciencia suelen ser clave para el éxito. Acompáñanos en esta discusión mientras exploramos la ciencia del timing y el trading selectivo a través de las capacidades analíticas de MQL5.
Simulación de mercado: Position View (XVII)
En el artículo anterior hicimos que el indicador mostrara el resultado financiero. Sin embargo, no a todos les gusta utilizar este modo de visualización. El motivo puede variar de un operador a otro, aunque en algunos casos me parece bastante razonable y justificable. Adaptar el código para ofrecer esta posibilidad no es, ni mucho menos, una de las tareas más complejas. En realidad, se trata de algo bastante sencillo. En este artículo veremos cómo hacerlo.
Simulación de mercado: Position View (XVI)
En este artículo realizaremos las modificaciones necesarias para que el indicador de posición muestre un resultado financiero. De este modo, el operador podrá hacerse una idea del resultado financiero que se obtiene con una posición abierta. Además, compartiré contigo algo que muchos desconocen, incluso quienes llevan mucho tiempo utilizando MQL5: cómo utilizar variables estáticas para compartir memoria y evitar declarar una variable global en el código principal.