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
El artículo explora el desarrollo de un Asesor Experto (EA) en MetaTrader 5 usando una estrategia de ruptura de rango de consolidación en MQL5. La estrategia se enfoca en identificar rangos de consolidación, periodos de baja volatilidad, para luego operar en rupturas significativas. Los pasos incluyen la detección del rango, vigilancia de rupturas y ejecución de operaciones. Se define la lógica necesaria, desde la identificación de rangos hasta la gestión de operaciones y la implementación gráfica en el gráfico de precios. Además, se sugiere la optimización y pruebas retrospectivas para asegurar eficacia antes de aplicar en el trading real, proporcionando una herramienta potente para traders.
Leer más...
Leer más...
👍6👌2
Al desarrollar indicadores en MQL5 para cuentas netting, se destaca la fusión de posiciones para un mismo símbolo. Una cuenta netting permite un único volumen acumulado, diferente de las cuentas hedge que gestionan posiciones separadas para cada transacción.
Trabajar con eventos comerciales en MQL5 implica manejar entradas, salidas y reversiones de posiciones. Los indicadores en este contexto no envían órdenes, pero pueden interactuar con el historial de transacciones usando funciones como OnCalculate y OnTrade para reflejar datos importantes en gráficos.
El diseño de algoritmos para indicadores netting implica el uso de arrays dinámicos, recolectando datos de precio, volumen y tickets. Funciones como Sort ordenan estos arrays, asegurando la integridad y consistencia de las visualizaciones gráficas.
Leer más...
Trabajar con eventos comerciales en MQL5 implica manejar entradas, salidas y reversiones de posiciones. Los indicadores en este contexto no envían órdenes, pero pueden interactuar con el historial de transacciones usando funciones como OnCalculate y OnTrade para reflejar datos importantes en gráficos.
El diseño de algoritmos para indicadores netting implica el uso de arrays dinámicos, recolectando datos de precio, volumen y tickets. Funciones como Sort ordenan estos arrays, asegurando la integridad y consistencia de las visualizaciones gráficas.
Leer más...
👍6👌2🔥1
El artículo trata sobre el papel de las funciones como un tipo especial de variable en programación con MQL5, una variante de lenguaje de MetaTrader 5. Explica cómo las funciones pueden considerarse constantes, evitando las desventajas de las variables globales y mejorando la estabilidad del código. También se discute el uso de variables predefinidas, esencialmente constantes en el contexto de MQL5, y cómo utilizarlas correctamente sin intentar modificarlas directamente. Además, se ofrece una visión sobre el equilibrio que MQL5 ofrece entre la flexibilidad de C/C++ y la simplicidad de lenguajes como JavaScript y Python.
Leer más...
Leer más...
👍5❤1👌1💯1
El artículo aborda las complejidades y desafíos del manejo de tipos de datos y operadores en programación MQL5. Destaca cómo una operación simple como dividir 10 entre 3 puede rendir resultados inesperados debido a la tipificación de datos. En MQL5, al igual que en otros lenguajes tipados, el tipo de dato influye en el resultado, lo que puede llevar a errores en el código si no se comprende bien. Se explica el concepto de casting (conversión de tipos) para obtener resultados deseados al manejar operaciones aritméticas y cómo los datos se representan en bits influyen en el comportamiento de los programas, enfatizando en la importancia de una correcta elección de tipo de dato.
Leer más...
Leer más...
👍7❤2👌1💯1
Explora cómo transformar un script en un servicio en MetaTrader 5 para mejorar la experiencia de trading algorítmico. Aprende a convertir scripts en servicios, vinculando procesos a gráficos independientes y garantizando la permanencia de indicadores, como medias móviles, en tiempo real. Descubre cómo mantener un gráfico estandarizado, implementando servicios que supervisen y replieguen configuraciones específicas en diferentes gráficos de activos. La aplicación práctica de estos conceptos permite desarrollar sistemas de trading automatizado más robustos y confiables. Esta guía es esencial para programadores interesados en expandir sus habilidades en desarrollo de soluciones para MetaTrader 5.
Leer más...
Leer más...
🔥10👍3👌2❤1⚡1🏆1
Para los interesados en programar sistemas de trading automatizados, se presenta una introducción al indicador técnico Aroon. Este indicador, desarrollado por Tushar S. Chande en 1995, detecta cambios de tendencia y mide su fuerza a través de la frecuencia de máximos y mínimos. Aroon se compone de dos líneas: Aroon Up (tendencia alcista) y Aroon Down (tendencia bajista).
El artículo detalla cómo calcular el indicador, construir estrategias utilizando MQL5, y probarlas en un simulador para evaluar su eficacia. Existen dos estrategias principales a considerar: la estrategia de cruce y la de niveles, cada una con su metodología y lógica de implementación.
El proceso muestra cómo configurar, programar y probar estos sistemas, destacando la importancia de adaptarlos a estilos comerciales individuales. Se advierte que los resultados no están garantizados y cada usuario asume su propio rie...
Leer más...
El artículo detalla cómo calcular el indicador, construir estrategias utilizando MQL5, y probarlas en un simulador para evaluar su eficacia. Existen dos estrategias principales a considerar: la estrategia de cruce y la de niveles, cada una con su metodología y lógica de implementación.
El proceso muestra cómo configurar, programar y probar estos sistemas, destacando la importancia de adaptarlos a estilos comerciales individuales. Se advierte que los resultados no están garantizados y cada usuario asume su propio rie...
Leer más...
👍10❤4👌1
El artículo aborda la finalización del desarrollo del indicador "Chart Trade" en MetaTrader 5, y su integración directa con los Asesores Expertos (EAs). Se enfoca en la implementación técnica de buffers, proporcionando una forma de trabajar con el indicador como si estuviera vinculado al EA, mejorando la interacción y sincronización de datos. A través de modificaciones clave en la clase C_ChartFloatingRAD, se logra acceso eficiente a los datos necesarios, garantizando que la comunicación entre el indicador y el EA se realice mediante MetaTrader 5. Énfasis en la comprensión de estructuras y la importancia del manejo de memoria para evitar errores críticos en operaciones de trading.
Leer más...
Leer más...
👍14👌2
En el artículo anterior se presentó la funcionalidad del indicador Chart Trade y los riesgos asociados a la gestión incorrecta de archivos en MetaTrader 5. Para optimizar esta tarea, es viable integrar los recursos directamente en el ejecutable. Aunque MetaTrader 5 y MQL5 tienen limitaciones para ciertas funcionalidades, es posible incorporar plantillas y otros recursos al ejecutable mediante ajustes en el código. Para ello, es esencial modificar el uso de plantillas por recursos y entender cómo manipular estos desde el código.
Cambiar el enfoque de archivos separados a recursos internos simplifica la portabilidad y minimiza el riesgo de errores durante la transferencia de archivos. Aunque esto presenta ciertos desafíos, como mantener el directorio y nombre del ejecutable sin cambios, la implementación correcta facilita el proceso y evita errores durante el uso del sistema. Al utiliz...
Leer más...
Cambiar el enfoque de archivos separados a recursos internos simplifica la portabilidad y minimiza el riesgo de errores durante la transferencia de archivos. Aunque esto presenta ciertos desafíos, como mantener el directorio y nombre del ejecutable sin cambios, la implementación correcta facilita el proceso y evita errores durante el uso del sistema. Al utiliz...
Leer más...
👍10🎉2👌1
La reciente exploración sobre el Algoritmo Genético Binario (BGA) arroja luz sobre su aplicación en MetaTrader 5 y otros sistemas. Basado en principios evolutivos, el BGA utiliza cadenas de bits para optimizar soluciones, aplicando operadores genéticos como cruce y mutación. El BGA destaca por su capacidad para resolver problemas complejos donde los métodos tradicionales fallan. Con parámetros ajustables, como tamaño de población y probabilidad de cruce, el BGA logra un equilibrio entre diversidad y velocidad de convergencia. Su implementación en MetaTrader 5 promete optimizaciones efectivas en el trading automatizado, beneficiando a desarrolladores y traders con soluciones más eficientes y adaptativas.
Leer más...
Leer más...
👍14👌3
El artículo aborda el uso de MetaTrader 5 para implementar múltiples asesores de trading automático en una sola plataforma. Utiliza un enfoque orientado a objetos en MQL5, detallando cómo combinar estrategias comerciales que operan en diferentes símbolos y marcos temporales. Se centra en calcular automáticamente los volúmenes de posición respetando la reducción máxima permitida. Proporciona un método para incorporar varios asesores en un único sistema, optimizando los parámetros clave. Esta técnica permite gestionar eficazmente los recursos disponibles y abrir órdenes de manera estratégica. Ideal para traders y desarrolladores que buscan maximizar la eficiencia de sus plataformas de trading automatizado.
Leer más...
Leer más...
👍11👌4❤3
El artículo previo mostró cómo incrementar la interactividad del proyecto de Chart Trade al manejar el único objeto presente, OBJ_CHART, como si hubiera múltiples. Aún quedan detalles por abordar para optimizar el funcionamiento antes de implementar el sistema de órdenes. El objetivo actual es transformar el indicador Chart Trade en un nuevo modelo de construcción, sin crear un indicador totalmente nuevo.
Se realizaron ajustes en el código, incluyendo adiciones de macros para estandarizar mensajes de error y proteger la coherencia del indicador al cambiar el marco temporal. Estos pasos son cruciales para evitar la pérdida de datos durante estas transiciones.
El desarrollo del Chart Trade está avanzando hacia un sistema que permite editar valores directamente en la plantilla del gráfico y asegurar una actualización consistente. Esto se logra optimizando procedimientos como el almace...
Leer más...
Se realizaron ajustes en el código, incluyendo adiciones de macros para estandarizar mensajes de error y proteger la coherencia del indicador al cambiar el marco temporal. Estos pasos son cruciales para evitar la pérdida de datos durante estas transiciones.
El desarrollo del Chart Trade está avanzando hacia un sistema que permite editar valores directamente en la plantilla del gráfico y asegurar una actualización consistente. Esto se logra optimizando procedimientos como el almace...
Leer más...
👍9👌3❤1🔥1
Descubre cómo mejorar la eficiencia de tu sistema de plantilla en MetaTrader 5 con la clase C_AdjustTemplate. Este artículo explora una implementación más eficiente del código al reducir llamadas innecesarias y mejorar el modelado de datos. La nueva clase ofrece una lógica más detallada para manipular las plantillas de gráficos, facilitando un ajuste preciso y personalizado. A pesar de la complejidad inicial, el enfoque se centra en unificar y simplificar funciones dentro de un sistema robusto de trade charts. Este avance beneficia tanto a desarrolladores experimentados como a aquellos interesados en optimizar algoritmos en MQL5.
Leer más...
Leer más...
👍6✍2👌1
La integración entre indicadores y el sistema MetaTrader 5 puede ser lograda sin recurrir a objetos típicamente utilizados. Al modificar el indicador Chart Trade, se posibilita la interacción eficaz con el usuario. Utilizar el lenguaje MQL5 permite explotar las particularidades de la plataforma para lograr visibilidad y cambios en los datos del Chart Trade.
La programación, en este contexto, habilita la capacidad de transformar un archivo de plantilla en una herramienta verdaderamente dinámica. Este enfoque no se limita a conocimientos superficiales, sino que requiere una comprensión sistémica y detallada de MetaTrader 5. El potencial está en aprovechar al máximo los recursos disponibles en la plataforma para adaptarse a necesidades específicas de análisis del mercado.
Leer más...
La programación, en este contexto, habilita la capacidad de transformar un archivo de plantilla en una herramienta verdaderamente dinámica. Este enfoque no se limita a conocimientos superficiales, sino que requiere una comprensión sistémica y detallada de MetaTrader 5. El potencial está en aprovechar al máximo los recursos disponibles en la plataforma para adaptarse a necesidades específicas de análisis del mercado.
Leer más...
👍11👌3
Este artículo aborda el desarrollo de un asesor multidivisa en MetaTrader 5, utilizando MQL5. Se centra en la implementación de un sistema de trading que opera con 30 pares de símbolos, incluyendo parejas de Forex y metales como oro y plata. La estrategia principal se basa en el cruce de dos indicadores RSI, uno rápido y otro lento, para determinar las señales de compra o venta. Se describe una gestión avanzada de órdenes mediante funciones de Stop Loss, Take Profit, y trailing. También se ofrece flexibilidad para comerciar en tiempos específicos según la zona horaria. El enfoque es proporcionar una herramienta eficaz para traders, adaptable a sus preferencias en MetaTrader 5.
Leer más...
Leer más...
👍17❤4👌2
ONNX es un formato crucial para intercambiar modelos de aprendizaje automático entre diferentes frameworks. En redes neuronales, los tipos de datos como float32 son comunes debido a su equilibrio entre precisión y eficiencia. Sin embargo, presentar modelos clásicos como operadores ONNX puede ser complicado. Para abordar esto, se han añadido operadores ML adicionales. Este conjunto permite varios tipos de datos de entrada, pero la salida siempre es tensor(float), lo que puede limitar la precisión en modelos originalmente definidos con doble precisión.
Scikit-learn, popular en la comunidad Python, facilita la creación de modelos de regresión que pueden exportarse a ONNX. Al trabajar con estos modelos, la precisión de datos es esencial, especialmente al convertir y procesar información. Algunos modelos pueden evitar pérdidas de precisión, garantizando portabilidad plena en ONNX. Al abor...
Leer más...
Scikit-learn, popular en la comunidad Python, facilita la creación de modelos de regresión que pueden exportarse a ONNX. Al trabajar con estos modelos, la precisión de datos es esencial, especialmente al convertir y procesar información. Algunos modelos pueden evitar pérdidas de precisión, garantizando portabilidad plena en ONNX. Al abor...
Leer más...
👍9🎉1👌1