Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1324

 
Aleksey Vyazmikin:

Sí, las configuraciones básicas están bien dadas allí, especialmente si se ejecuta en Python directamente. Pero eso no es suficiente para mí.

Es cierto, Anna Verónica es mejor narradora y baila más.

 
Maxim Dmitrievsky:

El espectáculo es cierto, Anna Verónica es mejor narradora, y además baila.

No sé, no le presto atención, suelo verlo en modo rápido.

En cualquier caso, hay preguntas que requieren una respuesta por parte de los creadores, y no sé cómo hacerlas, en términos de dónde preguntarlas.

 
Aleksey Vyazmikin:

No sé, no le presto atención, suelo verlo en fast track.

De todos modos, hay preguntas que necesitan respuestas de los creadores, y no sé cómo hacerlas, en términos de dónde preguntarlas.

en githab probablemente

 
Maxim Dmitrievsky:

en un githab, tal vez.

Allí son todos tan angloparlantes que no sé dónde estoy :)

 
Aleksey Vyazmikin:

Todo el mundo allí es tan angloparlante que no sé dónde estoy :)

parece que tenemos que bombear R en lugar de python, Renat escribió que pronto habrá un enlace directo sin muletas

es decir, usted será capaz de ejecutar catbust en 1 línea de mt5

 
Maxim Dmitrievsky:

parece que tenemos que bombear R en lugar de python, Renat escribió que pronto habrá un paquete directo sin muletas

es decir, catbust puede ejecutarse en 1 línea desde mt5

En general, no pude ejecutar catbust bajo R.... tal vez no soy muy hábil. Si será bundle, es bueno, pero no dejará correr la optimización y la velocidad de respuesta está en duda...

 

Se ha completado un estudio sobre el impacto de la división de la muestra en muestras de entrenamiento y de validación (aquella en la que se detiene el entrenamiento y se realiza la selección del modelo).

La muestra utilizada fue de 2014 a 2018, cada 20% equivale a 1 año aproximadamente. La metodología es la siguiente, se tomó la muestra total y se empezó a aumentar la muestra de validación en un 10 por ciento, reduciendo la muestra de entrenamiento en el mismo 10 por ciento, dando como resultado 9 conjuntos de muestras. Para cada muestra se creó un modelo con Seed de 1 a 200, es decir, un total de 200 modelos por muestra, 1800 modelos en total.

La prueba del modelo se realizó con una muestra fija - 2018, que no participó en la formación.

El instrumento es la cola del contrato de futuros Si.

Abajo en la tabla hay indicadores para juzgar los resultados de los modelos - la parte izquierda son indicadores financieros, como estamos acostumbrados a ver en el terminal, y la parte derecha son indicadores sobre el balance de error (lo llamo así - no sé cómo corregirlo, si es que alguien lo usa), es decir, si el objetivo 1 fue determinado correctamente, entonces +1, si no correctamente, entonces -1, permite evaluar exactamente la calidad de la clasificación sobre toda la muestra. En verde claro he marcado el mejor rendimiento en cuanto a la media.

A continuación se muestran los valores métricos de los modelos

Los resultados muestran claramente que la formación de 2014 (80%-90%) dio los peores resultados, con una caída significativa desde el 70%. Esto más bien muestra no que el tamaño de la muestra era demasiado pequeño, sino que los patrones de 2014 apenas se cumplen, es decir, el mercado ha cambiado significativamente, lo que significa que teóricamente este período puede ser eliminado de la formación por completo.

Ahora utilizo el siguiente criterio para la selección de patrones en la muestra de la prueba (examen)

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;

Estos son los datos sobre el número de modelos que cumplen este criterio

A continuación se presenta una tabla de selección de modelos teniendo en cuenta los indicadores de las tres muestras según los siguientes criterios

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;


Aquí debemos tener en cuenta que el criterio de beneficio es fijo y el tiempo para alcanzar este beneficio es diferente para los diferentes conjuntos (probablemente, deberíamos reducir las cifras para hacer la comparación correcta).

¿Y qué conclusión se puede sacar? Parece que el volumen óptimo es el 60%-70% de la muestra de validación, es decir, el entrenamiento debe realizarse sobre una muestra más pequeña que la validación del modelo. Pero es imposible no destacar la ruptura por el 30%, allí también el resultado por todos los indicadores no es malo, y los fallos bastante cercanos al 40% y 50%. No sé qué influye más el tamaño de la muestra o el contenido y cómo establecerlo...

¿Y cuál es su opinión sobre los resultados de este experimento, tal vez estoy interpretando mal los resultados? ¿Alguna idea para cambiar la metodología o alguna otra sugerencia para resolver este problema de la proporción de las muestras de formación y de selección?

Añadido:

En cuanto a los promedios en el 80%-90%, hay muchos ceros allí (ninguna señal de entrada de los modelos) y debido a esto hay distorsión, esto se puede ver en el indicador StDV_K_Korrekt_Balans

histograma de StDV_K_Korrekt_Balans 90%


histograma de StDV_K_Korrekt_Balans 70%


Histograma de StDV_K_Korrekt_Balans 30%

Y este es el aspecto de los gráficos (los histogramas son clicables para que no parpadeen de forma molesta)

30%


40%


50%


60%

 

También debo señalar que el entrenamiento se realiza siempre sobre datos más antiguos que los datos sobre los que se realiza el control del entrenamiento - tal vez deberíamos intercambiarlos y ver qué pasa...

El pequeño promedio de Recall llama la atención: tal vez tengamos que entrenar más los modelos, en lugar de dejar de entrenar cuando no hay ninguna mejora después de 100 árboles, o no hay tantos patrones estables como nos gustaría.

Tenemos que ver cuánto se solapan los modelos, si el Recall es bajo, existe la posibilidad de que haya modelos con poca correlación, pero igualmente rentables, entonces son ideales para combinarlos en un solo pool.

 
Aleksey Vyazmikin:
Y también observo que el entrenamiento siempre va sobre datos más antiguos que los del control de entrenamiento - quizás habría que intercambiarlos y ver qué pasa...

Todo lo anterior es genial y muy informativo, pero "control de la formación", ¿qué significa eso?

Es decir, por ejemplo, entrenas el sistema con una muestra de datos de 2014 y luego das una muestra de 2015 y quieres ver la probabilidad de los patrones? Si es así, entonces no necesitas cambiar nada, todo está correcto. Sólo que aquí no veo ningún problema si el control da unos resultados distintos a los esperados, siempre será así.

 

Si la aplicación práctica de MO en su caso es la siguiente en mi opinión.

Dado que simplemente no es realista para obtener el 100% de probabilidad del resultado verdadero, a continuación, ir por un método simple, por ejemplo, la relación de los resultados verdaderos y falsos, si es en la región de 50/50, a continuación, de nuevo hay que entender lo que los beneficios que se obtiene con estos resultados, si el 50% de la ganancia es un promedio de 100 puntos y las pérdidas restantes 50% promedio de 50 puntos, entonces creo que su sistema ya es adecuado para el uso práctico.

Razón de la queja: