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

 
Alexey Burnakov:

¿Evalúa el rendimiento de la estrategia en función de la historia o hay un largo plazo? El infierno puede estar en la evaluación de la historia.

Entrada en el momento, salida a través de O en una serie de condiciones. En principio, funciona. Pero si entras en el pico, y luego esperas un año para salir del drawdown...

Lo compruebo en forex. Si entraron en un pico - hay SL para esto.
 
Andrey Dik:

Más detalles: señal de compra en la barra actual, como comprar, contar el menor número de barras hacia adelante......

También tengo una versión similar de cómo se puede suavizar, te lo conté hace unas 100 páginas, pero está en un nivel más abstracto...

No sabemos cómo operar, dónde entrar, dónde salir.

por eso todo lo que hemos inventado (tendencias, zz, colores de las velas, rebotes) no es más que una tontería para intentar describir los movimientos del mercado, subjetivismo al fin y al cabo

Cada uno ha elegido su propia dirección y cada uno cava en ella - algunos usan colores de velas, otros usan zz, yo personalmente uso zz rebotes, etc. Es todo muy subjetivo y eso es lo que nos separa, aunque en esencia todos hacemos lo mismo y el resultado es el mismo.

Propongo tomar algo que nos une a todos y que no será subjetivo, a saber, el objetivo en forma de - podemos decir el deseo

"Quiero que el algoritmo gane min. 5% a la semana con una reducción máxima. 2%"

¿objetivo normal? a todo el mundo le gusta y le queda bien, ¿no? y todo está claro...

No hay que entrenar la red según nuestros objetivos ideados como GZ y otros, que son subjetivos, sino que hay que entrenar la red como la búsqueda de un determinado mínimo o máximo en el beneficio o en el drawdown, o en el sharp-ratio o en el PV o una combinación de estos indicadores.

No me importa cómo operes, pero cada semana debería obtener un +5% con un drawdown de hasta el 2%..... Dejemos que sea la propia red la que opere y determine si hay tendencia o retroceso, de hecho, lo único que nos interesa es el beneficio y el drawdown, y eso lo controlamos nosotros, y no sabemos operar, por lo que no debemos entrar en ella....

Cómo hacerlo...

Hay redes que ya nos enseñan a jugar, especialmente Super Mario http://gekkoquant.com/2016/03/13/evolving-neural-networks-through-augmenting-topologies-part-1-of-4/, propongo enseñar a la red de la misma manera, usemos una analogía...

1) Hay un entorno: las tortugas que escupen, los obstáculos en forma de tuberías, las cajas que hay que saltar, etc.

2) Hay acciones: los botones del joystick que la red pulsa para controlar a Mario

3) hay puntos - una recompensa para la red

4) hay un castigo: la muerte de Mario

Una vez en el entorno (1) la red comienza a pulsar los botones del joystick (2) y así durante miles de iteraciones hasta que aprende a completar el nivel, anotando una cantidad razonable de puntos (3) sin morir (4)

Analogía con el comercio

1) hay un entorno - que recibe datos en la red - predictores

2) hay acciones - comprar/vender/no hacer nada

3) Hay puntos - beneficio recibido

4) existe una penalización: la detracción obtenida

 
mytarmailS:

No se debe entrenar la red por nuestros objetivos desarrollados como GZ y otros que son subjetivos, sino entrenar la red en busca de algún mínimo o máximo de beneficio o drawdown o sharp-ratio o PV o combinación de estos indicadores

Estoy de acuerdo, el objetivo elegido es subjetivo y poco razonable. Intenté hacer un modelo de comercio con el paquete rneat, que aprendió un poco de comercio en la historia, pero todavía no predijo correctamente en los nuevos datos.

Hay una diferencia muy importante: en todos estos experimentos con juegos el modelo se entrena decenas de miles de veces en cada juego. Y su resultado se estima jugando a estos mismos juegos, evaluación sobre datos para el aprendizaje, por así decirlo. Para que Forex tenga un buen rendimiento en los datos no es suficiente para el entrenamiento, es necesario que el modelo funcione también en los nuevos datos, y parece ser un gran problema para un algoritmo de este tipo.

 
Dr.Trader:

1)Estoy de acuerdo, el objetivo elegido es subjetivo y poco razonable. Traté de hacer un modelo de comercio con el paquete rneat, que aprendió un poco en la historia, pero todavía no podía predecir correctamente en los nuevos datos.

