Discusión sobre el artículo "Desarrollo de un robot en Python y MQL5 (Parte 1): Preprocesamiento de datos" - página 6

 
Sobre los signos estacionarios, por cierto, otra observación.

El modelo XGBoost en las pruebas, no importa cuántas veces lo ejecute, en diferentes fechas, muestra una tras otra rentable hacia adelante, docenas de veces en diferentes fechas con signos actuales. Aunque soy un principiante, pero no un idiota, corté el entrenamiento para 2007-2016, y luego pura prueba hacia adelante. Precisión de las etiquetas con las operaciones de riesgo-recompensa 1:8 - 66% en los delanteros es el promedio, a veces XGB patadas a cabo 72-74%. Todos los demás modelos, redes neuronales, todos los demás bousting, bosques aleatorios - verter ungodly.

Ni siquiera publicaría el primer artículo de un ciclo con rasgos actuales si han estado vertiendo en un modelo usado en delanteros durante más de 10 años.

Hay una razón por la que el modelo XGB gana muchas competiciones de previsión y ciencia de datos. Al parecer, de alguna manera sabe cómo trabajar con datos en bruto. Y la validación cruzada está incorporada. Me habló de él un conocido científico, doctor en ciencias, lo usa para pronosticar, bueno, y también comercia, me lanzó un informe de trading con Profit factor de 55, pero desapareció de internet, tenía muchos desarrollos, no se sabe muy bien qué le pudo pasar. En realidad fue él y también super artículos de Maxim Dmitrievsky que me trajo a MO hace un par de años.

Pero XGB tarda mucho tiempo en aprenderse. El último modelo fue entrenado durante dos días, ya estoy cansado de esperar, mientras que un booleano normal suele aprender en un par de minutos en el servidor. Pero para mí esto es en cierta medida un indicador de la complejidad y la eficiencia del algoritmo. Voy a alquilar un servidor más potente para la investigación.

Espero que la versión ONNX no pese demasiado y tenga demasiadas líneas. En MQL5 hay un límite en el número de filas de datos del modelo ONNX. Una vez entrené un modelo con 100 millones de filas y me dio mucha rabia, mcl no me deja usarlo) Creo que pesará mucho, y previendo esto he hecho un modelo para trading online directamente a través de Python, aparecerá en los próximos artículos del ciclo, el lunes lo pondré a prueba. El borrador de la serie ya está hecho. Al principio quería publicarlo todo en una hoja, pero la administración no me dejó, y probablemente tenga razón, sería aburrido leer semejante lío).

La idea de un scalper para Sber en Finam MT 5 ha aparecido, el punto es que hay una función en la biblioteca de Python mkle para obtener el historial de la pila de precios, ¿qué pasa si entrenamos un modelo en él, y dejar que scalpit, los chicos de la propakh oficios en la pila, y con bastante éxito. A juzgar por la experiencia de los comerciantes prop, no soy el primero en tener esa idea, y ha habido un montón de tales algoritmos scalping en MO durante mucho tiempo. El scalping es atractivo porque la rentabilidad se puede cubrir día tras día. Tengo una cuenta Finam como inversor extranjero en Rusia, aunque pequeña) Así que tal vez el último artículo de la serie estará dedicado a tal scalper en la Bolsa de Moscú o CME, a través de Finam o AMP Futures Europe.

También tengo un proyecto de visión por ordenador en Python, voy a hacer un artículo sobre él después de que el ciclo actual.

Hay muchas ideas, realmente muchas, cada día aparece una nueva idea y me siento a codificar. Aunque mi mujer dice, vamos ya a ganar dinero, coge el US Prop USA con lo que tienes, gana dinero. Ya hay decenas de modelos entrenados. Pero a mí me interesa más la investigación. Supongo que es verdad, debería tomar una cuenta y calmarme. Tomé una cuenta en febrero, y como lástima que hubo problemas con el prop con meta cuotas, entiendo que el prop no quería comprar licencias y chemed. La suerte fue que mi prop quitó MT 5, yo operaba con las manos a través de otro terminal que pusieron en vez de MT 5, y acabé perdiendo. Cogeré una cuenta nueva en otro prop con MT 5, y escribiré noticias al respecto, de como va el trading.

Sobre el hecho de que la elección de los mejores predictores debe limitarse a la fecha FORWARD, es una muy buena idea, de alguna manera me perdí este punto).
 

Muestra Forward de 2010, entrenamiento anterior a 2010.

