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

 
Maxim Dmitrievsky:

El forward es el que tiene el factor de beneficio más alto, y el backtest debería ser más o menos el mismo, lo que significa que la parrilla es capaz de hacer predicciones normales basadas en estos parámetros.

No, no lo es. Forward sólo muestra el beneficio potencial en el comercio real. Toma el mejor resultado de un backtest y mira su fronttest: eso es lo que ganarías.
Incluso se puede conseguir al menos un avance rentable para un EA utilizando la optimización, pero dicho EA se estrellará por muy optimizado que esté. La genética hace más de 10000 selecciones de parámetros y algunos de ellos son siempre rentables tanto en el backtest como en el fronttest pero es sólo un accidente.

El forward puede ser usado como un control para crear/modificar el EA - reemplazar esos tres parámetros rsi con algo más, encontrar genéticamente los nuevos mejores valores de los parámetros y ver qué pasó en el forward. Si los mejores resultados del backtest se corresponden con los buenos resultados del forward y esto ocurre durante la optimización en diferentes intervalos de tiempo - entonces el EA está bien. El forward no es demasiado largo, casi todos los EAs pierden en el intervalo largo sin optimización adicional. Por ejemplo, 2 meses de backtest, una semana de fronttest es suficiente.


Maxim Dmitrievsky:

Todavía no entiendo muy bien si es mejor que la función de normalización tome un array de 5000 barras en vez de 50 para que encuentre más máximos y mínimos correctos desde el principio y no los actualice con el tiempo porque al principio de las pruebas recibiremos valores no del todo correctamente normalizados para la entrada, pero después cada vez más precisos

Sí, será más preciso con 5000. Además, en el comercio real después de lanzar el Asesor Experto, reiniciar el terminal, etc. los valores para el mínimo y el máximo se restablecerán. Toda la optimización se perderá. El depósito será destruido.
También trato de cambiar algo en el código para obtener beneficios. Por ejemplo, simplemente tomé un resultado de regresión lineal puro sin ninguna adición y lo multipliqué por 1000, luego añadí 0,5. El resultado estará casi siempre en [0;1] (si está fuera de los límites - imprimiré el error en el registro y reduciré el multiplicador después), el centro estará siempre en 0,5, y nunca fallará.


Maxim Dmitrievsky:

Yo seguiría detrenciando los gráficos y dando valores más digeribles para una cuadrícula. Todavía no sé cómo mejorar, por ejemplo, la pendiente de la regresión y la autocorrelación de una serie estacionaria, ya que no soy muy bueno en econometría, ahora sólo veo videoclips

La pendiente de la regresión en las series estacionarias será cero, no es necesario buscarla. En general, si quiere encontrar la pendiente de la tendencia actual en las últimas N barras - entonces la regresión lineal está bien, en el código todo está ya bien.
La autocorrelación sería algo confusa, ya que no se trata de un único valor, sino de un largo vector (correlación con el retardo 1, correlación con el retardo 2, correlación con el retardo 3, etc.). Todos estos valores no caben en la RNN.

 
Dr. Trader:

La pendiente de la regresión sobre la serie estacionaria será cero, no es necesario buscarla. En general, si uno quiere encontrar la pendiente de la tendencia actual en las últimas N barras, entonces la regresión lineal está bien, todo está ya bien en el código.
La autocorrelación sería algo oscura, ya que no es un valor único, sino un largo vector (correlación con el retardo 1, correlación con el retardo 2, correlación con el retardo 3, etc.). Todos estos valores no caben en la RNN.


No, no, calculamos la pendiente de los regs mediante gráficos normales y buscamos la autocorrelación mediante el detrend, o quizás trasladamos la periodicidad del ciclo de 0 a 1, como en la fase del ciclo en la que estamos

Es decir, en la entrada tenemos una dirección en forma de pendiente de regresión y la ciclicidad dentro de esta dirección

 
Maxim Dmitrievsky:

¿Y qué te parece la idea de utilizar la RNN como una especie de autoencoder para la MLP?

Esa frase tiene algo de malo :)


Un autocodificador es una neurona que puede:
1) tomar algún vector (por ejemplo, una serie de vértices), y dar como salida otro vector de menor longitud. Un tipo de compresión de datos con poca pérdida.
2) Tomar el vector corto de datos obtenido anteriormente y reconstruir a partir de él los datos originales (casi originales, dependiendo de las pérdidas del primer paso). Eso es la descompresión.

Ejemplo de la vida real: tienes una imagen en formato BMP, formato que ocupa mucho espacio en el disco. El autocodificador toma sus píxeles y nos devuelve un nuevo vector de píxeles: los píxeles de la imagen en formato JPG. La misma imagen, pero ocupa menos espacio en el disco y está un poco nublada.
Y luego puedes si quieres de JPG volver a BMP, pero no se devuelve el brillo y la luminosidad original.
No creo que podamos poner el algoritmo JPG en la neurona; el ejemplo es sólo para aclarar.


RNN no toma series de tiempo sino RSI en este caso y devuelve sólo un valor según el cual los precios originales no pueden ser restaurados.



Maxim Dmitrievsky:

No, no, la pendiente de registro se calcula utilizando gráficos normales y la autocorrelación se busca utilizando la tendencia negativa, puede ser la periodicidad del ciclo de 0 a 1 como en qué fase del ciclo estamos ahora

Es decir, la salida tendrá la dirección en forma de pendiente de regresión y ciclicidad dentro de esta dirección

Ah, lo tengo.
 
Dr. Trader:

Esa frase tiene algo de malo :)

Pues bien, la RNN primero no toma la serie temporal, sino el RSI en este caso y devuelve un solo valor, por lo que no se pueden restablecer los precios originales.

pero podemos reconstruir las 3 lecturas de rsi de nuevo :) simplemente las comprimió y dio una probabilidad, ¿no? )

El autocodificador también tiene pérdida de información... Todavía no entiendo la diferencia. Mb la diferencia está puramente en la arquitectura, tenemos una especie de versión simplificada

 
Yuriy Asaulenko:
También echó un vistazo. En mi opinión, este no es nuestro tema.


¿Por qué? He visto publicaciones para EURUSD para M1.

Tienes que mirar a rugarch

Hay muchos de estos GARCN. Tienen tres grupos de parámetros: el propio modelo, el tipo de media y el tipo de distribución residual. Para cada uno de los tipos de parámetros, los últimos peeps. El desvío de la tendencia se discute más arriba. Por lo tanto, en GARCH se realiza un detrimento de la tendencia mediante ARFIMA, es decir, con diferenciación fraccional (Hurst).

 
SanSanych Fomenko:


Bueno, por qué, he visto las publicaciones para EURUSD para M1, cuánto más.

Tienes que mirar a rugarch

Hay muchos de estos GARCN. Tienen tres grupos de parámetros: el propio modelo, el tipo de media y el tipo de distribución residual. Para cada uno de los tipos de parámetros, los últimos peeps. El desvío de la tendencia se discute más arriba. Así pues, en GARCH el detrending se realiza mediante ARFIMA, es decir, con diferenciación fraccional (Hurst).


¿Cómo se puede introducir el garch en la parrilla? De la misma manera que se introducen algunos indicadores. Al fin y al cabo, la propia red debería crear el modelo dentro de sí misma
 
Maxim Dmitrievsky:

Bueno, ¿cómo se pone la basura en una red? Al fin y al cabo, la propia red debería crear el modelo dentro de sí misma.

No metas lo decente en lo decente.
 
SanSanych Fomenko:

Escupir en las redes y no meter cosas decentes en las desagradables

No, deberías hacerlo por diversión, definitivamente es posible encontrar un uso para las redes
 
Maxim Dmitrievsky:

No, es sólo una cuestión de interés, y está claro que es posible pensar en aplicaciones para las mallas.
Todos los modelos de aprendizaje automático y NS dependen en gran medida de los predictores que deben ajustarse a la función objetivo. Todo esto se ha discutido muchas veces más arriba. El esfuerzo principal está en el dataminig, y la rejilla en sí no importa realmente.
 
SanSanych Fomenko:
Todos los modelos de aprendizaje automático y NS dependen en gran medida de los predictores que deben ajustarse a la función objetivo. Todo esto se ha discutido muchas veces más arriba. El esfuerzo principal está en el dataminig, y la rejilla en sí no importa realmente.

Estaba tratando de discutir las variantes del predictor arriba :) Lo intentaré, che
Razón de la queja: