Del básico al intermedio: Plantilla y Typename (I)
En este artículo, comenzaremos a tratar uno de los conceptos que muchos principiantes evitan. Esto se debe a que las plantillas no son un tema sencillo de entender y utilizar, ya que muchos no comprenden el principio básico detrás de lo que sería una plantilla: la sobrecarga de funciones y procedimientos.
Redes neuronales en el trading: Estudio de la estructura local de datos
La identificación y preservación eficaz de la estructura local de los datos del mercado en condiciones de ruido es una tarea importante en el trading. El uso del mecanismo de Self-Attention ha ofrecido buenos resultados en el procesamiento de estos datos, pero el método clásico no tiene en cuenta las características locales de la estructura original. En este artículo, le propongo familiarizarse con un algoritmo que considera estas dependencias estructurales.
Operar con el Calendario Económico MQL5 (Parte 6): Automatizar la entrada de operaciones con análisis de noticias y temporizadores de cuenta regresiva
En este artículo, implementamos la entrada automática de operaciones utilizando el Calendario Económico MQL5, aplicando filtros definidos por el usuario y desfases temporales para identificar eventos noticiosos que cumplan los requisitos. Comparamos los pronósticos y los valores anteriores para determinar si abrir una operación de COMPRA o VENTA. Los temporizadores de cuenta regresiva dinámicos muestran el tiempo restante hasta la publicación de las noticias y se reinician automáticamente después de una operación.
Redes neuronales en el trading: Actor—Director—Crítico (Actor—Director—Critic)
Hoy le presentamos el framework Actor-Director-Critic, que combina el aprendizaje jerárquico y la arquitectura multicomponente para crear estrategias comerciales adaptativas. En este artículo, detallaremos cómo el uso del Director para clasificar las acciones del Actor ayuda a optimizar eficazmente las decisiones comerciales y a aumentar la solidez de los modelos en el entorno de los mercados financieros.
Análisis de múltiples símbolos con Python y MQL5 (Parte II): Análisis de componentes principales para la optimización de carteras
La gestión del riesgo de las cuentas de trading es un reto para todos los operadores. ¿Cómo podemos desarrollar aplicaciones de trading que aprendan dinámicamente los modos de riesgo alto, medio y bajo para diversos símbolos en MetaTrader 5? Al utilizar el Análisis de Componentes Principales (Principal Components Analysis, PCA), obtenemos un mejor control sobre la variación de la cartera. Demostraré cómo crear aplicaciones que aprendan estos tres modos de riesgo a partir de datos de mercado obtenidos de MetaTrader 5.
Redes neuronales en el trading: Transformer parámetro-eficiente con atención segmentada (Final)
En artículos anteriores, revisamos los aspectos teóricos del framework PSformer, que incluye dos importantes innovaciones en la arquitectura del Transformer clásico: el mecanismo de compartición de parámetros (PS) y la atención a los segmentos espaciotemporales (SegAtt). En este artículo, continuaremos el trabajo sobre la implementación de los enfoques propuestos mediante MQL5.
Ingeniería de características con Python y MQL5 (Parte III): El ángulo del precio (2) Coordenadas polares
En este artículo, hacemos nuestro segundo intento de convertir los cambios en los niveles de precios de cualquier mercado en un cambio correspondiente en el ángulo. En esta ocasión, seleccionamos un enfoque matemáticamente más sofisticado que el que elegimos en nuestro primer intento, y los resultados obtenidos sugieren que nuestro cambio de enfoque puede haber sido la decisión correcta. Únase a nosotros hoy para debatir cómo podemos utilizar las coordenadas polares para calcular el ángulo formado por los cambios en los niveles de precios, de una manera significativa, independientemente del mercado que esté analizando.
Del básico al intermedio: Objetos (II)
En este artículo, veremos cómo controlar, de forma simple, vía código, algunas propiedades de objetos. Veremos cómo podemos colocar más de un objeto en un mismo gráfico, usando, para esto, una aplicación. Y, además, empezaremos a ver la importancia de definir un nombre corto para todo y cualquier indicador que vayamos a implementar.
Gestor de riesgos profesional remoto para Forex en Python
Hoy crearemos un gestor de riesgos profesional remoto para Forex en Python, y los desplegaremos en un servidor paso a paso. En el transcurso del artículo entenderemos cómo gestionar programáticamente los riesgos en Forex, y cómo no agotar más nuestro depósito en el mundo de las divisas.
Algoritmo de campo eléctrico artificial (AEFA) — Artificial Electric Field Algorithm (AEFA)
Este artículo presenta el algoritmo de campo eléctrico artificial (AEFA) inspirado en la ley de Coulomb de la fuerza electrostática. El algoritmo modela fenómenos eléctricos para resolver problemas de optimización complejos usando partículas cargadas y las interacciones de estas. El AEFA presenta propiedades únicas en el contexto de otros algoritmos relacionados con las leyes de la naturaleza.
Algoritmo de tiro con arco - Archery Algorithm (AA)
Este artículo detalla un algoritmo de optimización inspirado en el tiro con arco, centrado en el uso del método de la ruleta como mecanismo de selección de zonas prometedoras para las "flechas". Este método nos permite evaluar la calidad de las soluciones y seleccionar las más prometedoras para seguir estudiándolas.
Redes neuronales en el trading: Segmentación guiada
Hoy proponemos al lector familiarizarse con el método de análisis multimodal complejo de interacción y comprensión de características.
Redes generativas antagónicas (GAN) para datos sintéticos en modelos financieros (Parte 2): Creación de símbolos sintéticos para pruebas
En este artículo creamos un símbolo sintético utilizando una red generativa adversaria (Generative Adversarial Networks, GAN), lo que implica generar datos financieros realistas que imitan el comportamiento de instrumentos de mercado reales, como el EURUSD. El modelo GAN aprende patrones y volatilidad a partir de datos históricos del mercado y crea datos sintéticos de precios con características similares.
Uso de reglas de asociación en el análisis de datos de Forex
¿Cómo aplicar las reglas predictivas del análisis minorista de supermercados al mercado Forex real? ¿Cómo se relacionan las compras de galletas, leche y pan con las transacciones bursátiles? El artículo analiza un enfoque innovador del trading algorítmico basado en el uso de reglas de asociación.
Optimización por herencia sanguínea — Blood inheritance optimization (BIO)
Les presento mi nuevo algoritmo basado en la población, el BIO (Blood Inheritance Optimization), inspirado en el sistema de herencia del grupo sanguíneo humano. En este algoritmo, cada solución tiene un "grupo sanguíneo" distinto que determina su forma de evolucionar. Al igual que en la naturaleza, el grupo sanguíneo de un niño se hereda según reglas específicas, en el BIO las nuevas soluciones obtienen sus características mediante un sistema de herencia y mutaciones.
Del básico al intermedio: Array (III)
En este artículo, veremos cómo trabajar con arrays en MQL5, hasta el punto de transferir información entre funciones y procedimientos mediante arrays. El objetivo es prepararte para lo que se verá y explicará en artículos futuros. No obstante, es extremadamente recomendable que estudies muy bien lo que se mostrará en este artículo.
Redes neuronales en el trading: Detección de anomalías en el dominio de la frecuencia (CATCH)
El framework CATCH combina la transformada de Fourier y el parcheo de frecuencias para detectar con precisión anomalías del mercado inaccesibles a los métodos tradicionales. En el presente artículo, analizaremos cómo este enfoque revela patrones ocultos en los datos financieros.
Algoritmo de optimización de sociedad anárquica (Anarchic Society Optimization, ASO)
En este artículo, nos familiarizaremos con el algoritmo de optimización de sociedad anárquica (Anarchic Society Optimization, ASO) y discutiremos cómo un algoritmo basado en el comportamiento irracional y aventurero de los participantes en una sociedad anárquica (un sistema anómalo de interacción social libre de poder centralizado y varios tipos de jerarquías) es capaz de explorar el espacio de soluciones y evitar las trampas del óptimo local. El artículo presenta una estructura ASO unificada aplicable tanto a problemas continuos como discretos.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 13): Herramienta RSI Sentinel
La evolución de los precios puede analizarse eficazmente identificando divergencias, con indicadores técnicos como el RSI que proporcionan señales de confirmación cruciales. En el siguiente artículo, explicamos cómo el análisis automatizado de divergencias del RSI puede identificar continuaciones y reversiones de tendencias, ofreciendo así información valiosa sobre el sentimiento del mercado.
Simulación de mercado (Parte 05): Creación de la clase C_Orders (II)
En este artículo, explicaré cómo Chart Trade, junto con el asesor experto, gestionará la solicitud de cierre de todas las posiciones abiertas del usuario. Parece sencillo, pero hay algunos factores que complican la situación y que es necesario saber gestionar.
Kit de herramientas de negociación MQL5 (Parte 7): Ampliación de la libreria EX5 de gestión del historial con las funciones de última orden pendiente cancelada
Aprenda a completar la creación del módulo final en la librería History Manager EX5, centrándose en las funciones responsables de gestionar la orden pendiente cancelada más recientemente. Esto le proporcionará las herramientas necesarias para recuperar y almacenar de manera eficiente los detalles clave relacionados con las órdenes pendientes canceladas con MQL5.
Automatización de estrategias de trading en MQL5 (Parte 7): Creación de un EA para el comercio en cuadrícula con escalado dinámico de lotes
En este artículo, creamos un asesor experto de trading con cuadrículas en MQL5 que utiliza el escalado dinámico de lotes. Cubrimos el diseño de la estrategia, la implementación del código y el proceso de backtesting. Por último, compartimos conocimientos clave y mejores prácticas para optimizar el sistema de comercio automatizado.
Redes neuronales en el trading: Detección de objetos con reconocimiento de escena (HyperDet3D)
Le proponemos que conozca un nuevo enfoque de la detección de objetos mediante hiper-redes: una hiper-red de generación de coeficientes de peso para el modelo básico que permite tener en cuenta las peculiaridades del estado actual del mercado. Este enfoque mejora la precisión de las previsiones adaptando el modelo a las distintas condiciones comerciales.
Dominando los registros (Parte 5): Optimizar el controlador con caché y rotación
Este artículo mejora la biblioteca de registro agregando formateadores en los controladores, la clase CIntervalWatcher para administrar ciclos de ejecución, optimización con almacenamiento en caché y rotación de archivos, pruebas de rendimiento y ejemplos prácticos. Con estas mejoras, aseguramos un sistema de registro eficiente, escalable y adaptable a diferentes escenarios de desarrollo.
Cliente en Connexus (Parte 7): Añadir la capa de cliente
En este artículo continuamos con el desarrollo de la biblioteca Connexus. En este capítulo creamos la clase CHttpClient, responsable de enviar una solicitud y recibir un orden. También cubrimos el concepto de simulaciones, dejando la biblioteca desacoplada de la función WebRequest, lo que permite una mayor flexibilidad para los usuarios.
Simulación de mercado (Parte 15): Sockets (IX)
En este artículo, explicaré una de las posibles soluciones a lo que he estado intentando mostrar. Es decir, cómo permitir que un usuario de Excel realice una acción en MetaTrader 5 sin enviar órdenes ni abrir o cerrar una posición. La idea es que el usuario utilice Excel para realizar un análisis fundamental de algún símbolo. Y que, usando únicamente Excel, pueda indicar a un Asesor Experto que se esté ejecutando en MetaTrader 5 que debe abrir o cerrar una posición determinada.
Métodos de ensamble para mejorar predicciones numéricas en MQL5
En este artículo presentamos la implementación de varios métodos de aprendizaje por ensamble en MQL5 y examinamos su efectividad en distintos escenarios.
Asesor de autoaprendizaje con red neuronal basada en matriz de estados
Asesor de autoaprendizaje con red neuronal basada en matriz de estados. Hoy combinaremos cadenas de Márkov con una red neuronal multicapa MLP, escrita en la biblioteca ALGLIB MQL5. ¿Cómo podemos combinar las cadenas de Márkov y las redes neuronales para realizar previsiones en Forex?
Redes neuronales en el trading: Modelo Universal de Generación de Trayectorias (UniTraj)
La comprensión del comportamiento de los agentes es importante en distintos ámbitos, pero la mayoría de los métodos se centran en una única tarea (comprensión, eliminación del ruido, predicción), lo cual reduce su eficacia en escenarios del mundo real. En este artículo, propongo al lector introducir un modelo capaz de adaptarse a diferentes tareas.
Redes neuronales en el trading: Modelo adaptativo multiagente (MASA)
Hoy les propongo familiarizarse con el MASA, un framework adaptativo multiagente que combina el aprendizaje por refuerzo y las estrategias adaptativas para ofrecer un equilibrio armonioso entre la rentabilidad y la gestión del riesgo en condiciones de mercado turbulentas.
Creación de un Panel de administración de operaciones en MQL5 (Parte IX): Organización del código (II): Modularización
En este debate, damos un paso más allá al desglosar nuestro programa MQL5 en módulos más pequeños y manejables. Estos componentes modulares se integrarán posteriormente en el programa principal, mejorando su organización y facilidad de mantenimiento. Este enfoque simplifica la estructura de nuestro programa principal y permite reutilizar los componentes individuales en otros asesores expertos (EA) y desarrollos de indicadores. Al adoptar este diseño modular, creamos una base sólida para futuras mejoras, lo que beneficia tanto a nuestro proyecto como a la comunidad de desarrolladores en general.
Métodos de discretización de los movimientos de precios en Python
Hoy analizaremos varios métodos de discretización de precios en Python + MQL5. En este artículo compartiré mi experiencia práctica en el desarrollo de una biblioteca Python que implementa toda una gama de enfoques para la formación de barras: desde las clásicas Volume y Range bars hasta métodos más exóticos como Renko y Kagi, velas de ruptura de tres líneas, barras de Rango; ¿cuáles son sus estadísticas, de qué otra forma se pueden representar los precios de forma discreta?
Desarrollo de un sistema de repetición (Parte 67): Refinando el indicador de control
En este artículo, mostraré lo que un poco de refinamiento en el código es capaz de lograr. Dicho refinamiento tiene como objetivo simplificar nuestro código, hacer un mayor uso de las llamadas a la biblioteca de MQL5 y, sobre todo, conseguir que sea mucho más estable, seguro y fácil de usar en otros códigos que desarrollemos en el futuro. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y estudio de los conceptos mostrados.
Características del Wizard MQL5 que debe conocer (Parte 28): Revisión de las GAN con una introducción a las tasas de aprendizaje
La Tasa de Aprendizaje, es un tamaño de paso hacia un objetivo de entrenamiento en muchos procesos de entrenamiento de algoritmos de aprendizaje automático. Examinamos el impacto que sus múltiples horarios y formatos pueden tener en el rendimiento de una Red Generativa Adversarial, un tipo de red neuronal que ya habíamos examinado en un artículo anterior.
Del básico al intermedio: Arrays y cadenas (II)
En este artículo, demostraré que, aunque aún estamos en una fase inicial y muy básica, ya podemos implementar alguna aplicación interesante. En este caso, crearemos un generador de contraseñas bastante sencillo. Así podremos aplicar algunos de los conceptos explicados hasta ahora. Además, mostraré cómo se pueden desarrollar soluciones para algunos problemas específicos.
Dominando los registros (Parte 3): Exploración de controladores para guardar registros
En este artículo, exploraremos el concepto de controladores en la librería de registro, comprenderemos cómo funcionan y crearemos tres implementaciones iniciales: Console, Database y File. Cubriremos todo, desde la estructura básica de los controladores hasta las pruebas prácticas, preparando el terreno para su plena funcionalidad en futuros artículos.
Creación de un indicador canal de Keltner con gráficos personalizados en Canvas en MQL5
En este artículo, creamos un indicador del canal de Keltner con gráficos personalizados en MQL5. Detallamos la integración de medias móviles, cálculos ATR y visualización mejorada de gráficos. También cubrimos el backtesting para evaluar el rendimiento del indicador y obtener información práctica sobre el trading.
Simulación de mercado (Parte 08): Sockets (II)
¿Qué te parece si creamos algo práctico con sockets? Bien, en este artículo empezaremos a crear un minichat. Acompáñanos y descubre cómo se hace, porque será algo bastante interesante. Recuerda que el código que se mostrará aquí tiene un objetivo puramente didáctico. En realidad, no deberías utilizar este código con fines comerciales ni en una aplicación finalizada, ya que no cuenta con ningún tipo de seguridad en la transmisión de datos y es posible ver el contenido que se está transportando a través del socket.
Desarrollamos un asesor experto multidivisas (Parte 22): Inicio de la transición a la sustitución dinámica de ajustes
Si hemos empezado a automatizar la optimización periódica, también deberíamos ocuparnos de la actualización automática de los ajustes de los asesores expertos que ya están trabajando en la cuenta comercial. También deberíamos permitirle ejecutar un asesor experto en el simulador de estrategias y cambiar su configuración en una sola pasada.
Desarrollo de un sistema de repetición (Parte 63): Presionando play en el servicio (IV)
En este archivo, resolveremos por fin los problemas de simulación de los ticks en una barra de un minuto, de manera que puedan coexistir con ticks reales. De esta manera, evitaremos enfrentarnos a problemas en el futuro. El contenido expuesto aquí tiene como único objetivo la didáctica. En ningún caso debe interpretarse como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.