Trading Algorítmico MQL5
23.4K subscribers
703 photos
703 links
Las mejores publicaciones de la mayor comunidad de tráders algorítmicos.

Suscríbase para estar al día con las tecnologías más avanzadas y el desarrollo de programas de trading.
Download Telegram
En el desarrollo de estrategias de trading basadas en eventos noticiosos se ha identificado un cuello de botella en la velocidad de backtesting debido al acceso frecuente a la base de datos en memoria. La solución propuesta mejora la eficiencia minimizando el acceso a una vez al día y agrupando eventos por hora. Esto se logrará mediante una matriz que almacena información específica por hora, que se consultará con una instrucción switch según la hora actual. Este enfoque optimiza el tiempo de ejecución, especialmente en días con múltiples acontecimientos noticiosos, permitiendo ajustes precisos en las estrategias de negociación con mejor uso de recursos del sistema.

👉 Léelo | Documentación | @mql5es
Descubre cómo el algoritmo Atomic Orbital Search (AOS), inspirado en modelos atómicos, ha sido mejorado en su versión AOSm para resolver problemas de optimización complejos. Este avance implica revisar la gestión de la población como moléculas y la distribución de electrones que representan soluciones potenciales. Al optimizar el algoritmo, se han simplificado componentes aleatorios, lo que mejora la velocidad de ejecución sin comprometer la eficacia. La implementación de una distribución normal para la posición de electrones en cada iteración refina aún más su capacidad de convergencia. En pruebas recientes, AOSm muestra un rendimiento mejorado, ocupando un lugar destacado en eficacia. Ideal para desarrolladores y traders que buscan algoritmos más potentes y eficientes en optimización matemática.

👉 Léelo | CodeBase | @mql5es
La previsión de series temporales multidimensionales es un reto clásico del aprendizaje automático, crucial en aplicaciones reales como datos médicos, consumo energético y finanzas. Aunque los Transformadores han avanzado en PNL y visión por computadora, su aplicación en series temporales enfrenta inestabilidades sin grandes conjuntos de datos. El artículo "SAMformer" estudia cómo mitigar estas limitaciones.

SAMformer propone una arquitectura más sencilla que mejora la estabilidad y rendimiento del Transformer en previsión temporal, usando minimización consciente de la nitidez y atención canalizada. La implementación en MQL5 incluye estrategias como truncamiento del codificador, atención canalizada, normalización reversible y optimización con SAM, reduciendo la complejidad y mejorando la eficacia del modelo.

👉 Léelo | Manual sobre redes neuronales | @mql5es
El script de exportación del historial de transacciones está diseñado para simplificar el manejo de datos financieros. Recolecta automáticamente los datos de todas las transacciones realizadas en el último año para el instrumento actual. Además, soporta tanto criptomonedas como divisas, ajustando la comisión según el tipo de instrumento. El formateo de los números asegura que los datos sean legibles, transformando puntos en comas donde sea necesario. Los totales de comisión, beneficio/pérdida y el número de operaciones se añaden al final del archivo.

Para utilizarlo, cargue el historial de operaciones en su terminal e instale el script en el gráfico del instrumento deseado. Al ejecutarlo, generará un archivo CSV en la carpeta MQL5/Files con el formato trades_symbol_date_time.csv. Este archivo puede abrirse en Excel u otros editores para análisis detallado.

El script es fácil de usar...

👉 Léelo | Manual sobre redes neuronales | @mql5es
Para implementar un sistema de análisis de ondas con un gráfico en zigzag, inicia definiendo dos buffers de datos para almacenar los máximos y mínimos. Configura parámetros de entrada y un conjunto de variables del sistema que se reinician con cada recalculación del indicador. Utiliza un array "upWaves" para los máximos y "dwWaves" para los mínimos.

Es crucial establecer variables para el tipo, inicio, fin y distancia en barras de la última onda. Implementa un ATR móvil antes de calcular otras métricas, asegurando que has recogido suficientes barras para obtener un promedio válido. Gestiona el ATR continuando la suma hasta alcanzar el intervalo deseado, luego ajusta la media.

Considera cómo iniciar una secuencia cuando no existen ondas previas: la primera onda puede iniciar cuando el ATR esté lleno y se forme un nuevo máximo o mínimo. Al actualizar ondas alcistas, desplaza el zigzag...

