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

 
elibrarius #:

Hoy se ha añadido un predictor de distancia de la barra actual. Puedes tener un número o sólo una hora. Me tomé el tiempo.

Todo está más o menos claro con el tiempo cíclico. No entiendo mucho sobre el tiempo lineal - ¿será diferente para la bandeja y el avance? ¿O se toma la "barra de corriente" de forma independiente para cada muestra?

Tuve la idea de tomar una regresión logística lineal ordinaria y ver la significación del coeficiente de diferencia con respecto a cero en el tiempo (o en alguna función del tiempo) o comparar esta significación con la de otros predictores.

 
Aleksey Nikolayev #:

El tiempo cíclico está más o menos claro. No está muy claro con el tiempo lineal - ¿será diferente para una bandeja y un delantero? ¿O la "barra actual" es diferente para cada muestra?

Tuve la idea de tomar una regresión logística lineal ordinaria y ver la significación de un coeficiente de diferencia con respecto a cero en el tiempo (o en alguna función del tiempo) o comparar esta significación con la de otros predictores.

En general, la idea de alimentar el tiempo lineal no es buena. Por cierto, sí: en la bandeja es diferente en cada línea y en el forward analizamos sólo 1 línea a la vez, es decir, el tiempo siempre será actual (que no lo era en la bandeja), y el número siempre = 0 (y en la bandeja de 0 a 5000). Es decir, no se puede suministrar ni la hora ni el número de bandeja. Esto es lo que mostró la prueba.
 
Así que una onda sinusoidal a la entrada
 

Una onda sinusoidal es para el tiempo cíclico como la hora del día o el día de la semana. Y allí originalmente (Aleksey Vyazmikin) hablaba del tiempo lineal ordinario para tratar de captar el efecto de la no estacionariedad en forma de patrones decadentes. En mi opinión, para resolver este tipo de problemas deberían utilizarse modelos sencillos y fácilmente interpretables. Los modelos complejos son para fines prácticos, los simples para el análisis preliminar.

Sin embargo, existen dudas sobre la utilidad práctica de este tipo de manipulaciones en este caso concreto. Lo más probable es que nuestros patrones no cambien uniformemente a lo largo del tiempo, sino cíclicamente (pero sin periodicidad).

 
Aleksey Nikolayev #:

Una onda sinusoidal es para el tiempo cíclico como la hora del día o el día de la semana. Y allí originalmente (Aleksey Vyazmikin) hablaba del tiempo lineal ordinario para intentar captar el efecto de la no estacionariedad en forma de decaimiento del patrón. En mi opinión, para resolver este tipo de problemas deberían utilizarse modelos sencillos y fácilmente interpretables. Los modelos complejos son para fines prácticos, los simples para el análisis preliminar.

Sin embargo, existen dudas sobre la utilidad práctica de este tipo de manipulaciones en este caso concreto. Lo más probable es que nuestras regularidades cambien con el tiempo no de manera uniforme, sino cíclicamente (pero sin periodicidad).

Es como en los fractales. Son cíclicos pero no periódicos. Todo es correcto.
 
elibrarius #:
En general, la idea de alimentar el tiempo lineal es mala. Por cierto, sí: en la bandeja es diferente en cada línea y en el forward analizamos sólo 1 línea a la vez, es decir, el tiempo siempre será actual (que no estaba en la bandeja), y el número siempre = 0 (y en la bandeja de 0 a 5000). Es decir, no se puede suministrar ni la hora ni el número de bandeja. Esto es lo que ha demostrado la prueba.

Aunque lo intentaré de nuevo con el número... Porque el número cero se incluirá en la parte del árbol que < alguna división (por ejemplo <5000) es decir, se utilizará una parte del árbol para el reenvío. No todo. Algo que decidí tomar tiempo para probar, por error.

Pero, ¿cómo hacer una división por número estaba a una distancia óptima para adelante?

 

Lo he probado. El modelo con 5000 barras de historia para aprender, después de añadir el número de línea como característica, para Comprar mejoró, para Vender en algunos aspectos peor, en otros mejor.
Al mismo tiempo, si enseñamos en 10000 bares, ambos modelos fallan. Es decir, no se ha cumplido la tarea principal de añadir el número de línea para la determinación automática de la longitud necesaria del historial.

Hasta ahora, sólo tenemos que optimizar/seleccionar manualmente la longitud del historial para el entrenamiento.

 

Parece que la idea básica del uso de las métricas personalizadas de los operadores es que se utilicen en la fase de selección del modelo. En la fase de formación, se utilizan las métricas estándar. Probablemente, es algo parecido a lo que Maxim Dmitrievsky escribió antes sobre este tema.

Un pequeño artículo para ilustrar el enfoque.

The training dilemma: loss vs profit function?
The training dilemma: loss vs profit function?
  • Haris (Chariton) Chalvatzis
  • medium.com
In the world of machine learning, models are trained by minimizing some variation of a loss function. For example, when we try to predict the median house value of a specific zip code, we are dealing with a regression type problem and prime suspects for the loss function, to be used to train our model, are the Mean Squared Error (MSE), Mean...
 
Aleksey Nikolayev #:

Aparentemente, la idea principal del uso de las métricas del operador personalizado es que se utilizan en la etapa de selección del modelo.

Aunque hay algunas ideas de utilizar métricas personalizadas en la etapa de formación. Al mismo tiempo, no son del todo similares a las de los comerciantes, sino que son versiones modificadas de las estándar para MO.

Tal vez las métricas de los comerciantes conduzcan a una mala condicionalidad. Esto recuerda, por ejemplo, al uso de la entropía cruzada en lugar de la tasa de error original de interés (se dice que esta última es poco sensible).

Es necesario reducir de alguna manera las diferencias teóricas y prácticas entre la formación en IR y la optimización en el probador.

 
Aleksey Nikolayev #:

Aunque hay algunas ideas de utilizar métricas personalizadas ya en la fase de formación. Sin embargo, no son exactamente como las métricas de los comerciantes, sino variantes retocadas de las métricas estándar de MOE.

Tal vez las métricas de los comerciantes conduzcan a una mala condicionalidad. Se asemeja, por ejemplo, a utilizar la entropía cruzada en lugar de la frecuencia de error original de interés( dicen de la poca sensibilidad de esta última).

Confía pero verifica.
Aleksey Nikolayev #:
Debemos reducir de algún modo las diferencias teóricas y prácticas entre la formación en MO y la optimización en el probador.

Cuando hacía modelos con TP/SL la precisión era absoluta. En el modelo y en el probador, las operaciones se abrieron en las mismas barras y se cerraron con el mismo TP/SL. Pero la rentabilidad fue de alrededor de 0.
Estaba probando usando precios abiertos. Pero hay un problema con ellos... En la barra se utiliza el diferencial mínimo.

Es decir, parte de las órdenes y TP/SL en el probador se activarán en

PIDE ALTO = OFERTA ALTA + diferencial mínimo.

Los que se activarían en el comercio real no funcionarán

ASK HIGH (real) = BID HIGH + Spread calculado por el ASK máximo

Un par de veces he sugerido a los desarrolladores que guarden en barras no el diferencial mínimo, sino

Diferencia = PIDIDA ALTA - OFERTA ALTA.

Con este diferencial, la prueba por precios abiertos estaría más cerca de la prueba por ticks reales.

Por ejemplo, el spread mínimo de una barra = 0,00002, mientras que el Spread = ASK HIGH - BID HIGH = 0,00020. Es decir, en realidad el precio ASK era mayor que el del probador en 0,00018. Dónde podrían haberse producido las aperturas/cierres de operaciones.

Pero no ha habido respuesta de MetaQuotes (en ruso)

PD: Para ser más precisos, también hay que calcular el diferencial Low Ask.