Ejemplo, también implementé muestra EXAMWARD para probar el modelo en él por separado, aquí está el resultado. TODOS los demás modelos y redes neuronales han estado vertiendo en estas características desde el primer día.

 

Y así es como se diferencia un forward simple:

Y un forward con chips como cross-validation, model bagging (sí, todo esto está cosido en XGB por defecto creo, pero decidí implementarlo), enumeración de hiperparámetros grid, etc.:


 
Yevgeniy Koshtenko #:
Si las etiquetas de las clases no se restablecen, entonces la mejor característica para predecir las etiquetas serán las propias etiquetas, ¿no?

No se restablecen las etiquetas (lo que significa restablecer -limpiar- como sinónimo), sino que se excluyen las columnas que contienen etiquetas y se introducen las propias etiquetas por separado en el modelo como objetivos, es decir, la información sobre ellas no se restablece y no desaparece irrevocablemente, sino que se utiliza al entrenar el modelo.

 
Yevgeniy Koshtenko #:
El modelo XGBoost en las pruebas, no importa cuántas veces lo corro, en diferentes fechas, muestra una tras otra rentable hacia adelante, docenas de veces en diferentes fechas con signos actuales. Aunque soy un principiante, pero no un idiota, corté el entrenamiento para 2007-2016, y luego pura prueba hacia adelante. Precisión de las etiquetas con las operaciones de riesgo-recompensa 1:8 - 66% en los delanteros es el promedio, a veces XGB patadas fuera 72-74%. Todos los demás modelos, redes neuronales, todos los demás bousting, bosques aleatorios - verter ungodly.

Hay un montón de errores de novato en el artículo - escribí antes, si se utiliza el mismo código - puede haber milagros.

Trate de operar su solución durante un mes en una demo, a continuación, comparar los puntos de entrada mediante la adición de una muestra para probar el modelo.

Es ciertamente interesante leer acerca de los milagros XGB, especialmente cómo se encontró hiperparámetros - He leído que es muy sensible a ellos.

 
Rashid Umarov #:

No pretendía hacer esa suposición para no ofenderte :)

En adelante, compruebe su fuente antes de reprender

Tengo instalado el terminal en modo portable, ¿necesito escribir la clave "portable" de alguna manera?

Si el terminal está funcionando - el código no funciona, y si lo apagas, intenta arrancar sin la clave, pero tampoco funciona.

 
Aleksey Vyazmikin #:

Tengo instalado el terminal en modo portable, ¿tengo que escribir la clave "portable" de alguna manera?

Si el terminal está funcionando, el código no funciona, y si lo apago, intenta arrancar sin la clave, pero tampoco funciona.

Intenta ejecutarlo directamente desde el terminal. Simplemente lanza el script sobre el gráfico e imprime los resultados en la pestaña "Expertos".

Quizás necesites especificar la ruta a la carpeta python en el meta-editor.

A mí me funciona así. Pero después de mucho bailar))))

 
Aleksandr Slavskii #:

Intenta ejecutarlo directamente desde el terminal. Simplemente lanza el script en el gráfico e imprime los resultados en la pestaña "Expertos".

Quizás necesites especificar la ruta a la carpeta python en el meta-editor.

A mí me funciona así. Pero después de mucho bailar))))

¿Estás usando terminal en modo portable?

En ME la ruta está prescrita (aparece automáticamente).

 
Aleksey Vyazmikin #:

¿Estás en modo portátil usando el terminal?

En ME la ruta está prescrita (aparece automáticamente).

Lo he comprobado en la versión portable, todo funciona.

Si se están ejecutando dos terminales y no se especifica la ruta al terminal en el script, se produce un error en uno de los terminales al intentar compilar.

 
Aleksandr Slavskii #:

Comprobado en la versión portable, todo funciona.

Si se están ejecutando dos terminales y no se especifica la ruta al terminal en el script, se produce un error en uno de los terminales al intentar compilar.

Lo he ejecutado desde el terminal

2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:57.397 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 1)
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:58.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 2)
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:22:59.416 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 3)
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:00.418 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 4)
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Number of instruments in the terminal: 140
2024.04.01 17:23:01.421 synergy_ml_bot (EURUSD,Monthly) Data for EURUSD not available (attempt 5)

La ruta se especificó en ambos sentidos a la terminal.

terminal_path = "C:/FX/MT5_02/terminal64.exe"
#terminal_path = "C:\\FX\\MT5_02\\terminal64.exe"

En algún lugar está buscando en el lugar equivocado - hay historia en el terminal.