👉 Léelo | Manual sobre redes neuronales | @mql5es
Descubre cómo los "Patrones de Diseño" pueden optimizar la programación en MQL5, abordando problemas recurrentes sin repetir esfuerzos. Estos patrones apoyan la programación orientada a objetos DRY (Don't Repeat Yourself) y son esenciales para crear aplicaciones eficientes. Con ejemplos prácticos, explora patrones de creación como Abstract Factory, Builder y Singleton para incrementar productividad y flexibilidad al diseñar algoritmos de trading. Aprende sobre su impacto en la reutilización de código y la facilidad de prueba de programas. Una valiosa guía para desarrolladores de MetaTrader 5 que buscan mejorar sus habilidades en algoritmos y estructuras ORIENTADAS a objetos.

👉 Léelo | Freelance | @mql5es
El indicador Zigzag que evalúa puntos de oscilación utiliza un parámetro de tamaño de paso que controla la dirección de la oscilación al cambiar el precio. Se presenta la opción de ajustar la sensibilidad del indicador mediante una única entrada de "escala", que regula cómo responde ante variaciones de precio. El tamaño de paso establece el desplazamiento mínimo que debe suceder para invertir la onda actual, determinando así el umbral de movimiento necesario para cambiar la oscilación. A diferencia del Zigzag tradicional que aplica una "profundidad" mínima de barras, este indicador tiene su principal enfoque en el movimiento directo del precio y resulta útil para el análisis de swing. La escala predeterminada varía según el instrumento financiero, comenzando con valores como 3000 para XAUUSD y 25000 para BTCUSD, permitiendo ajustes según el contexto del mercado.

👉 Léelo | Cotizaciones | @mql5es
Integrar la mensajería de Telegram en sistemas automatizados facilita la emisión de alertas críticas y la comunicación en tiempo real. Un módulo dedicado permite enviar mensajes directamente a través de la API de Telegram Bot. La función clave, SendMessageToTelegram, requiere un mensaje, un ID de chat y un token de bot para construir y enviar una carga JSON mediante una petición HTTP POST.

La función WebRequest maneja estas peticiones con un tiempo de espera estándar de 5000 ms. La respuesta exitosa se confirma con un código HTTP 200, mientras que cualquier error se detalla para facilitar la solución de problemas.

En un Asesor Experto (EA), la implementación sigue pasos específicos: incluir el módulo Telegram, declarar credenciales del bot e ID de chat, y configurar el envío de mensajes. El ejemplo práctico ilustra un mensaje de saludo enviado al iniciar el EA, destacando la importa...

👉 Léelo | Calendario | @mql5es
Optimizar estrategias automatizadas requiere atención al ajuste o sobreajuste, conocido como overfitting. El método de Validación cruzada simétrica combinatoria (CSCV) ayuda a evaluar este fenómeno. Implementado en MQL5, CSCV permite identificar configuraciones óptimas de parámetros para estrategias. El proceso incluye pruebas con múltiples combinaciones de parámetros, mediante la creación de conjuntos In-Sample-Set y Out-Of-Sample-Set. La métrica de rendimiento calcula la Probabilidad de Sobreajuste del Backtest (PBO) como una fracción de las pruebas totales. CSCV.mqh encapsula el algoritmo, permitiendo retornar el valor de PBO. La implementación considera la asignación de memoria, particiones de datos y evaluaciones de rendimiento.

👉 Léelo | VPS | @mql5es
El indicador DailyHighLow es una herramienta técnica eficiente diseñada para definir niveles de precios máximos y mínimos en gráficos. Permite personalizar el marco temporal, asegurando que no sea inferior al actual para mantener la precisión. Sus funciones abarcan tres opciones de cálculo de precios: Bajo/Alto, Abierto/Cerrado y Cierre, facilitando un análisis más completo. Incluye la opción para mostrar datos del periodo anterior, útil para estudios históricos. La visualización es clara, utilizando líneas plateadas de un solo grosor.

El funcionamiento implica la inicialización de buffers para almacenar y visualizar niveles de precios. Utiliza iBarShift para alinear datos de precios con el marco temporal y iHigh/e iLow o iHighest/e iLowest para calcular precios máximos y mínimos. El rendimiento está optimizado al limitar cálculos a barras nuevas o actualizadas.

Resulta especialment...

👉 Léelo | Señales | @mql5es
El indicador Time To Close MT5 TimeToClose-v1.01 ofrece un enfoque efectivo para la gestión del tiempo en gráficos, presentando una cuenta atrás para el cierre de la vela en tiempo real. Su diseño incorpora una adaptación dinámica del color, ajustándose automáticamente según el tema del gráfico, ya sea por el borde o cuerpo de la vela, dependiendo de la dirección (alcista, bajista, doji). La funcionalidad de optimización para el Probador de Estrategias desactiva la renderización en back-tests no visuales, protegiendo así los recursos del sistema.

El soporte multi-timeframe es otra característica esencial, ajustando el formato de visualización automáticamente para diferentes marcos temporales, desde un minuto hasta un mes. La visualización del indicador es altamente personalizable, permitiendo variaciones en tamaño de fuente, posicionamiento del texto y la opción de mostrar fecha y ho...

👉 Léelo | Manual sobre redes neuronales | @mql5es
El aprendizaje por refuerzo (RL) es un enfoque poderoso para mejorar las estrategias de trading, adaptándose a las condiciones cambiantes del mercado. En este artículo, se explora el algoritmo SARSA, destacando su aplicación en la creación de señales personalizadas para asesores expertos. SARSA, al seguir una política interna, permite automatizar decisiones y gestionar riesgos al ajustar acciones con recompensas bajas para minimizar la exposición a operaciones volátiles. Además, se compara con otros algoritmos como Q-Learning y Deep-Q-Networks, resaltando la escalabilidad de estas técnicas para entornos complejos. La implementación en MQL5 demuestra su utilidad como modelo de señal independiente, optimizando el trading algorítmico.

👉 Léelo | Freelance | @mql5es
El indicador ofrece un control detallado sobre el conteo y visualización de velas en un gráfico. Se puede definir qué semana del mes se quiere analizar con el parámetro SelectedWeek. Esto permite numerar velas de una semana específica, o de todas cuando se establece en cero.

El conteo inverso y el filtrado dinámico optimizan la presentación de datos. Cuando NumberFirstCandle está activado, el conteo inicia en la primera vela del día. Al estar desactivado, el conteo comienza desde la última vela.

El texto se ajusta dinámicamente sobre o bajo las velas, basado en su tendencia, utilizando el parámetro PriceOffsetFactor para ajustar la distancia. Los colores, fuentes y tamaños son personalizables para mejorar la apariencia visual. El rendimiento se optimiza eliminando grafías obsoletas para evitar la sobrecarga del gráfico.

Además, las funciones avanzadas de creación y limpieza de ob...

👉 Léelo | Guía de algotrading | @mql5es
La administración eficiente de múltiples estrategias en una sola cuenta es esencial para los desarrolladores. El principal desafío radica en separar el rendimiento de cada estrategia sin recurrir a métodos poco precisos. Los números mágicos proporcionan una solución al etiquetar sistemáticamente cada EA.

Este método permite un seguimiento preciso del rendimiento, facilitando decisiones críticas como detener EAs de bajo rendimiento o reasignar capital hacia estrategias más exitosas. Esto optimiza tanto el análisis como el registro.

La implementación en MT5 simplifica la gestión. Adjuntando el Script/EA, se genera una tabla mostrando cada número mágico y su desempeño asociado. Para garantizar la legibilidad, es clave ajustar el tamaño del gráfico y el tipo de letra utilizado. Modificar la frecuencia de actualizaciones también es posible ajustando el script.

👉 Léelo | Documentación | @mql5es
Los métodos HTTP son instrucciones específicas para comunicación cliente-servidor. GET solicita obtener información, mientras que POST envía datos. PUT actualiza recursos existentes y DELETE elimina. PATCH modifica parcialmente un recurso. HEAD solicita sólo encabezados. Existen opciones adicionales como CONNECT, OPTIONS y TRACE. Cada método tiene una función precisa, determinando la acción a ejecutar en la comunicación.

Los códigos de estado informan sobre el resultado de la solicitud. 1xx es informativo, 2xx indica éxito, 3xx se refiere a redirecciones, 4xx son errores del cliente, y 5xx son errores del servidor. Entender los métodos HTTP y los códigos de estado es esencial para una comunicación efectiva con APIs. Connexus busca integrar estos fundamentos para facilitar el desarrollo robusto y seguro.

👉 Léelo | Manual sobre redes neuronales | @mql5es
Ahora los usuarios de Huawei con HarmonyOS NEXT pueden usar MetaTrader 5, 4 y más aplicaciones de MetaQuotes gracias a DroiTong, una herramienta que ejecuta apps Android en este sistema. La guía de instalación es sencilla: busca DroiTong en Huawei AppGallery, descarga los APK de MetaQuotes y sigue los pasos con DroiTong para instalar. Aunque algunas funciones como las notificaciones push aún no están disponibles, las demás operan con normalidad. Para actualizar, simplemente descarga el nuevo APK y repite el proceso. Disfruta de estas aplicaciones en tu dispositivo Huawei con un entorno conocido.

👉 Léelo | Señales | @mql5es
El histograma dinámico y coloreado ofrece un análisis visual instantáneo del mercado mediante cambios automáticos de color que destacan cruces del MACD sobre la línea de señal y la línea cero, además de evidenciar la fuerza y dirección de la tendencia. Las alertas sonoras personalizables permiten recibir notificaciones en tiempo real sobre cruces clave del MACD, con configuraciones ajustables para el sonido, repeticiones y pausas entre alertas. La paleta de colores intuitiva facilita la interpretación rápida de los datos, permitiendo decisiones rápidas basadas en cruces y cambios de impulso.

Los parámetros personalizables, como los periodos de medias móviles y el precio aplicado, permiten ajustar el indicador a estrategias específicas. La interfaz es sencilla, adecuada para principiantes, con fácil ajuste de parámetros desde la ventana de propiedades. Funciona mostrando la diferencia...

👉 Léelo | Señales | @mql5es
El código del asesor experto está diseñado para escanear la vigilancia de mercado de un broker y extraer los símbolos necesarios para la descarga de todos los ticks disponibles, o ticks hasta una fecha específica. Este proceso es útil tanto para descargar el historial completo de símbolos para pruebas retrospectivas como para crear gráficos personalizados. Los terminales almacenarán en caché los ticks en la carpeta de datos, por lo que es importante asegurar suficiente espacio en el disco duro.

Para simplificar el proceso de descarga de símbolos, es necesario disponer de un gestor de descargas. La estructura CDownloadManager contiene toda la información necesaria, como el estado de la descarga, la lista de símbolos a escanear y el índice del símbolo actual en proceso. Además, se requieren funciones para leer y escribir cadenas en archivos binarios: guardar y cargar cadenas desde fich...

👉 Léelo | Calendario | @mql5es
El artículo anterior fue sobre configurar la estructura estática de un panel en MQL5. Ahora, se procederá a hacer el panel interactivo. Esto implica añadir funcionalidades a los botones que permitan ejecutar acciones al ser clicados, transformando el panel en una herramienta de interacción comercial en tiempo real.

Se automatizarán los botones creados previamente, como "Open Buy" y "Close All", para que respondan eficientemente a las entradas del usuario. Además, se implementará el controlador de eventos OnTick y OnChartEvent para manejar interacciones.

Finalmente, se añadirá una instancia de clase para gestionar operaciones bursátiles, utilizando la clase CTrade para facilitar esta tarea. El objetivo es convertir el panel en una solución práctica para traders.

👉 Léelo | Market | @mql5es
Cuando se comienza a desarrollar un Asesor Experto (EA), es crucial definir adecuadamente las variables y matrices para asegurar su correcto funcionamiento. Al renombrar las primeras líneas de su archivo, debe asegurarse de que los nombres reflejen claramente las funciones que cumplen. Por ejemplo, puede utilizar la variable MqlRates para manejar datos de velas como open, close, high y low, ajustando el nombre según su estándar personal.

Para consultar valores específicos, como el cierre de una vela anterior, se utiliza una nomenclatura directa y clara como CANDLECLOSE(3). También es fundamental trabajar con valores como ASK y BID, que se pueden obtener a través de MqlTick o SymbolInfoDouble. Si trabaja con medias móviles o indicadores como el Average True Range (ATR), organice sus arrays de manera adecuada y asegúrese de configurar las series correctamente usando funciones como Arra...

👉 Léelo | Documentación | @mql5es
El algoritmo evalúa cada barra para determinar el periodo SMA responsable del rebote más reciente, sea ascendente o descendente. La finalidad del indicador es identificar la dinámica del mercado. Si ambas líneas, superior e inferior, contienen datos, sugiere un posible comportamiento de rango limitado. Sin embargo, es un proceso intensivo. Ampliar los rangos de los periodos MA o cambiar a métodos MA más complejos puede provocar retrasos en la carga del indicador. Sin embargo, una vez cargado, la actualización se limitará a la barra más reciente. La eficiencia es clave para evitar sobrecargas en el análisis del mercado.

👉 Léelo | Freelance | @mql5es