Discusión sobre el artículo "Creación de una estrategia de retorno a la media basada en el aprendizaje automático" - página 9
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Buenos días, Maxim. Buenas tardes, honorables colegas.
Tengo una pregunta candente.
Quería añadir funcionalidad adicional al bot (salida de una posición a breakeven y trawl sl), pero me he encontrado con la imposibilidad de compilar el código fuente (uso el compilador estándar del paquete MT5).
Incluso el código fuente original medio reversion.mq5, adjuntado por el autor al artículo, no pasa .
El problema está en las funciones OnnxSetInputShape y OnnxSetOutputShape (líneas 51, 58, 66, 71). Según la ayuda de mql5, los datos de entrada para estas funciones son tres variables: dos de tipo long y la tercera de tipo const ulong. Sin embargo, según el código del Asesor Experto, las variables ExtInputShape, ExtInputShape2 y output_shape utilizadas como variables iniciales en las funciones consideradas se inicializan como const long ( líneas 31, 32, 65).
Cuando el tipo de datos de las variables se cambia a const ulong, la compilación tiene éxito. Sin embargo, el bot deja de funcionar "in profit", es decir, no se ejecuta el algoritmo de la estrategia comercial implementada.
Por favor, ayuda en la solución de este problema. Considero la opción con un compilador externo en último lugar. ¿Es posible compilar con las herramientas estándar de MT5 sin comprobar la corrección del código?
Cuando el tipo de datos de las variables se cambia a const ulong, la compilación tiene éxito. Sin embargo, el bot deja de funcionar "en beneficio", es decir, no se ejecuta el algoritmo de la estrategia de trading implementada.
Por favor, ayuda en la solución de este problema. Considero la opción con un compilador externo en último lugar. ¿Es posible compilar con las herramientas estándar de MT5 sin comprobar la corrección del código?
Amablemente, pruebe esta opción. No recuerdo qué más cambié además de ulong. Sí, después de la actualización, algunas ph-iases empezaron a funcionar diferente que antes.
Escribe en #define los nombres de tus fases desde tu fichero include.Amable, prueba esta opción. No recuerdo qué más cambié además de ulong. Sí, después de la actualización, algunas ph-iases empezaron a funcionar diferente que antes.
En #define, escribe los nombres de tus fases de tu fichero include.Buen día.
Ya lo hice. Pero, desgraciadamente, el motivo es otro. Adjunto capturas de pantalla de los resultados de tu versión compilada y de la versión en la que los tipos de variables se sustituyen por ulong.
Buenos días.
Así es. Pero, desgraciadamente, el motivo es otro. Adjunto capturas de pantalla de los resultados de tu versión compilada y de la versión en la que los tipos de variables se sustituyen por ulong.
¿Utilizas el mismo tipo de atributos en el bot que en el entrenamiento? Ocurre que has cambiado los atributos en el script python, pero no en el inklulnik.
Probablemente. Porque saco los archivos del modelo que estaban en la versión inicial del bot.
Pero el algoritmo de entrenamiento del modelo está todavía en fase de estudio y realización. No tengo problemas con Mql5, pero con Python todavía me cuesta hacerme amigo.
Probablemente. Debido a que los archivos de modelo que estoy tirando hacia arriba son los que estaban allí en la versión inicial del bot.
Pero el algoritmo de formación de modelos se encuentra todavía en la etapa de estudio y realización. No tengo problemas con Mql5, pero la amistad con python es todavía un poco difícil.
Comprobado, todo funciona para mí. He adjuntado los archivos de modelos entrenados del artículo y el bot actualizado arriba.
Es conveniente volver a entrenar los modelos después, porque hay modelos de demostración adjunta al artículo. Cuando usted entiende el script de python.
Comprobado, todo me funciona. Adjunto los archivos de modelos entrenados del artículo y el bot actualizado arriba.
Es conveniente volver a entrenar los modelos después, porque hay modelos de demostración adjunta al artículo. Cuando usted entiende el script de python.
Sí, en esta versión el propio bot compila y funciona correctamente. Pero los modelos necesitan ser reentrenados. Y en general, según tengo entendido, debe hacerse con regularidad.
Me estoy familiarizando con python, pero todavía no lo entiendo todo. He rodado la versión principal de Rutop en mi portátil y la he actualizado a la versión actual. Instalé todos los paquetes necesarios (pandas, numba, numpy, catboost, scipy, scikit-learn). Descargué quotes. He puesto el fichero de quotes y todos los scripts en la carpeta Files del catálogo principal de MT5. He escrito las rutas en el código del script de entrenamiento del modelo. Pero algo no va al resultado.
corrijo el código del script en MetaEditore. Intento ejecutar el script desde allí. El proceso cae en un error (no encuentra el paquete bots python, y el intento de instalarlo según el esquema de instalación de otros paquetes también termina con un error). El mismo error se produce al ejecutar el script a través de la consola de python.
¿Puedes aconsejarme en qué dirección perforar el tema?
Buenos días!
Sí, en esta versión el bot compila y funciona correctamente. Pero los modelos necesitan ser reentrenados. Y en general, según tengo entendido, debe hacerse con regularidad.
Me estoy familiarizando con python, pero no todo funciona hasta ahora. Rodé la versión principal de Rutop en mi portátil y lo actualicé a la versión actual. Instalé todos los paquetes necesarios (pandas, numba, numpy, catboost, scipy, scikit-learn). Descargué quotes. He puesto el fichero de quotes y todos los scripts en la carpeta Files del catálogo principal de MT5. He escrito las rutas en el código del script de entrenamiento del modelo. Pero algo no va al resultado.
corrijo el código del script en MetaEditore. Intento ejecutar el script desde allí. El proceso cae en un error (no encuentra el paquete bots python, y el intento de instalarlo según el esquema de instalación de otros paquetes también termina con un error). El mismo error se produce al ejecutar el script a través de la consola de python.
¿Puedes aconsejarme en qué dirección perforar el tema?
Bots es sólo el directorio raíz (carpeta) donde se encuentran los módulos del artículo. Si el script no los ve al importar los módulos (archivos adicionales), entonces escribe las rutas completas a los archivos.
O ponga todos estos archivos en la misma carpeta que el script principal y haga esto en su lugar:
Esto puede ocurrir si no tenías PYTHONPATH prescrito cuando instalaste Python. Busca en internet cómo prescribirlo para tu sistema. Es decir, Python no ve los archivos del disco.
O lee un curso básico de importación de módulos en internet.
Bots es sólo un directorio raíz (carpeta) donde se encuentran los módulos del artículo. Si el script no los ve al importar módulos (archivos adicionales), escriba las rutas completas a los archivos.
O ponga todos estos archivos en la misma carpeta que el script principal y haga esto en su lugar:
Esto puede ocurrir si no tenías prescrito PYTHONPATH cuando instalaste Python. Busca en internet cómo prescribirlo para tu sistema. Es decir, python no ve los archivos en el disco.
O lee un curso básico de importación de módulos en internet.
Buenos días, Maxim. Gracias. Casi todo está resuelto. La última pregunta.
Hay líneas comentadas (154-182) en el script principal para modelos de entrenamiento. Según tengo entendido, se trata de muestreadores de reparto alternativos (marcas). Pero no puedo probarlos. Si se descomenta cualquiera de los marcadores (condicionalmente, líneas 154-158) y se comenta el original (líneas 149-153), el script no arranca.
¿Cuál puede ser la razón, dónde mirar?
Gracias )
Buenos días, Maxim. Muchas gracias. Casi todo está resuelto. La última pregunta.
Hay líneas comentadas (154-182) en el script principal para el entrenamiento de modelos. Según tengo entendido, se trata de muestreadores de reparto alternativos (marcas). Pero no puedo probarlos. Si se descomenta alguno de los marcadores (condicionalmente, líneas 154-158), y se comenta el original (líneas 149-153), el script no arranca.
¿Cuál puede ser la razón, dónde mirar?
Gracias )
Hola, necesitas logs de lo que escribe el intérprete de Python.