Trading Algorítmico MQL5
25.5K subscribers
865 photos
865 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
Implementar métodos eficientes y optimizar código es crucial para mantener sistemas robustos y fáciles de mantener. En la clase C_DrawImage, se aborda el reto de acceder a recursos internos en lugar de externos, lo que simplifica las operaciones y mejora la sostenibilidad.

Al revisar el código de C_Controls y C_DrawImage, se destaca la importancia de estructurar adecuadamente la herencia y la gestión de recursos. Adaptar el uso de punteros para clases como C_Terminal puede aumentar la consistencia y seguridad del código.

A través de una implementación cuidadosa y el uso de bibliotecas MQL5 optimizadas, es posible mejorar la eficiencia del sistema, asegurando así una expansión segura y un mantenimiento simplificado a largo plazo.

Leer más...
👍5👌3
Descubre un enfoque innovador para mejorar la precisión de los indicadores del mouse en MetaTrader 5, revelado en un reciente artículo sobre sistemas de repetición. Un problema común en el seguimiento del tiempo restante de las barras debido a la baja liquidez se aborda con eficiencia. Al crear un nuevo método de actualización que no depende exclusivamente del evento OnCalculate, logramos que el indicador reciba señales precisas en situaciones de baja actividad. Este avance no solo optimiza el rendimiento del servicio de repetición, sino que también ofrece a los desarrolladores la capacidad de gestionar mejor el tiempo y los datos, incluso en condiciones de mercado difíciles.

Leer más...
👍81👌1
Descubre cómo aprovechar la profundidad de mercado para detectar bloques de órdenes en MetaTrader 5 con este innovador enfoque. Aprende a crear arrays dinámicos para almacenar volúmenes, y usar eventos como OnBookEvent para recopilar datos en tiempo real. Verificamos condiciones específicas de volumen para identificar desbalances significativos y estructura de velas para localizar potenciales bloques de órdenes. Exploramos la implementación detallada de buffers para visualizar y gestionar estos datos en el gráfico. Esta técnica avanzada beneficia a traders y desarrolladores interesados en mejorar sus estrategias de trading automatizado, al proporcionar una herramienta robusta y adaptada a las dinámicas del mercado.

Leer más...
👍7👌2
El artículo aborda un problema común en MetaTrader 5 al analizar grandes volúmenes de datos comerciales, donde el exceso de etiquetas en gráficos puede confundir a los traders. La solución propuesta es un mecanismo que visualiza posiciones cerradas paso a paso, mejorando la claridad y detalles de las transacciones. Funciones como la navegación eficiente y el centrado automático en posiciones destacadas optimizan el proceso. Además, se presenta un desglose técnico de la estructura de clases y datos necesaria, permitiendo a los traders gestionar con eficiencia su historial y tomar decisiones informadas. Ideal para desarrolladores e interesados en mejorar su comprensión del trading algorítmico.

Leer más...
👍4👌1
En la parte anterior, se habló sobre la implementación de un sistema de repetición/simulador y se explicó el uso de la función iSpread en el evento OnCalculate. Si no estás familiarizado con esos detalles, es recomendable leer el artículo previo.

El texto se enfoca en mejorar el archivo C_Replay.mqh, crucial para el seguimiento temporal en condiciones de baja liquidez. Se elimina un evento personalizado y se establecen condiciones para llamadas regulares a CreateBarInReplay, asegurando la actualización constante de datos.

La función principal de iSpread es proporcionar datos de spread cuando MetaTrader 5 no lo hace adecuadamente. Cambios en el código indican cómo mitigar errores relacionados con información de ticks y garantizar la funcionalidad del sistema repetidor.

Es importante notar problemas de congelación de datos en ciertas condiciones del mercado. Aunque algunos inconveni...

Leer más...
👍42👌1
Explora cómo manejar eficazmente situaciones de baja liquidez en MetaTrader 5 con un sistema de repetición. Descubre un enfoque ingenioso para notificar a los usuarios sobre subastas sin adentrarse en complejidades innecesarias. A través de innovaciones en el código, aprende a garantizar que los indicadores sean más genéricos y uniformes, independientemente del símbolo usado en un gráfico. El sistema se beneficia de una estrategia simple, identificando subastas basadas en la ausencia de transacciones por 60 segundos, ofreciendo así un balance entre funcionalidad y eficiencia para desarrolladores en busca de optimizar sus prácticas de trading algorítmico.

Leer más...
2🔥2👌2👍1
En MetaTrader 5 build 4755 se ha solucionado un error al calcular el triple swap en el simulador de estrategias, que ocurría con ciertas combinaciones de condiciones de prueba.