2) Para forex, un buen rendimiento en los datos de entrenamiento no es suficiente, el modelo tiene que funcionar también con datos nuevos, y aparentemente esto es un gran problema para dicho algoritmo.

1) No sé cómo decirlo correctamente, pero en tu experimento no has dejado que la red piense, no has dejado que haga operaciones fijando tu objetivo, así has convertido la red en un modelo muy simple, su idea principal es autoaprender y tú lo has hecho por ella, ¿ves?

Dije que se le dejara hacer las operaciones, que hiciera las operaciones y sacara conclusiones por sí mismo.

nuestro control es el beneficio y la reducción, eso es todo... está por su cuenta...

2) Sí, es un problema para cualquier algoritmo, pero existe la esperanza de que si la red se entrena para operar bien, sin nuestro objetivo sin nuestro subjetivismo, entonces existe la posibilidad de que perciba los nuevos datos de forma más objetiva y ya sabemos cómo perciben los algoritmos con nuestro objetivo los nuevos datos

 
Andrey Dik:
Estoy comprobando el avance. Si ha entrado en el pico - hay SL para eso.
SL está ahí.
 
Dr.Trader:

Aunque esté implícito, prefiero añadirlo para que quede más claro para todos.

Normalmente, el sobreaprendizaje en los modelos tiene el efecto de que el modelo recuerda los ejemplos de entrenamiento con mucha precisión. El aprendizaje comienza con el modelo derivando algunas reglas generales, dependencias de valores objetivo en los predictores, pero cuanto más avanza el aprendizaje, más estrictas se vuelven estas reglas en el modelo, lo que finalmente conduce a ejemplos completamente memorizados, con una completa incapacidad del modelo para predecir en nuevos datos. Esto se gestiona mediante la validación cruzada, y deteniendo el entrenamiento cuando el modelo ha aprendido algunas reglas generalizadas pero aún no ha empezado a aprender ejemplos específicos, lo que dará un mejor rendimiento predictivo en los nuevos datos.

Esto funciona muy bien en los datos en los que las dependencias se mantienen constantes a lo largo del tiempo: el reconocimiento de imágenes o de sonidos, por ejemplo. Pero el forex es diferente porque muchas de las dependencias encontradas no son persistentes en el tiempo. El problema no es sólo lograr el aprendizaje sin memorizar los ejemplos de entrenamiento, sino también asegurarse de alguna manera de que los patrones encontrados permanezcan en el futuro.


Tienes un buen punto de vista. El reconocimiento de imágenes y sonidos es un proceso pseudo-estacionario, siempre que la muestra sea representativa y que la forma de dibujar en la muestra de control no se dé en pacientes con parálisis cerebral de la mano izquierda (a grandes rasgos, lo siento).

La tarea es más completa: desarrollar una forma de estimar los predictores con respecto a la variable objetivo que garantice que la relación entre los predictores y la variable objetivo es constante y también existirá en los nuevos datos.

Seleccionar los predictores por su importancia para la variable predicha en función de su persistencia a lo largo del tiempo es casi lo mismo que buscar predictores en una única muestra más amplia. Es decir, si se seleccionan predictores en varias muestras consecutivas que se comportan igual de bien en todas las parcelas, es un ajuste directo a esas parcelas.

Esencialmente, de N predictores, se seleccionan n que tendrán un buen rendimiento general (en todas las muestras disponibles). Equipado, ¿qué es lo siguiente? Y luego viene el verdadero avance, en el que observamos una caída en picado. ¿Cuál es la razón?

La razón es que la metodología de selección de predictores en la parcela K no se probó para generar resultados de calidad similar en la parcela M. En otras palabras, cada subconjunto de predictores seleccionados debe producir resultados correlacionados en K y M.

Puedo seleccionar para usted tales predictores y un modelo correspondiente que no aprende fuera de la muestra y que, sin embargo, recorre la parcela muy bien. De hecho, este es el tipo de modelo que aprendería bien si todas las muestras estuvieran pegadas, y este pegado lo hago a mano.

Tenemos que encontrar una forma de seleccionar los predictores para que en el entrenamiento y la validación los modelos se comporten como en la imagen de la izquierda:

Y sólo entonces podemos decir que el modelo pasa la prueba fuera de la muestra. No sólo que algunos modelos (predictores) pasen de la muestra.

 
SanSanych Fomenko:

