Muchas gracias por compartir esta información y por tomarse el tiempo de explicarla de una manera muy amena y legible. Excelente.
Saludos,
Antonio
Gracias por publicar, una vez más un enfoque muy singular. Estoy muy interesado en comprender y aplicar la appraoch. Me viene con tal y explicaciones informativas, es un placer leer y mejora mi comprensión en gran medida . Apreciar el tiempo dedicado a la creación de este
Saludos Neil
Gracias por publicar, una vez más un enfoque muy singular. Estoy muy interesado en comprender y aplicar la appraoch. Me viene con tal y explicaciones informativas, es un placer leer y mejora mi comprensión en gran medida . Apreciar el tiempo dedicado a la creación de este
Saludos Neil
Gracias, Neil, hay tanta gente que ayuda entre bastidores como Rashid y otros moderadores de contenidos que hacen que todo esto sea posible, que no podríamos agradecérselo a todos. Me alegro de haber aportado valor, ese es siempre el objetivo. De hecho, es el único objetivo.
Method Trained() ha devuelto true en ese punto.
¿Podría tener algo que ver con estar fuera del horario de negociación?
ACTUALIZACIÓN: Es probable que sea un problema con los datos históricos. Corro en modo 'ticks reales'. Probando backtest en un mes más tarde de los datos que funciona. Voy a ver si puedo añadir algo de código que no deje que los datos indefinidos se cuelen sin ser detectados. Veo que hay algunas comprobaciones ahí para m[0] y d[0] indefinidos pero puede que necesite más. Mañana lo compruebo.
Method Trained() ha devuelto true en ese punto.
¿Podría tener algo que ver con estar fuera del horario de negociación?
ACTUALIZACIÓN: Es probable que sea un problema con los datos históricos. Corro en modo 'ticks reales'. Probando backtest en un mes más tarde de los datos que funciona. Voy a ver si puedo añadir algo de código que no deje que los datos indefinidos se cuelen sin ser detectados. Veo que hay algunas comprobaciones ahí para m[0] y d[0] indefinidos pero puede que necesite más. Mañana lo compruebo.
Mi observación sobre el backtest de 'cada tick' se resolvió exportando explícitamente los archivos de datos del historial de Ticks y Barras desde la lista de Símbolos y guardándolos en una ruta de archivo donde el probador los referenciará.
Los archivos necesitan cubrir el rango de días para los que se realizan las pruebas. Esto puede ser conveniente para un caso de uso en el que un periodo del pasado se utiliza repetidamente para mejorar una estrategia.
Por defecto el probador descarga estos datos de la red en cada ejecución de prueba y aparentemente a veces esto no es fiable. Mantener estos datos localmente parece funcionar mejor.
Por lo general, la primera vez tratando de tener el probador de referencia a nivel local hay algunas acrobacias ruta de archivo hasta llegar a conocer la ruta correcta,
para la ilustración en mi caso la ruta de Windows es "C:\Usuarios\<nombre de usuario>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files".
Este post proporciona pistas: https://www.mql5.com/en/forum/367098#comment_21816898
- 2021.04.12
- Anthony Eric Gillon Dawson
- www.mql5.com
Method Trained() ha devuelto true en ese punto.
¿Podría tener algo que ver con estar fuera del horario de negociación?
ACTUALIZACIÓN: Es probable que sea un problema con los datos históricos. Corro en modo 'ticks reales'. Probando backtest en un mes más tarde de los datos que funciona. Voy a ver si puedo añadir algo de código que no deje que los datos indefinidos se cuelen sin ser detectados. Veo que hay algunas comprobaciones ahí para m[0] y d[0] indefinidos pero puede que necesite más. Mañana lo compruebo.
Había un equilibrio inherente entre mantener el mensaje fácil de seguir y solucionar todos los errores que observé. Si hubiera optado por esto último, el código habría sido necesariamente más complejo y no tan fácil de seguir como lo es ahora. Así que decidí mantenerlo fácil de seguir, con la intención de que pudieras ampliarlo rápidamente.
Tu solución parece muy prometedora, ¿qué tal está resultando?
Mi observación sobre el backtest de 'cada tick' se resolvió exportando explícitamente los archivos de datos del historial de Ticks y Barras desde la lista de Símbolos y guardándolos en una ruta de archivo donde el probador los referenciará.
Los archivos necesitan cubrir el rango de días para los que se realizan las pruebas. Esto puede ser conveniente para un caso de uso en el que un periodo del pasado se utiliza repetidamente para mejorar una estrategia.
Por defecto el probador descarga estos datos de la red en cada ejecución de prueba y aparentemente a veces esto no es fiable. Mantener estos datos localmente parece funcionar mejor.
Por lo general, la primera vez tratando de tener el probador de referencia a nivel local hay algunas acrobacias ruta de archivo hasta llegar a conocer la ruta correcta,
para la ilustración en mi caso la ruta de Windows es "C:\Usuarios\<nombre de usuario>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files".
Este post proporciona pistas: https://www.mql5.com/en/forum/367098#comment_21816898
Gracias por compartir el enlace. Ya encontraré tiempo para revisarlo.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Desarrollo de asesores expertos autooptimizables en MQL5:
Construya asesores expertos que miren hacia delante y se ajusten a cualquier mercado.
El desarrollo de un bot de negociación que pueda ajustarse a las condiciones actuales del mercado es clave para la estabilidad de las estrategias de negociación algorítmica. Nuestro objetivo es ir más allá de la creación de robots estrechamente enfocados y limitados a unos pocos símbolos. Pretendemos diseñar sistemas con capacidad de aprendizaje y adaptación a cualquier símbolo comercial. Esta guía se centra en el uso de MQL5 para desarrollar bots que puedan autooptimizarse a cualquier entorno de trading.
MQL5 es ideal para esta tarea, en contra de algunas creencias. Su API ofrece amplias funciones matriciales y vectoriales que permiten crear modelos compactos de aprendizaje automático. Esta introducción hace hincapié en el uso de MQL5 para construir bots autooptimizables. La programación orientada a objetos reduce la repetición de códigos y mejora la adaptabilidad a distintos plazos y condiciones de mercado.
Optar por las capacidades matriciales y vectoriales de MQL5 frente a alternativas como ONNX y Python tiene ventajas considerables. El uso de un modelo ONNX requeriría instancias de modelo separadas para cada símbolo de negociación y nuevos modelos para cualquier cambio menor de los parámetros, como los ajustes del marco temporal. MQL5, sin embargo, ofrece adaptabilidad sin necesidad de gestionar numerosos modelos para condiciones variables.
Autor: Gamuchirai Zororo Ndawana