Discusión sobre el artículo "Uso de modelos ONNX en MQL5" - página 4

 
Muchas gracias. Se lo agradezco mucho. Deseo mucho más artículo al respecto en un futuro próximo
 

hay un problema con onyx lib ¿alguna idea?

mientras instalaba onyx obtuve un error

ERROR: No se pudo encontrar una versión que satisfaga el requisito onyx (de las versiones: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

ERROR: No matching distribution found for onyx

entonces al ejecutar t2fonnx

importar onyx

ModuleNotFoundError: No module named 'onyx'



 
Es extraño, la red está entrenada en un periodo horario, pero el Asesor Experto alimenta datos diarios. ¿Es un error? ¿O no entiendo algo?
 
donbar upbar #:

hay un problema con onyx lib ¿alguna idea?

mientras se instala onyx tiene un error

ERROR: No se pudo encontrar una versión que satisfaga el requisito onyx (de las versiones: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

ERROR: No matching distribution found for onyx

entonces al ejecutar t2fonnx

importar onyx

ModuleNotFoundError: No module named 'onyx'



Hola Donbar, parece que estás intentando instalar el paquete equivocado. Debería ser onnx, no onyx.
 

Hola, gracias por el artículo. Un gran tutorial sobre cómo construir un modelo ML e incorporarlo en un EA.

He intentado reproducir sus resultados, pero estoy teniendo algunos problemas. Esperaba que pudieras ayudarme a entender por qué.

He seguido el artículo cuidadosamente, pero terminó con resultados radicalmente diferentes en el probador de estrategia. Entiendo que hay algunas características aleatorias a estos algoritmos, aunque todavía estoy sorprendido por la diferencia. También tuve cuidado de utilizar los mismos períodos de tiempo para que al menos mis datos de entrenamiento y de prueba eran los mismos para los propósitos de construcción de modelos, y mi backtest MT5 fue durante el mismo período. Obtuve resultados muy diferentes.

He intentado identificar las posibles causas, y creo que la diferencia más interesante comienza durante la construcción del modelo. Mis funciones de pérdida sugieren que lograste una generalización mucho mejor al observar el rendimiento sobre los datos de prueba/validación. Las he incluido al final de este mensaje.

¿Puede sugerir posibles causas? ¿Es el modelo tan frágil que no resulta inesperado?

Mi esfuerzo más reciente para reproducir implicó simplemente copiar y pegar su código Python final, insertando algunas llamadas Matplotlib para producir los gráficos de pérdida, pero tuve básicamente los mismos resultados. ¿Puede sugerirme cómo podría reproducir mejor sus resultados?

Gracias

Archivos adjuntos:
LOSS.png  99 kb
RMSE.png  120 kb
copypaste.py  5 kb
 
Vladimir Perervenko proyecto de aprendizaje automático consta de tres fases:
  • preprocesamiento (muchas cosas)
  • selección del modelo, entrenamiento, optimización, etc.
  • implementación

El uso de modelos ONNX en µl resuelve el problema de la implementación. Sin embargo, no todos los modelos y no es del todo fácil.

El entrenamiento y la optimización de los modelos se resuelven mediante un proceso independiente en Python.

Pero de todo lo anterior, la primera etapa es la que más tiempo consume, la más creativa y la más importante. Y es imposible realizarla en µl. No consideramos el escalado primitivo como preprocesamiento. Y la sabiduría popular dice: "Basura dentro - basura fuera". Hay demasiadas cosas que desarrollar e implementar adicionalmente en la ACM para utilizar plenamente la MO sólo en la ACM. Es imposible abarcar lo inmenso, sobre todo porque está en constante expansión.

Por lo tanto, para ejecutar un preproceso, o se hace en otro lenguaje (quien domine R/Python/Julia, etc.) o se intenta convertirlo a ONNX.

La ventaja de implementar ONNX hasta ahora es que aprenderemos a convertir, crear, simplificar y optimizar modelos ONNX. Puede ser útil en el futuro.

No se puede decir mejor, todo es preciso y al grano

 
Rorschach #:

Transferir el preprocesamiento a MT no es un problema, realmente quiero probar el sistema en MT tester, en python/R necesito escribir mi propio tester, plagado de errores.

Ya hay un montón de probadores, probado en R y python.

Pero para transferir el preprocesamiento es sólo un problema, el preprocesamiento no es una escala trivial o cálculo estocástico.
 
Bill M probador de estrategia. Entiendo que hay algunas características aleatorias a estos algoritmos, aunque todavía estoy sorprendido por la diferencia. También tuve cuidado de utilizar los mismos períodos de tiempo para que al menos mis datos de entrenamiento y de prueba eran los mismos para los propósitos de construcción de modelos, y mi backtest MT5 fue durante el mismo período. Obtuve resultados muy diferentes.

He intentado identificar las posibles causas, y creo que la diferencia más interesante comienza durante la construcción del modelo. Mis funciones de pérdida sugieren que lograste una generalización mucho mejor al observar el rendimiento sobre los datos de prueba/validación. Las he incluido al final de este mensaje.

¿Puede sugerir posibles causas? ¿Es el modelo tan frágil que esto no es inesperado?

Mi esfuerzo más reciente para reproducirlo consistió simplemente en copiar y pegar su código Python final, insertando algunas llamadas a Matplotlib para producir los gráficos de pérdidas, pero obtuve básicamente los mismos resultados. ¿Puede sugerirme cómo podría reproducir mejor sus resultados?

Gracias

También tengo el mismo problema.

¿Puede alguien ayudarme?

 
Joseph #:

También tengo el mismo problema.

Alguien puede ayudarme?

Continuar mi investigación de la cuestión que estoy enfrentando (probablemente otros también); y actualizaciones de mis hallazgos.

En primer lugar, muchas gracias MetaQuotes (el autor) para compartir este artículo detallado. Aprendo mucho en mi búsqueda de comercio ML.

Ejecutando los archivos onnx originales del artículo en mi cuenta MetaQuates-Demo, consigo reproducir los mismos resultados. Sin embargo, reentrenando el modelo onnx con el adjunto ONNX.eurusd.H1.120.Training.py:

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00

el modelo (onnx adjunto: ) puntúa:

RMSE         : 0.005212606864326095
MSE          : 2.7171270322019527e-05
R2 score     : -3.478924709873314

y los resultados del backtest 1Ene2023-26Mar2023 adjuntos: "backtest results.png"

MetaQuotes
  • 2023.11.23
  • www.mql5.com
Trader's profile
Archivos adjuntos:
 

Reentreno el adjunto ONNX.eurusd.H1.120.Training.py con lo siguiente:

data start date = 2022-11-28 12:28:00
data end date = 2023-03-28 12:28:00

el modelo (onnx adjunto:) puntúa:

RMSE         : 0.0014680559413400179
MSE          : 2.155188246903726 e-06
R2 score     : 0.9699715149559284

y los resultados del bactest del 1Ene2023-26Mar2023 adjuntos: "bacttest resultado2.png"

Así que, a partir de los ejercicios anteriores, supongo que el modelo utilizado para producir el resultado final del artículo probablemente no entrenado con las siguientes fechas?

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00
Agradecería que alguien me lo comentara.
Archivos adjuntos: