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...
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...
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...
👍5⚡1🔥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...
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...
👍8❤3👌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...
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...
Leer más...
👍11🔥4❤1👌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...
Leer más...
👌5👍3❤1
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...
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...
Leer más...
👍4❤1👌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...
Leer más...
👍5❤1👌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...
Leer más...
👍9❤2👌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...
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...
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...
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...
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...
Leer más...
👍6👌1
Las variables estáticas en programación pueden ser un desafío para los principiantes. Estas variables mantienen su valor en memoria incluso al salir del bloque de código. Aunque populares lenguajes como Python no las implementan de esta manera, en lenguajes como C/C++ y MQL5 son comunes y útiles.
El uso de variables estáticas es esencial para evitar los problemas asociados con las variables globales y permite un control más eficiente sobre el ciclo de vida de las variables sin perder el estado de los cálculos. Sin embargo, deben utilizarse con cuidado para evitar errores de ejecución.
Es clave entender la inicialización y uso adecuado de estas variables. No deben ser inicializadas fuera de su declaración para evitar comportamientos inesperados. Esta comprensión ayuda a prevenir errores difíciles de rastrear y soluciona problemas complejos de programación de manera eficiente.
Leer más...
El uso de variables estáticas es esencial para evitar los problemas asociados con las variables globales y permite un control más eficiente sobre el ciclo de vida de las variables sin perder el estado de los cálculos. Sin embargo, deben utilizarse con cuidado para evitar errores de ejecución.
Es clave entender la inicialización y uso adecuado de estas variables. No deben ser inicializadas fuera de su declaración para evitar comportamientos inesperados. Esta comprensión ayuda a prevenir errores difíciles de rastrear y soluciona problemas complejos de programación de manera eficiente.
Leer más...
👍7👌1
Descubre cómo la optimización de reacciones químicas (CRO) revolucionó el campo de la optimización en el desarrollo de algoritmos. Mediante el uso de principios algorítmicos inspirados en reacciones químicas elementales, este enfoque es capaz de encontrar soluciones óptimas explorando espacios complejos de búsqueda. Su metodología se basa en procesos como descomposición y síntesis de "moléculas", lo que le permite abordar problemas desafiantes y encontrar óptimos globales con eficacia. Aunque presenta características de desplazamiento molecular que podrían parecer azarosas, el CRO ofrece resultados consistentes y muestra un gran potencial en aplicaciones prácticas para desarrolladores e interesados en el trading algorítmico.
Leer más...
Leer más...
👍9⚡1👌1
Durante la transición de los Asesores Expertos (EA) de entornos simulados a cuentas reales, enfrentamos varios desafíos técnicos. La implementación de mecanismos para manejar nombres variaditos de instrumentos, reinicios y terminaciones automáticas es crucial. Debemos extraer solo los datos necesarios de una creciente base de datos externa, evitando cargar innecesariamente el EA.
Optimización compleja involucra la selección de los mejores grupos de parámetros dentro de un marco temporal específico. Esta práctica mejora la eficiencia de simulación y operación, limitando la carga de información. Para una gestión eficiente, es esencial consolidar y seleccionar cadenas de inicialización adecuadas, permitiendo un acceso simplificado en tiempo real.
La integración directa de estas cadenas en el código del EA, mediante métodos como archivos de inclusión, permite una operación autónoma sin ...
Leer más...
Optimización compleja involucra la selección de los mejores grupos de parámetros dentro de un marco temporal específico. Esta práctica mejora la eficiencia de simulación y operación, limitando la carga de información. Para una gestión eficiente, es esencial consolidar y seleccionar cadenas de inicialización adecuadas, permitiendo un acceso simplificado en tiempo real.
La integración directa de estas cadenas en el código del EA, mediante métodos como archivos de inclusión, permite una operación autónoma sin ...
Leer más...
👍6👌2🏆1
La introducción de la arquitectura Transformer en 2017 impulsó la creación de modelos de lenguaje de gran tamaño (LLMs) con notables resultados en el procesamiento del lenguaje natural. Sin embargo, el decodificador Transformer enfrenta limitaciones de memoria debido al almacenamiento de las entidades Key y Value (KV caching). A lo largo de los años, varios métodos han sido propuestos para abordar este problema, incluyendo Multi-Query Attention (MQA) y Grouped-Query Attention (GQA). En respuesta a las limitaciones existentes, el algoritmo Multi-Layer Key-Value Heads (MLKV) propone un enfoque avanzado de compartición multinivel de Key y Value, optimizando el uso de memoria sin comprometer significativamente la calidad del modelo. La implementación de MLKV en MQL5 utiliza la atención multicapas para transferir información, aprovechando la infraestructura de OpenCL. Esta integración en M...
Leer más...
Leer más...
👍8❤3🔥2👌2
La última parte de nuestra serie sobre optimización estratégica en MetaTrader 5 se centra en la automatización de la selección de estrategias comerciales individuales. Se exploran dos métodos distintos de selección basados en resultados de optimización, con un enfoque en el análisis de comportamientos en periodos futuros. Se aborda la implementación de optimización con forward testing, integrando mejoras en la base de datos para distinguir entre resultados y solucionando errores anteriores con el manejo de bases de datos. Este avance permite un análisis más eficiente y automatizado, crucial para desarrolladores interesados en fomentar estrategias robustas en un entorno de trading algorítmico.
Leer más...
Leer más...
👍7👌2❤1🔥1