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

 
Alexey Burnakov:

Hay un címico en lo que estás haciendo.

Sin embargo, también debería probar el muestreo diferido. Esto es un clásico. Entrenamiento, prueba, validación.

Y complicar aún más el procedimiento. Para cada modelo que funcione bien en términos de entrenamiento y prueba, llamémoslo modelo X, haga la validación en los datos retrasados. De este modo, podrá hacerse una idea de si está eligiendo el modelo correctamente o no, utilizando únicamente el entrenamiento y la prueba. Haz muchos modelos con diferentes parámetros, elige los mejores (10, 100, 1000). Falla. Comprenderá si su "mejor" métrica se refleja en los datos futuros o no. Sólo después de eso ir a la batalla.

Si hay muchos valores de la misma variable aleatoria, se pueden contar los intervalos de confianza y entonces en lugar de "valores cercanos" operar con la "intersección/convergencia de los intervalos de confianza".
 
mytarmailS:

¿puede ver el resultado de la negociación de ayer?

Y esto es para hoy. No sin errores, por supuesto, pero al final, bastante ....

 
Mihail Marchukajtes:

Y esto es para hoy. No sin errores, por supuesto, pero al final es bastante ....

No está mal, ¿qué son los círculos verdes y qué significan las flechas?

 
SanSanych Fomenko:
Si hay muchos valores de la misma variable aleatoria, se pueden contar los intervalos de confianza y entonces en lugar de "valores cercanos" operar "intersección/convergencia de los intervalos de confianza".

SanSan, déjame explicarte de nuevo. Y creo que será más claro para todos.

La siguiente tabla es un registro del experimento. Cada experimento está escrito en una tabla. Antes de la columna J están las variables. Modelo, formación de la función de pérdida, herramienta, horizonte de previsión, parámetros del modelo (GBM), parámetros que no se optimizan en caret, sino que los optimizo en bucle también: número de faltas crossvalid, número de predictores seleccionados para la formación, aleatoriedad para el árbol, corte de alguna parte de las previsiones que están en la zona gris de la incertidumbre.

Luego vienen mis métricas de calidad: en la formación (conjunto de 10 años), en los fallos de las pruebas cruzadas y en las muestras retrasadas. Marque en rojo las columnas más interesantes.

Siguiente. Puedo mostrarte los mejores modelos que hicieron un infierno en muestras diferidas. Pero... ¡es un ajuste difícil!

Con datos consistentes y un método de entrenamiento adecuado, simplemente espero obtener una relación entre la métrica en las muestras diferidas y la métrica en la validación cruzada (prueba). Veamos lo que tengo:

Objetivamente, la calidad de los modelos seleccionados en la muestra diferida (que emula un periodo de negociación real) casi no guarda relación con la métrica de calidad en la prueba (faltas de la prueba de validación cruzada).

Conclusión, amigos: si elijo el mejor modelo de acuerdo con la siguiente heurística "el modelo debe ser mejor en la prueba", tengo cero certeza sobre cómo se comportará el modelo en el futuro.

Esta definición se extiende a tal escenario: elijo un modelo según la heurística "el mejor modelo mostrará una buena calidad en una muestra retrasada"; tal elección, amigos, también conducirá a la incertidumbre. Todo es probabilístico, por supuesto, puedes tener suerte, pero no puedes engañar a la estadística.

Esa y sólo esa es la ventaja del muestreo diferido. Comprobación del rendimiento del modelo, comprobando la heurística de selección del mejor modelo.

PD: Estoy pensando en cómo mejorar el resultado. En el buen sentido, necesitas una nube elíptica inclinada. A partir de ella puedes tomar comités del borde derecho, etc. y en promedio funcionará.

 

Buen juego de herramientas que has desarrollado para evaluar la heurística, sólido. Ha demostrado que la forma que ha desarrollado para entrenar el modelo (comité) no es adecuada para el mercado de divisas, pero ¿qué sigue?

Hay que encontrar la manera de construir un modelo para que haya una correlación entre los resultados en los datos de entrenamiento propiamente dichos, los resultados en la prueba y los resultados en la muestra pendiente.

Tengo una situación similar, por ejemplo, estoy probando diferentes formas de preprocesar los datos, diferentes paquetes para el entrenamiento/predicción, diferentes funciones para evaluar la calidad de la predicción. Todo es importante, y hay infinitas combinaciones de todo ello. Intento ceñirme a la regla de la navaja de Occam: cuantos menos predictores se necesiten y menos parámetros tenga un modelo, mejor.

 

También mi opinión subjetiva es que sus predictores no pueden ser utilizados para predecir sus valores objetivo. Al menos trabajando con su archivo dat_train_final_experimental1.csv - no puedo obtener un resultado positivo para mi función de fitness al ajustar los parámetros de gbm. Es decir, sea cual sea el modelo, con los parámetros que construya, no estoy satisfecho con los resultados en la validación cruzada. No puedo probarlo, sólo es mi opinión personal, aconsejo tomar más predictores y tratar de disminuir su número al construir un modelo.

Por ejemplo, en mi tabla de entrenamiento hay 150 predictores para cada barra, 100 barras en total, el total de 15000 predictores. A continuación, utilizo la genética para buscar los predictores y los parámetros del modelo en busca del mejor resultado de la función de aptitud. De este modo, selecciono aquellos predictores que están relacionados con los valores objetivo y sobre los que el modelo puede predecir. Al final de la selección me quedan sólo 10-20 predictores. El resultado de la función de aptitud es necesariamente ligeramente reducido para cada predictor utilizado. Escribí el código R aproximado de la función de aptitud en el foro aquí ayer, es más claro.

 
mytarmailS:

no está mal, ¿qué son los círculos verdes y qué significan las flechas?

Los puntos verdes muestran que la señal será, cada serie de puntos verdes termina con un punto azul o rojo, lo que significa que la señal de Sequents para comprar o vender correspondientemente. Bueno, las flechas son obra del clasificador de Reshetov, que dice señal verdadera o falsa....

Por cierto Sequenta es atacha, úsala a tu favor....

Archivos adjuntos:
 
Dr.Trader:

También es mi opinión subjetiva que sus predictores no pueden utilizarse para predecir sus valores objetivo.

Parece que he podido articular mejor esto -

Los resultados de predicción en las propias muestras de entrenamiento se correlacionan mal, por término medio, con los resultados de las muestras de prueba.

Hay un paquete ForeCA, y tiene una función Omega que estima la "previsibilidad" de la señal. Si estima el 100% - la señal cumple algunos requisitos y es fácil de predecir. Una puntuación del 0% significa que la señal es sólo ruido e imposible de predecir.

Todavía tengo su tabla dat_test_features_experimental.RData, donde la última columna es el aumento de precio. Por ejemplo, la estimación para el eurusd = 0,83% (no 83%, exactamente 0,83%, menos de uno). Según ForeCA es imposible predecir esta serie temporal. No es que me fíe mucho de este paquete, pero su autor evidentemente entiende algo, yo lo escucharía.

Omega(dat_test_features[dat_test_features[,109] == "eurusd", 110])

No recuerdo el marco temporal con el que estás trabajando, pero si es M1 - hay una buena razón para probar más, H1 por ejemplo.

 
Dr.Trader,

Te escucho. Estoy trabajando con un horizonte de algunas horas.

En los minutos la regresión funciona bien, pero le falta el MO del oficio. En la hora, la diferencia absoluta de precios es de unos 8 pips. Qué diablos.... ¿Lo ves? Necesitas un 65_70% de precisión en la adivinación. Y a las 9, el 53-53% es suficiente para superar el spread.
 
Dr.Trader:

...

Hay un paquete ForeCA, y tiene una función Omega que evalúa la "previsibilidad" de la señal. Si estima el 100% - la señal cumple algunos requisitos y es fácil de predecir. Una puntuación del 0% significa que la señal es sólo ruido e imposible de predecir.

...

¿Qué significa "previsibilidad" en este paquete? Pensé que se refería a la capacidad de extrapolar (esa es la palabra) valores anteriores (previos). Si tomamos incrementos, entonces la herramienta que se usa mucho, muy bien desarrollada con muchos matices: ARIMA, si este modelo no pasa, entonces todo tipo de ARCH. Y el paquete ForeCA debe compararse con estos modelos.

En general, me parece que la idea original se ha perdido. Para mí, la idea original era que necesitábamos métodos que NO dependieran del modelo para determinar la capacidad de cada uno de los predictores utilizados para predecir la variable objetivo. Asegúrese de hacerlo en el nexo predictor(es)/variable objetivo. Y cuando hemos filtrado el ruido, utilizamos los modelos o sus comités ..... Pero sólo después de haber eliminado el ruido. Y el hecho de que no haya ruido viene determinado por la invariancia aproximada del rendimiento del modelo a través de las muestras. No el valor absoluto del error de predicción, sino el hecho de la igualdad aproximada de los indicadores de rendimiento, que (la igualdad) puede interpretarse como la prueba de la ausencia de sobreentrenamiento del modelo. La ausencia de sobreentrenamiento lo es todo. Si el modelo está sobreentrenado en un conjunto determinado de predictores, todo lo demás es un juego de números. Sólo interesan los modelos que no están reentrenados.

Razón de la queja: