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

 
Aleksey Vyazmikin:

¿Cuál es la entrada para la agrupación: todos los predictores de la muestra o qué?

Bueno, sí... pero también podemos experimentar.

 
Aleksey Nikolayev:

Llevaré la idea a una conclusión lógica. Supongamos que tenemos un conjunto de sistemas en el mismo activo. Cada sistema, cuando está en el mercado, mantiene una posición de volumen fijo, pero la dirección puede cambiar. Se conocen los rendimientos y las volatilidades de la estrategia. Definamos la correlación entre las estrategias utilizando la fórmula (t1-t2)/cuadrado (T1*T2) donde T1 y T2 son la duración de su tiempo en el mercado, t1 y t2 son la duración del tiempo que estas estrategias están simultáneamente en el mercado y dirigidas en la misma y opuesta dirección respectivamente. Se trata de una fórmula simplificada derivada bajo el supuesto de la proximidad del precio a la SB. Ahora tenemos todos los datos para aplicar la teoría de Markowitz y encontrar la cartera óptima.

Obviamente, no obtendremos ninguna cartera significativa de esta manera (al menos porque sólo se utiliza un activo). Necesitamos algunas modificaciones.

1) Cambiar el algoritmo de optimización (límites de los parámetros, penalizaciones). Aclarar la definición de la correlación entre estrategias.

2) Optimizar la cartera ya en el momento de crear la estrategia. Es decir, buscar estrategias basadas en la condición de optimización de la cartera en ellos. No está del todo claro cómo se puede formalizar esto de forma aplicable en la práctica, pero el enfoque parece más lógico en general. Aunque, como ya ha escrito, requeriría reescribir los algoritmos, etc. etc. No estoy seguro de que merezca la pena.

Todo lo que dices es cierto. Pero yo no tendría en cuenta sólo el tiempo de entrada en el mercado, necesitamos alguna medida de rendimiento durante este periodo, porque no basta con entrar en el mercado, sino que también hay que salir a tiempo, y aquí condicionadamente dos estrategias similares, pero una con toma fija y otra sin toma, darán alta correlación temporal pero diferentes resultados financieros. Dos estrategias similares pueden ser útiles, por ejemplo, una de ellas dará beneficios en condiciones planas y la otra dará más beneficios en condiciones tendenciales que juntas suavizarán la curva de balance.

Si no hay demasiadas estrategias, es posible su búsqueda directa y su estimación conjunta.

 
mytarmailS:

Supongo que sí... pero también podemos experimentar.

¿Y qué algoritmo debo elegir para obtener un resultado aceptable sin aleatoriedad y con un tiempo de cálculo razonable? No soy muy bueno en la agrupación.

 
Aleksey Vyazmikin:

He estudiado CatBoost, así que hablaré de él.

La profundidad del árbol se recomienda 4-6 divisiones. Esta es la profundidad que estoy tratando en general.

La división del predictor se realiza mediante tres algoritmos diferentes a elegir. Se crea la llamada cuadrícula.

Los resultados de la división son interesantes para sacarlos y verlos por uno mismo. ¿Cómo divide AlgLib los predictores en partes iguales cuando construye el árbol para el bosque?

AlgLib divide la pieza entrante por la mediana (corrección - no por el medio, sino por la mediana. ). Por ejemplo, si llegaron 100 ejemplos, ordena los valores y los divide por el valor del 50º ejemplo. Hay una opción de cuantil en el código, pero no se utiliza.

He recordado sobre XGBoost que tiene variante de división aleatoria. Parece que es lo mismo en catbust.

En general es extraño que recomienden árboles tan poco profundos.
Como he escrito antes, con un árbol tan poco profundo es poco probable que se seleccione un sector como el 20 o el 30% del valor. En el mejor de los casos, 1 o 2 veces se dividirá por medianas o por valores aleatorios en Boosts.
Si la profundidad fuera de 100, bien podría llegar a un sector de 20-30% por algún predictor.

Supongo que en Boosts se compensa con un gran número de árboles de refinamiento, que pueden usar otros predictores que no se usaron en el árbol principal, pero también estarán separados sólo 1 -2 veces.

 
Aleksey Vyazmikin:

¿Y qué algoritmo debo elegir para obtener un resultado aceptable sin aleatoriedad y con un tiempo de cálculo razonable? No soy muy bueno en la agrupación.

Sí en un remolque cualquiera (knn,som,dtwclust...), la mejor variante ciertamente mostrará experimento...

No me malinterpretes, no estoy usando lo que escribí, sólo leí tu idea y la vi desde un lado ligeramente diferente de la implementación, así que hablé... No garantizo ningún resultado

 
elibrarius:

Algib divide la porción entrante por la mediana. Por ejemplo, si vienen 100 ejemplos, ordena los valores y los divide por el valor del ejemplo número 50. Existe una variante por cuantiles en el código, pero no se utiliza.

He recordado que el XGBoost tiene una opción de división aleatoria. Parece que es lo mismo en catbust.

En general, es extraño que recomienden árboles tan poco profundos.
Como he escrito antes, con un árbol tan poco profundo es poco probable que se seleccione un sector como el 20 o el 30% del valor. En el mejor de los casos, 1 o 2 veces se dividirá por medianas o por valores aleatorios en Boosts.
Si la profundidad fuera de 100, bien podría llegar a un sector de 20-30% por algún predictor.

Supongo que en Boosts esto se compensa con el gran número de árboles de refinamiento, que pueden utilizar otros predictores que no se utilizaron en el árbol principal.

La realidad puede no ser lo que imaginamos - deberíamos intentar reproducir los algoritmos de separación de CatBoost y ver lo que realmente ocurre allí y lo correcto que es.

En cuanto a la aleatoriedad - hay una aleatoriedad en la elección de la partición de la rejilla de predicción, como no la mejor, pero al azar, si he entendido bien. Y, hay algoritmos que hacen que la pila esté dividida de forma desigual por rangos.

 
mytarmailS:

Sí, en un remolque se puede utilizar cualquiera (knn,som,dtwclust...), la mejor opción la mostrará, por supuesto, el experimento...

No me malinterpretes, no estoy usando lo que escribí, sólo leí tu idea y la vi desde un lado ligeramente diferente de la implementación, así que hablé... No garantizo ningún resultado.

¿Estoy hablando de garantías? Sólo estoy interesado en entender su idea.

 


El indicador Neuro está casi listo )) Esto es un EA, puramente un indicador que me faltaba la habilidad.
 
Zona naranja en la parte superior - predice un movimiento a la baja, verde en la parte inferior - movimiento al alza, grosor del nivel de confianza de la red neuronal. Sólo funciona en BTCUSD M1 (por ahora...).
¿Está bien? ))
 
Evgeny Dyuka:
La zona naranja de arriba predice un movimiento a la baja, la verde de abajo un movimiento al alza. Sólo funciona en BTCUSD M1 (por ahora).
¿Está bien? ))

Yo diría que no está mal, pero es frustrante.

Básicamente funciona como un indicador normal de sobrecompra/sobreventa.

A veces está bien, a veces está mal, no debería ser...

¿Has probado esta red para el comercio en absoluto? Mi experiencia me dice que no va a ganar dinero...

A no ser que pongas un filtro de "confianza" de la red.