Parece que sólo estamos nosotros dos, ya que la posición de Alexei no me queda del todo clara.


No veo por qué mi posición es complicada. Ya he dicho que si no veo correlación entre el rendimiento de los modelos en la muestra y fuera de la muestra, entonces no estoy produciendo un modelo robusto. O no lo entiendes o nunca lo has hecho.

Lo que digo es que si se ajustan los predictores, o los parámetros del modelo para que éste funcione bien en todas partes, es algo que está bien hecho. El modelo estará sobreajustado, aunque esté protegido contra el sobreajuste.

 
Alexey Burnakov:

La razón es que la metodología de selección de predictores en el sitio K no se ha probado para generar resultados de calidad similar en el sitio M. En otras palabras, cada subconjunto de predictores seleccionados debe producir resultados correlacionados en K y M.

¿Qué debe correlacionarse con qué? ¿Cómo se hace? Yo tampoco lo entiendo...

Alexey Burnakov:

O no lo entiendes o nunca lo has hecho.

Creo que nadie lo ha hecho aquí más que tú).

 
Alexey Burnakov:

No veo por qué mi posición es complicada. Ya he dicho que si no veo correlación entre el rendimiento de los modelos en la muestra y fuera de ella, entonces no estoy produciendo un modelo robusto. O no lo entiendes, o nunca lo has hecho.

Lo que digo es que si se ajustan los predictores, o los parámetros del modelo para que el modelo funcione bien en todas partes, es algo muy fino. El modelo estará sobreajustado, aunque esté protegido contra el sobreajuste.

Me he acordado, ya se ha hablado de ello, pero lo siento, lo había olvidado.

Me parece que estás planteando exigencias demasiado rígidas, y a costa de hacer más compleja la herramienta, y siempre es preferible una herramienta más sencilla que una compleja.

Utilizo el siguiente esquema:

1. Formulo la variable objetivo

2. Invento un conjunto de predictores que se relacionan intuitivamente con mi variable objetivo.

3. Utilizando mi algoritmo, selecciono los predictores que atribuyo al ruido por razones formales. Esto suele dejarme con un 15-20% de la cifra original que me he inventado.

4. Generar un archivo grande de no menos de 10000 barras

5. Divido este archivo en dos partes: 7000 и 3000

6. En 7000 enseño el modelo, pruebo y valido

7. Si las tres cifras son aproximadamente iguales, entonces paso 8. Si no, vuelvo al paso 1.

8. El modelo entrenado se utiliza en la práctica. Selecciono los predictores por uno de los algoritmos (yo uso rfe) en la ventana actual. Hago esta selección en las salidas para H1. Rfe del conjunto sobre el que aprendí el modelo, selecciona entre 5 o más predictores para la ventana actual. La lista de predictores cambia todo el tiempo, pero se extrae del conjunto que obtuve durante el entrenamiento inicial.

Todo este esquema ha estado funcionando sólidamente desde el otoño pasado en lo real. Pero hay un pero esencial: esto es sólo una parte de la EA. Anteriormente mis EAs en TA no vivían más de medio año. Ahora no veo este problema.

 
mytarmailS:

Yo también tengo una opción similar sobre cómo suavizarlo, la expresé hace unas 100 páginas, pero está en un nivel más abstracto...

No sabemos cómo operar, dónde entrar, dónde salir, no sabemos nada en absoluto

por eso todo lo que hemos inventado (tendencias, zz, colores de las velas, rebotes) no son más que tonterías para intentar describir los movimientos del mercado, subjetivismo a más no poder

Cada uno ha elegido su propia dirección y cada uno cava en ella - algunos usan colores de velas, otros usan zz, yo personalmente uso zz rebotes, etc. Es todo muy subjetivo y eso es lo que nos separa, aunque en esencia todos hacemos lo mismo y el resultado es el mismo.

Propongo tomar algo que nos une a todos y que no será subjetivo, a saber, el objetivo en forma de - podemos decir el deseo

"Quiero que el algoritmo gane min. 5% a la semana con una reducción máxima. 2%"

¿objetivo normal? a todo el mundo le gusta y le queda bien, ¿no? y todo está claro...

Parece que me has entendido mal. No le digo a la red dónde entrar, ni con zz ni con ningún otro indicador. Una red entrenada elige por sí misma dónde entrar.
Razón de la queja: