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

 
elibrarius:
¿Son robots?
Trabajar día y noche sin dormir ni descansar ))))

Zonas horarias... pero sigue siendo impresionante))))

 
elibrarius:

7 dígitos son suficientes.

Aquí hay un histograma del equilibrio: los modelos nuevos en azul, los antiguos en rojo.

Todos los ajustes son iguales.

Relevancia del predictor



Los modelos utilizan el tiempo al máximo. Es difícil decir si es bueno o malo, pero es algo malo cuando algún predictor obtiene una ventaja debido a la similitud con los análogos.

Recall

Precisión

Al final hay una diferencia, no muy grande por supuesto, pero aún así.

El balance no es malo.


 
Aleksey Vyazmikin:

Aquí hay un histograma del equilibrio: los modelos nuevos en azul, los antiguos en rojo.

Todos los ajustes son iguales.

Relevancia del predictor



Los modelos utilizan el tiempo al máximo. Es difícil decir si es bueno o malo, pero es bastante malo cuando algún predictor obtiene una ventaja a costa de la similitud con sus homólogos.

Recall

Precisión

Al final hay una diferencia, no muy grande por supuesto, pero aún así.

No está mal.


Entonces, ¿el tiempo de seno + coseno es mejor que sólo los números?
¿Alimentas las actas en la versión antigua? Si no es así, introdúzcalos para realizar una comparación adecuada. La versión seno + coseno los tiene en cuenta. O eliminar los minutos de syn+cos si es más rápido.
 
elibrarius:
Entonces, ¿es mejor el tiempo de seno + coseno que sólo los números?
¿Alimentas las actas en la versión antigua? Si no es así, introdúzcalos, para una comparación adecuada. La versión seno + coseno los tiene en cuenta. O quitar los minutos de syn+cos si es más rápido.

La métrica que proporcioné - parece peor. Es más probable que la razón acierte con un conjunto aleatorio de predictores para construir un árbol de predicción dividido asociado al tiempo.

Sí, no usaba minutos en mi antigua versión.

 
Aleksey Vyazmikin:

La métrica que he proporcionado - parece peor. La razón es la alta probabilidad de acertar con un conjunto aleatorio de predictores para construir un árbol de división del predictor asociado al tiempo.


¿Hiciste un catbustom? Allí no debería haber una selección aleatoria de predictores. Los impulsos utilizan todos los predictores, pero los árboles poco profundos.

En un bosque aleatorio, sí. Se establece, por ejemplo, mediante

max_features{"auto", "sqrt", "log2"}, int o float, default="auto "

El número de características a tener en cuenta a la hora de buscar el mejor split:


Aleksey Vyazmikin:

Sí, no usaba minutos en mi antigua versión.

¿Quizás empeoraron el resultado? Intenta en la nueva versión eliminarlas.

Eso es todo, debería ser una analogía completa a su antigua versión

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


 
elibrarius:

¿Hiciste el catbustom? Allí no debería haber una selección aleatoria de predictores. Los impulsos utilizan todos los predictores, pero los árboles poco profundos.

En un bosque aleatorio, sí. Fijado por, por ejemplo


¿Tal vez empeoraron el resultado? Intenta en la nueva versión eliminarlas.

Allí, debería ser una analogía completa con su antigua versión.

if(nameInd[nInd]=="Hour")        {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.hour)*360.0/24.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}

if(nameInd[nInd]=="WeekDay")     {CopyTime        (sim,per,startDt,n_bar+1,dtm);TimeToStruct(dtm[0],dts);ArrayResize(tmp,1);tmp[0]=(double)(dts.day_of_week)*360.0/7.0;tmp[0]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));}


En cuanto a la aleatoriedad, hay suficiente.

¿No te sorprendió que tuviera tiempos separados con el seno y el coseno, mientras que ahora entiendo que debe haber uno, pero se usan el seno y el coseno?

De ahí la pregunta, ¿qué es buf, y por qué cuando es igual a cero, tomamos un coseno?

 
Aleksey Vyazmikin:

En cuanto a la aleatoriedad, hay mucha.

¿No te ha sorprendido que tenga tiempos separados con el seno y el coseno, y según entiendo ahora, debería haber uno, pero se usa el seno y el coseno?

De ahí la pregunta, ¿qué es buf, y por qué cuando es igual a cero, entonces tomamos el coseno?

El buf es el número del buffer.
Por el momento hay 2. Hay indicadores con 1 buffer, hay más de 2.

Recorro el número de búferes en mi bucle al componer las columnas para el conjunto de entrenamiento.

Tienes que alimentar tanto el seno como el coseno, no sólo uno. Consulte https://megaobuchalka.ru/9/5905.html para obtener una explicación.

Losdatos numéricos parecen ser innecesarios de codificar. Pero en algunos casos es razonable codificar también datos numéricos [22]. Al codificar los datos numéricos, es necesario tener en cuenta el significado de los datos, la ubicación de los valores en el rango de valores y la precisión de la medición de los datos. Esto se ilustra con ejemplos. Por ejemplo, la codificación permite tener en cuenta el significado de los datos. Si la entrada a una red es un ángulo entre dos direcciones, por ejemplo, la dirección del viento, nunca es apropiado introducir el ángulo (en grados o radianes) en la red. Esta entrada haría que la red "aprendiera" que 0 grados y 360 grados son la misma cosa. Tiene más sentido introducir el seno y el coseno de ese ángulo como entrada. El número de señales de red de entrada aumenta, pero los valores de entrada cercanos se codifican mediante señales de entrada cercanas.

Виды трансформации данных — Мегаобучалка
Виды трансформации данных — Мегаобучалка
  • megaobuchalka
  • megaobuchalka.ru
Трансформация данных — это преобразование данных к определенному представлению, формату или виду, оптимальному с точки зрения конкретного метода анализа [6]. Для разных задач анализа могут потребоваться разные методы трансформации. Типичными средствами трансформации данных являются следующие. Преобразование временны́х данных . Оптимизация...
 
elibrarius:

número de buffer.
Para el tiempo hay 2.Hay indicadores con 1 buffer, hay más de 2.

Hago un bucle a través del número de búferes cuando se componen las columnas para el conjunto de entrenamiento.

Tienes que alimentar tanto el seno como el coseno, no sólo uno. Explicación de por qué - aquí https://megaobuchalka.ru/9/5905.html

Así que lo hice bien originalmente - sólo que ya no recuerdo lo que estaba haciendo...

   double tmp[4];
   int nInd=0;
   MqlDateTime dts;
   double pi=3.1415926535897932384626433832795;
   for(int buf=0; buf<2; buf++)
   {
      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/1440.0;
      //tmp[buf]=(double)(dts.hour*60+dts.min)*360.0/24.0;
      tmp[buf]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));

      TimeToStruct(iTime(Symbol(),PERIOD_CURRENT,0),dts);
      tmp[buf+2]=(double)(dts.day_of_week*1440+dts.hour*60+dts.min)*360.0/10080.0;
      //tmp[buf+2]=(double)dts.day_of_week*360.0/7.0;
      tmp[buf+2]=(buf==0?MathSin(tmp[0]*pi/180.0):MathCos(tmp[0]*pi/180.0));
   }
 
¿No se puede hacer con una sola entrada en lugar de 4?
Sólo el número de minutos desde el lunes 0:00 =
dts.day_of_week*1440+dts.hour*60+dts.min
Pero es una mala idea. Para llegar, por ejemplo, a los primeros 10 minutos de cada hora, tendrías que hacer muchas divisiones.
Probablemente sea mejor como tú: sólo días, horas. Y tal vez minutos.
 
elibrarius:
¿No podemos hacer una sola entrada en lugar de 4?
Sólo el número de minutos desde el lunes 0:00 = Aunque es una mala idea. Para llegar, por ejemplo, a los primeros 10 minutos de cada hora, tendrías que hacer muchos parciales.
Probablemente sea mejor como tú: sólo días, horas. Y tal vez minutos.

Ya han empezado a entrenar sin minutos - vamos a ver.

Sigo utilizando el tiempo de 1/4 de barra: horas, 4 horas, días.

Razón de la queja: