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

 
Esperaré a que CC aclare cómo quiere hacerlo.

Una vez más, creo que predecir las operaciones con una salida por una simple condición puede no ser óptimo.

¿Y si entrenamos otra máquina que aprenda el momento de cierre a partir de las operaciones ya abiertas? Déjeme explicarle. Una operación debería cerrarse en una hora: hemos entrenado a la máquina para que abra las operaciones de esa manera.

Por cada operación abierta, habrá 60 registros (líneas) con fichas - por cada minuto, comenzando a los 31 minutos y terminando a los 90 minutos. Aproximadamente la mitad de estas entradas se marcarán con un 1 como una buena salida alrededor del minuto 60.

Esto es lo que yo llamo una explicación detallada de cómo debe resolverse el problema.

¿Qué te parece?
 
Alexey Burnakov:

Es una idea interesante, yo también tengo EAs trabajando. Tal vez piense en cómo actualizarlos. Pero no me queda claro qué es lo que hay que mejorar exactamente. ¿Qué hay que enseñar a la máquina?

El Asesor Experto tiene una lógica rígida para abrir y cerrar posiciones. En el aprendizaje automático, la decisión se toma de forma ligeramente diferente.

Es decir, no está del todo claro lo que va a hacer exactamente.

Aquí puedes verlo desde mi post anterior:

Estoy tomando la dirección general de la barra alta. Pero cuando se mira de cerca el tiempo, hay un retraso monstruoso en términos de barras inferiores especialmente. Así que si es D1 pero comercio en M5, resulta que tomo casi el día antes de los datos de ayer para la dirección. Incluso la predicción de un paso adelante para D1 con un 30% de error mejoró radicalmente la rentabilidad del Asesor Experto, y lo más importante, aumentó la confianza de que no se agotará.

En mi caso voy a utilizar datos rezagados de los indicadores para una adecuada predicción en R.

 
SanSanych Fomenko:

Aquí hay una nota de mi post anterior:

La dirección general se toma desde la barra alta. Pero cuando se mira de cerca el tiempo, hay un retraso monstruoso en términos de barras inferiores especialmente. Así que si es D1 pero comercio en M5, resulta que tomo casi el día antes de los datos de ayer para la dirección. Incluso la predicción de un paso adelante para D1 con un 30% de error mejoró radicalmente la rentabilidad del Asesor Experto, y lo más importante, aumentó la confianza de que no se agotará.

En mi caso particular voy por el camino de utilizar datos rezagados de los indicadores sobre las correspondientes predicciones de R.

Bien, la idea está más o menos clara.
 

Tengo una gran noticia.

Mientras estaba en un viaje de negocios, por las noches ponía en marcha las máquinas de lerning con mis datos. Probé diferentes combinaciones de enfoques. Y parece que salió una flor de piedra, de repente.

Así que he estado utilizando mis datos del enlace que he citado para realizar más y más entrenamientos, probando cosas que ya han sido descritas en mi blog. Pero he añadido un par de trucos más. Por ejemplo, seleccioné aquellos parámetros de entrenamiento en los que hay más beneficios en la validación cruzada, en lugar de la precisión de adivinación abstracta.

Para ello, por supuesto, tuve que escribir mi función de fitness.

En el gráfico aparecen los pares de valores de expectativa en Entrenamiento y Validación para diferentes horizontes de predicción y parámetros de entrenamiento. También utilicé la idea de "zona gris", es decir, un espacio de predicción donde no pasa nada.

Como puedes ver, ¡obtuve valores de MO bastante sanos en el entrenamiento y valores correlacionados en la validación! Obsérvese que la simulación utilizó un margen de 0,00020 (veinte picks).

También he calculado el total de la operación incluyendo el spread. Los valores también son muy agradables. El beneficio máximo se consigue con una determinada relación entre el número de operaciones y el MO de la operación, todo ello en un horizonte de planificación de 12 horas. En el gráfico se muestra un recorrido por todos los horizontes de planificación, todos los valores de la zona gris y los mejores parámetros de aprendizaje del modelo. Véase más abajo:


Bueno, y para difundir este conocimiento, adjunto un archivo con todos los resultados, incluyendo incluso los parámetros de entrenamiento del andamio. Pero sin las entradas. Las entradas de mis datos están seleccionadas. Esto será un pequeño secreto. Pensaré en el código completo del experimento o no. Ahora quiero hacer la integración con MT de esta máquina, porque el resultado me parece que ya funciona bastante.

Alexey

 
Alexey Burnakov:

Tengo una gran noticia.

Mientras estaba en un viaje de negocios, por las noches ponía en marcha las máquinas de lerning con mis datos. Probé diferentes combinaciones de enfoques. Y parece que salió una flor de piedra, de repente.

De todos modos, sobre mis datos del enlace que di, corrí el entrenamiento una y otra vez, probando cosas que ya han sido descritas en mi blog. Pero he añadido un par de trucos más. Por ejemplo, la selección de aquellos parámetros de entrenamiento en los que hay más beneficio en la validación cruzada, en lugar de la precisión abstracta de la adivinación.

Para ello, por supuesto, tuve que escribir mi función de fitness.

En el gráfico aparecen los pares de valores de expectativa en Entrenamiento y Validación para diferentes horizontes de predicción y parámetros de entrenamiento. También utilicé la idea de "zona gris", es decir, un espacio de predicción donde no pasa nada.

Como puedes ver, ¡obtuve valores de MO bastante sanos en el entrenamiento y valores correlacionados en la validación! Obsérvese que la simulación utilizó un margen de 0,00020 (veinte picks).

También he calculado el total de la operación incluyendo el spread. Los valores también son muy agradables. El beneficio máximo se consigue con una determinada relación entre el número de operaciones y el MO de la operación, todo ello en un horizonte de planificación de 12 horas. En el gráfico se muestra un recorrido por todos los horizontes de planificación, todos los valores de la zona gris y los mejores parámetros de aprendizaje del modelo. Véase más abajo:


Bueno, y para difundir este conocimiento, adjunto un archivo con todos los resultados, incluyendo incluso los parámetros de entrenamiento del andamio. Pero sin las entradas. Las entradas de mis datos están seleccionadas. Esto será un pequeño secreto. Pensaré en el código completo del experimento o no. Ahora quiero hacer la integración con MT de esta máquina, porque el resultado me parece que ya funciona bastante.

Alexey

El beneficio total en pips no es un indicador. El factor de calidad indicativo es la relación entre este beneficio total y el número de barras de la historia en la que se obtiene. Hace tiempo que lo digo y lo uso sólo para la optimización y estimación de modelos.

El trabajo duro da resultados.

Buena suerte

 
Vladimir Perervenko:

El beneficio total en pips no es el indicador. El factor de calidad indicativo es la relación entre este beneficio total y el número de barras de la historia en las que se obtiene. Hace tiempo que lo digo, y lo uso sólo para la optimización y estimación de modelos.

El trabajo duro da resultados.

Buena suerte

En mi opinión, una cosa no excluye la otra.

Alexey ha superado la desventaja obvia de todas las evaluaciones de predicción de clasificación: es obvio que el valor de una predicción correcta de una barra de 1 pip y el valor de una predicción de una barra de 10 pip son completamente diferentes.

¡Enhorabuena a ti Alexey!

 
Vladimir Perervenko:

El beneficio total en pips no es un indicador. La relación entre este beneficio total y el número de barras de la historia en la que se obtiene es el coeficiente de calidad que es indicativo. Hace tiempo que lo dije y lo uso sólo para la optimización y estimación de modelos.

El trabajo duro da resultados.

Buena suerte

Déjeme explicarle.

Previsión con 12 horas de antelación (724 minutos para ser exactos).

El número de operaciones es superior a 5000 para cada una de las muestras de validación. El resultado se promedia en 49 muestras de validación. Las operaciones dentro de cada muestra se producen en incrementos de unas 12 horas, es decir, no hay una dependencia evidente ni un solapamiento de los resultados. Dentro de un momento publicaré más gráficos de la simulación de operaciones. Los resultados son demasiado buenos. Pero hasta ahora todo está confirmado.

 

Datos finales de mi experimento:

Simulación de señales de trading de una máquina entrenada en 49 muestras de validación (en pips):

Distribución del resultado de la operación en pips para 49 muestras:

Y realizar pruebas de hipótesis de una diferencia significativa entre la media (mediana) de la MO de cada muestra de validación y cero:

muestra de validación
prueba de shapiro normalidad p-valor
prueba p-valor para la diferencia de cero
media
mediana
dist. media cola superior del 99%
media dist inferior cola 99%
1
1.11E-65
0
0.000139
0.000095
0.000146
0.000133
2
8.55E-64
0
0.000139
0.000096
0.000145
0.000133
3
8.24E-63
0
0.000137
0.000096
0.000143
0.000131
4
3.31E-66
0
0.000139
0.000095
0.000146
0.000133
5
4.64E-66
0
0.000142
0.000097
0.000149
0.000136
6
7.08E-63
0
0.000141
0.000097
0.000147
0.000135
7
8.72E-65
0
0.000135
0.000096
0.000141
0.000129
8
4.52E-65
0
0.000139
0.000096
0.000145
0.000132
9
4.31E-64
0
0.000143
0.000102
0.000149
0.000137
10
4.53E-66
0
0.000141
0.000099
0.000147
0.000134
11
8.97E-67
0
0.000143
0.000098
0.000149
0.000136
12
2.21E-63
0
0.000139
0.000102
0.000145
0.000133
13
1.16E-63
0
0.000142
0.000099
0.000148
0.000135
14
7.82E-64
0
0.000138
0.000097
0.000144
0.000132
15
1.41E-65
0
0.000146
0.000103
0.000152
0.000140
16
8.17E-63
0
0.000135
0.000097
0.000140
0.000129
17
6.54E-65
0
0.000143
0.000099
0.000149
0.000136
18
6.70E-66
0
0.000138
0.000096
0.000144
0.000132
19
1.86E-65
0
0.000143
0.000099
0.000149
0.000136
20
1.79E-66
0
0.000142
0.000098
0.000148
0.000135
21
2.37E-62
0
0.000136
0.000099
0.000142
0.000131
22
5.51E-65
0
0.000141
0.000100
0.000147
0.000135
23
7.15E-67
0
0.000142
0.000097
0.000149
0.000136
24
1.06E-65
0
0.000144
0.000102
0.000150
0.000137
25
4.01E-65
0
0.000147
0.000101
0.000153
0.000140
26
2.33E-64
0
0.000141
0.000098
0.000147
0.000135
27
7.85E-65
0
0.000141
0.000100
0.000147
0.000134
28
2.07E-64
0
0.000141
0.000098
0.000147
0.000134
29
2.01E-63
0
0.000140
0.000098
0.000146
0.000134
30
2.77E-64
0
0.000139
0.000098
0.000145
0.000133
31
1.43E-66
0
0.000145
0.000098
0.000151
0.000138
32
1.08E-65
0
0.000141
0.000098
0.000147
0.000134
33
3.47E-62
0
0.000136
0.000099
0.000141
0.000130
34
6.04E-67
0
0.000140
0.000096
0.000147
0.000134
35
2.32E-65
0
0.000145
0.000100
0.000152
0.000139
36
6.39E-65
0
0.000143
0.000098
0.000149
0.000137
37
1.10E-61
0
0.000141
0.000103
0.000147
0.000135
38
6.74E-63
0
0.000142
0.000100
0.000148
0.000136
39
2.54E-64
0
0.000141
0.000098
0.000147
0.000135
40
2.45E-64
0
0.000139
0.000098
0.000145
0.000133
41
6.25E-66
0
0.000141
0.000099
0.000148
0.000135
42
3.99E-66
0
0.000141
0.000097
0.000147
0.000135
43
1.35E-66
0
0.000142
0.000098
0.000148
0.000135
44
1.01E-63
0
0.000134
0.000097
0.000140
0.000128
45
1.56E-64
0
0.000139
0.000097
0.000145
0.000133
46
3.11E-66
0
0.000145
0.000103
0.000152
0.000139
47
6.11E-66
0
0.000138
0.000099
0.000144
0.000131
48
2.99E-66
0
0.000146
0.000101
0.000152
0.000139
49
1.84E-63
0
0.000138
0.000098
0.000144
0.000131

La distribución dentro de las muestras no es normal. La prueba de Wilcoxon muestra que la MO es significativamente diferente de cero.

Por cierto, el cambio en el patrón de crecimiento de la curva de suma de puntos en las últimas 3/5 partes de las muestras de validación es explicable.

Tengo aproximadamente el mismo número de observaciones para las 5 especialidades dentro de las muestras y van en el siguiente orden:

dat_eurusd 
dat_audusd 
dat_gbpusd 
dat_usdcad 
dat_usdchf

Estoy seguro de que para los tres últimos pares la volatilidad es mayor y el spread es mayor (deberíamos tomar 25-30 pips en lugar de 20 pips). Por lo tanto, su resultado bruto y el porcentaje de direcciones adivinadas es mejor. Pero la introducción de un diferencial mayor no hará que las estadísticas sean nulas de todos modos. Sólo para entender lo que está pasando.

PM.

 
SanSanych Fomenko:

A mi modo de ver, una cosa no excluye la otra.

Alexey ha superado la desventaja obvia de todas las evaluaciones de predicción de clasificación: obviamente, el valor de una predicción correcta de una barra de 1 pip y el valor de una predicción de una barra de 10 pip son completamente diferentes.

¡Enhorabuena a ti Alexey!

Gracias, SanSanych. Todo está funcionando. Intentaré ejecutarlo en MT4 para empezar.
 

Advertencia. Encontré un error en el código, que causó grandes resultados. Todas mis optimizaciones quedan anuladas hasta el análisis detallado.

He hecho un Asesor Experto en MT4 en relación con Arom. He visto algunas diferencias en los resultados, por lo que he hecho una revisión detallada del código y he encontrado un error grosero. Todavía no he encontrado nada rentable. El experimento continúa.