Además, en la nueva versión hemos realizado una serie de mejoras y correcciones menores para hacer la plataforma aún más estable.

Discutir actualización...
👍51🔥1👌1
En la sección anterior, se abordaron modificaciones necesarias para que el indicador del mouse reciba eventos de libro de órdenes durante la simulación en MetaTrader 5. Es crucial entender estos cambios para aplicar correctamente las nuevas líneas de código.

El artículo describe cómo ajustar el código en el archivo C_Replay.mqh para mejorar el manejo de mensajes y eventos. Estos cambios permiten que el indicador del mouse refleje adecuadamente eventos como subasta o tiempo restante de la barra en un entorno de simulación.

Además, se añade lógica para gestionar transiciones entre eventos de subasta y negociación, asegurando que el código se ejecute sin errores durante estos cambios.

Leer más...
👍83👌1
Al procesar series temporales, es común mantener el orden original de sus pasos, asumiendo que es el más óptimo. Sin embargo, muchos modelos no pueden explorar correctamente las relaciones entre segmentos distantes. Las redes convolucionales captan patrones en ventanas limitadas, lo que dificulta comprender patrones que abarcan periodos más largos. Los modelos Transformer dependen de varios factores para detectar dependencias a largo plazo.

El método Segment, Shuffle, Stitch (S3) aborda este problema reorganizando segmentos para optimizar la representación de las series temporales. S3 divide, mezcla y combina segmentos en una secuencia más eficiente. Integrable con varios modelos, S3 mejora la eficacia en tareas de clasificación y previsión de series temporales.

Leer más...
👍8👌2
El artículo detalla la evolución del sistema de repetición/simulación en MetaTrader 5, centrándose en mejorar la estabilidad y modularidad. Se aborda un problema crítico: el control de gráficos mediante IDs, destacando la importancia de un manejo adecuado del ID del gráfico para evitar conflictos en la interacción de objetos. La solución implica pasar este ID como un parámetro en el indicador de control, asegurando que solo el gráfico creado por el servicio se vea afectado. Además, se introduce la posibilidad de usar plantillas personalizadas sin comprometer la funcionalidad del sistema, lo que beneficia a usuarios con configuraciones gráficas predefinidas.

Leer más...
👍11🔥41👌1
La eliminación del indicador visible en MetaTrader 5 mejora el sistema de repetición al integrarlo completamente en el servicio. Este cambio aumentará la estabilidad y reducirá la carga en MetaTrader 5, haciendo el sistema más seguro y confiable. Los cambios requerirán ajustes cuidadosos en el código para eliminar el sistema de vinculación del ID del gráfico, y es crucial corregir errores durante la compilación. Aunque MetaEditor no tiene un sistema de compilación MAKE, el manejo riguroso de errores permitirá una transición fluida hacia un código más limpio y eficaz. Este enfoque garantiza que el indicador de control permanezca inaccesible al usuario.

Leer más...
👌5👍31
Exploración de la teoría del caos en los mercados financieros, desglosando conceptos como atractores, fractales y el efecto mariposa para comprender mejor la complejidad del mercado. Se destaca el uso del exponente de Lyapunov, implementado en MQL5, para medir la sensibilidad y prever variaciones de precios. Esta herramienta permite a los desarrolladores evaluar el riesgo y adaptar estrategias basadas en la volatilidad del mercado. Mediante la integración de estas teorías, los analistas y traders pueden descubrir patrones ocultos, favoreciendo un análisis más preciso y dinámico, lejos de los métodos tradicionales, mejorando la predicción y gestión de riesgos.

Leer más...
👍6👌3
En este artículo se desarrollan funciones críticas para migrar EAs de prueba a cuentas reales en MetaTrader 5. Se introduce un mecanismo para ajustar nombres de símbolos comerciales, solucionando discrepancias entre plataformas de bróker. También, se implementa un modo de "cierre" de operaciones, permitiendo finalizar transacciones en condiciones desfavorables de forma controlada. Por último, destaca la capacidad de recuperación del EA tras reinicios del sistema, asegurando continuidad operativa. Estas mejoras permiten a traders y desarrolladores optimizar y gestionar estrategias de trading algorítmico de manera más eficaz bajo condiciones reales del mercado.

Leer más...
👍41👌1
El artículo detalla el desarrollo de un sistema de repetición para MetaTrader 5, enfocado en ajustar el tiempo de los indicadores al modificar el timeframe. Se discuten retos técnicos y se presentan tres soluciones: la primera sugiere almacenar el estado de los indicadores, aunque se descartan variables globales por complejidad. La segunda propone detectar cambios de timeframe desde el servicio, aunque sin acceso directo al timeframe. La más viable combina ambos enfoques usando el buffer de datos para transmitir información del timeframe, asegurando que los indicadores se actualicen automáticamente cuando cambia, mejorando la eficiencia para desarrolladores y traders.

Leer más...
👍51👌1
Los desarrolladores de MetaTrader 5 pueden descubrir cómo enviar información no fácilmente accesible mediante un innovador uso de indicadores. Este enfoque, todavía no explorado, presenta desafíos técnicos significativos al implementarse en simuladores o sistemas de repetición. Destaca la importancia de comprender la ejecución dinámica al usar handles para acceder a los buffers de indicadores, algo crucial ya que los cambios de timeframe afectan a la validez de estos handles. Este conocimiento proporciona un marco detallado para resolver problemas comunes en la programación MQL5, asegurando una actualización precisa y eficiente de datos en tiempo real para aplicaciones avanzadas de trading algorítmico.

Leer más...
👍92👌1
En el próximo artículo, continuamos con la implementación de un script para visualizar operaciones en gráficos. Este script, iniciado en la primera parte del tema, permite seleccionar datos de una operación específica para representarlos gráficamente, facilitando el análisis retrospectivo mediante la creación de capturas de pantalla para guardar las visualizaciones.

El script opta por el método HistorySelectByPosition() en lugar del HistorySelect() predefinido, para seleccionar datos históricos de una operación individual utilizando el POSITION_IDENTIFIER del MetaTrader 5. Asegura que los símbolos sean válidos y estén disponibles en 'Observación del Mercado' para evitar errores al abrir gráficos.

La personalización del gráfico en el terminal se logra a través de funciones predefinidas como ChartApplyTemplate() para aplicar plantillas y ChartScreenShot() para capturar y ordenar las ...

Leer más...
👍8👌1
La optimización de reacciones químicas (CRO) es un método inspirado en las transformaciones químicas. Presentado por Lam y Li en 2012, utiliza principios de termodinámica para optimizar procesos. La energía en las moléculas se convierte entre potencial y cinética, permitiendo al sistema encontrar estados de equilibrio con menor energía potencial. La conservación de energía es clave, permitiendo transiciones moleculares que buscan soluciones óptimas.

El CRO utiliza operadores como colisiones ineficaces, descomposición, reacción intramolecular y síntesis. Cada operación modifica la estructura molecular, explorando y explotando el espacio de búsqueda. Los operadores permiten búsquedas locales y la combinación de soluciones efectivas. Este algoritmo no es universal sin modificaciones, ya que el ajuste del tamaño de población es necesario. La población de moléculas se regula para mantener...

Leer más...
👍4👌3
El artículo aborda cómo optimizar un asesor experto multidivisa para MetaTrader 5, garantizando consistencia durante la transición a cuentas reales. Se implementan ajustes como manejo de diferentes nombres de instrumentos y reinicios efectivos tras interrupciones. Un enfoque clave es asegurar resultados uniformes del asesor en distintos brókeres, dado que las cotizaciones varían. El artículo detalla un análisis meticuloso de cómo las diferencias de volumen de tick impactan las transacciones. Se propone almacenar el historial de transacciones para reproducir las operaciones en diversas condiciones de mercado, lo que permite verificar y ajustar la estrategia comercial. Esta técnica ofrece a los desarrolladores y traders herramientas para mejorar la confiabilidad de sus sistemas automatizados.

Leer más...
👍7👌2
Explora el impacto de la teoría del caos en el trading con este enfoque detallado sobre la dimensionalidad fractal aplicado a los mercados financieros. Aprende a medir la complejidad del mercado y su aleatoriedad mediante el método de "box-counting". Descubre cómo cambios en la dimensionalidad pueden indicar transiciones de mercado y estimar volatilidades, proporcionándote herramientas para optimizar estrategias comerciales. Además, adéntrate en el análisis de recurrencia para identificar patrones ocultos en tus datos, y aplica el teorema de Takens para prever volatilidades con precisión. Integra estos conceptos en tus algoritmos usando MQL5 para una ventaja competitiva en el trading.

Leer más...
👍6👌2
Explora cómo el uso eficiente de variables, especialmente en MQL5, puede transformar tus capacidades en programación. Este artículo profundiza en la importancia de las variables como base de cualquier programa, superando el enfoque común en funciones y procedimientos. Descubre la diferencia crucial entre variables y constantes, y aprende a evitar errores comunes, como la inicialización incorrecta, que podrían comprometer tus aplicaciones. Entender estos conceptos permite a los programadores, tanto novatos como expertos, construir aplicaciones robustas y comprensibles, mejorando así su eficiencia y comprensión del código en el desarrollo de software financiero y algoritmos de trading.

Leer más...
👍6👌1