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

 
Aleksey Panfilov:

Muy interesante, ¿podría detallar la medición de la capacidad de predicción?

¿Y sobre todo qué medir?

He escrito, dado gráficos, publicado código - el manitas lo ha enterrado todo en estas 1000 páginas...

Me da pereza repetirlo. El más utilizado aquí es vtreat, yo no lo uso. Lo principal es pensar en este tema y descartar todo lo demás.

 
Aleksey Vyazmikin:

Entonces, ¿no has planteado la cuestión de cuál debe ser la configuración de ZZ?

El parámetro ZZ es diferente para cada instrumento y marco temporal. Por ejemplo para EURUSD M15 un buen valor inicial de 15 pips (4 dígitos). También depende de los predictores que se utilicen. Es una buena idea optimizar todos los parámetros de los predictores y de ZZ. Por lo tanto, es deseable tener predictores no paramétricos, ya que facilita mucho la vida. En este sentido, los filtros digitales dan buenos resultados. Usando conjuntos y combinación en cascada obtuve una precisión media = 0,83. Este es un resultado muy bueno. Mañana le enviaré un artículo para que lo verifique, en el que se describe el proceso.

Buena suerte

 
Vladimir Perervenko:

El parámetro ZZ es diferente para cada instrumento y marco temporal. Por ejemplo para EURUSD M15 un buen valor inicial de 15 pips (4 dígitos). También depende de los predictores que se utilicen. Es una buena idea optimizar todos los parámetros de los predictores y de ZZ. Por lo tanto, es deseable tener predictores no paramétricos, ya que facilita mucho la vida. En este sentido, los filtros digitales dan buenos resultados. Usando conjuntos y combinación en cascada obtuve una precisión media = 0,83. Este es un resultado muy bueno. Mañana enviaré un artículo para su verificación, que describe el proceso.

Buena suerte

Extremadamente interesante. Lo estoy deseando.

 
Grial:

Si puedes compartir tus filas de oferta y demanda de 2004 por fecha actual lo intentaré, suelo aprender de 1 a 3 años y probar por el 20-30%.

conjunto de datos, lern y test, así como series brutas de ducas

Bonita curva :) Pero es poco probable que intrigar a nadie, no está claro qué tipo de software, ¿cómo se calcula esta curva. En tus conjuntos de datos obtuve no mucho más del 52% de precisión, por la forma en que terminas los marcadores antes de los chips, yo los corté en los míos. Tengo que añadir más precios de corte de los que obtuvo el lern y la prueba, para luego ejecutar el resultado del clasificador en el bulltester.

PS: de hecho, cualquier probador de curvas de rendimiento y como resultó informes de calidad de clasificación\Nregresión no puede probar nada al público. Hace algún tiempo en un grupo cerrado de algotrading hubo una idea interesante para acordar una interfaz para el intercambio de modelos ya hechos en C++ dll (que de todas formas todos los algotraders y maquinistas utilizan) que toman como entrada un montón de filas en json pasado y luego complementado con nuevos datos (candlesticks, ticks, tickans, etc.), y muestra las previsiones. En definitiva, la idea es intercambiar una especie de "cajas negras" estandarizadas que puedan ser probadas cuando llegue el futuro, en el probador, cuando los datos estén disponibles. Esta es la única manera de entender si el modelo funciona o no, bueno, también se puede usar web-api, pero es engorroso mantener una VPN para esto, especialmente si hay muchos modelos. Y por eso todas estas cifras de precisión, ratio de Sharp etc. tienen poco sentido, hay 100500 formas que no encajan conscientemente y otras tantas que encajan conscientemente y nadie lo va a entender, se necesitan más pruebas vestigiales.

 
Maxim Dmitrievsky:

Si se trata de clasificación, se puede estimar con el error relativo de clasificación o logloss (entropía cruzada), si se trata de regresión, rmse servirá. También se puede medir el diferencial de error en una traza y una prueba y conseguir la menor diferencia.

Sólo los ajustes se eligen de manera que la traine, la validación y la prueba tengan aproximadamente la misma separación en las clases predichas.

De lo que se trata es de que un bosque puede ser fácilmente sobreentrenado incluso por árboles poco profundos, y ciertamente si los árboles son creados a puras hojas, habrá sobreentrenamiento con una mayor probabilidad.

¿Cómo se puede evitar esto? Bueno, ya estamos otra vez con lo de "la basura entra y sale". ¿Existe algún predictor no "basura" en la naturaleza?

La idea es tomar el ROC_AUC y el valor a lo largo del eje horizontal debería dejar de crecer si hay algo bueno en el predictor. Pero después de buscar en todos ellos, no pude encontrar ninguno.

La línea estrictamente plana se dibuja hacia arriba.

Pero ninguno de los indicadores hará subir el mercado por la historia, claro que no).

Lo he probado muchas veces pero no me ha impresionado tanto.

 
forexman77:

Los ajustes se eligen de forma que el alumno, la validación y la prueba tengan aproximadamente la misma proporción de clases predichas.

Un bosque puede ser fácilmente sobre-entrenado incluso por árboles poco profundos, y ciertamente si los árboles son creados hasta las hojas puras, habrá sobre-entrenamiento con una probabilidad más alta.

¿Cómo se puede evitar esto? Bueno, ya estamos otra vez con lo de "la basura entra y sale". ¿Hay algún predictor no "basura" en la naturaleza?

La idea es tomar el ROC_AUC y el valor a lo largo del eje horizontal debería dejar de crecer si hay algo bueno en el predictor. Pero después de buscar en todos ellos, no pude encontrar ninguno.

La línea estrictamente plana se dibuja hacia arriba.

Pero ningún indicador hará subir el mercado por la historia).

Si el error en el gráfico validado es el mismo que en la traza, todo debería funcionar. Obviamente, no lo hace

 
Maxim Dmitrievsky:

Si el error en la sección válida. es el mismo que en el aprendiz, entonces todo debería funcionar. Obviamente, no.

Bueno, no exactamente idéntico, casi. Si es completamente idéntico, es un árbol de profundidad tres, la imagen fue dada.

Se elige la profundidad 15, que mostró la prueba más o menos.

En unos 20 minutos publicaré el desglose por clases.

 

Profundidad tres:

[[8010 7122]
 [7312 8410]]
трайн наоборот

[[8026 7105]
 [7209 8512]]
трайн 

[[5538 5034]
 [5117 5395]]
предсказание по обученной модели на трайн, эти данные не участвовали в обучении.
Поясню данные для теста берутся не из не использованных выборок, это данные, которые вообще не доступны для
алгоритма в процессе обучения(находятся вне временного промежутка участка обучения).

Profundidad 15:

[[7667 7464]
 [7227 8494]]
трайн наоборот

[[14430   702]
 [  661 15061]]
трайн 

[[5405 5167]
 [4958 5554]]
тест

Al mismo tiempo, aunque la profundidad 15 conduce claramente al sobreentrenamiento, el delantero es mejor con ella. También en los otros modelos que tengo. Cuando no se sobreajusta mucho.

Delanteros:

15

3

Resulta que para predecir las etiquetas de la clase que se está buscando 4-6% más que el negativo...

 
Gianni:

Bonita curva :) Pero es poco probable que intrigar a nadie, no está claro qué tipo de software, ¿cómo se calcula esta curva. En tus conjuntos de datos obtuve no mucho más del 52% de precisión, por cierto, tus marcadores terminan antes de los chips, yo los recorté en los míos. Tengo que añadir más precios de corte de los que obtuvo el lern y la prueba, para luego ejecutar el resultado del clasificador en el bulltester.

PS: de hecho, cualquier probador de curvas de rendimiento y como resultó informes de calidad de clasificación\Nregresión no puede probar nada al público. Hace algún tiempo en un grupo cerrado de algotrading hubo una idea interesante para acordar una interfaz para el intercambio de modelos ya hechos en C++ dll (que de todas formas todos los algotraders y maquinistas utilizan) que toman como entrada un montón de filas en json pasado y luego complementado con nuevos datos (candlesticks, ticks, tickans, etc.), y muestra las previsiones. En definitiva, la idea es intercambiar una especie de "cajas negras" estandarizadas que puedan ser probadas cuando llegue el futuro, en el probador, cuando los datos estén disponibles. Esta es la única manera de entender si el modelo funciona o no, bueno, también se puede usar web-api, pero es engorroso mantener una VPN para esto, especialmente si hay muchos modelos. Y todas estas cifras, precisión, ratio de Sharp, etc no significan mucho, hay 100500 formas de no ajustar conscientemente y otras tantas conscientemente y nadie lo entenderá, se necesitan mejores pruebas.

Hay tuplas nulas de características al principio de las muestras de datos de entrenamiento y de prueba, probablemente no había suficiente historia para calcularlas, y el algoritmo no controló eso, así que para un trabajo correcto también deberían ser eliminadas.

¿Dónde está este grupo, si no es un secreto, y es posible buscar allí?

 
forexman77:

Profundidad tres:

Profundidad 15:

Al mismo tiempo, aunque la profundidad 15 conduce claramente al sobreentrenamiento, el delantero es mejor con ella. También en los otros modelos que tengo. Cuando no se sobreajusta mucho.

Delanteros:

15

3


Creo que necesitas reducir el número de operaciones, parece que en cada barra...