¿Hay algún patrón en el caos? ¡Intentemos encontrarlo! Aprendizaje automático a partir de una muestra concreta. - página 5

 
elibrarius #:
Necesitamos un resultado financiero exacto de errores. Sin ellos la línea de balance no es fiable.
Fin. res. si elegimos 0 (no se puede incluir, siempre será 0), si 1, si -1. Siempre, aunque marque como 0 la clase no operar. El modelo será erróneo y es necesario conocer el precio del error.

No es el modelo que determina la dirección de entrada, por lo que si hay un error con la dirección, no habrá entrada y por lo tanto no hay pérdida.

 
Aleksey Vyazmikin #:

No es el modelo el que determina la dirección de entrada, por lo que si hay un error con la dirección, no habrá entrada y por lo tanto no habrá pérdida.

Escribí sobre la clase 0, que a veces se predice 1 o -1. Escribiste sobre ello que el resultado financiero es desconocido.

 
Aleksey Vyazmikin #:

No es el modelo el que determina la dirección de entrada

Si no es el modelo el que lo determina, entonces no hay necesidad de enseñarlo.

 
elibrarius #:

Escribí sobre la clase 0, que a veces se predice que será 1 o -1. Usted escribió sobre él que el resultado financiero es desconocido.

Simplemente no abandone la dirección.

Si la clase es cero y la dirección es +1 y se clasificó como 1, habrá una pérdida - tomar cualquier columna con el resultado financiero módulo.

Si la clase es cero y la dirección es +1, pero se clasificó como -1, no habrá entrada ni pérdida.

Si la clase es cero y la dirección es -1, y se clasificó como -1, habrá una pérdida - tome cualquier columna con el resultado financiero modulo.

Si la clase es cero y la dirección es -1 y se clasificó como 1, no habrá entrada, no habrá pérdida.

elibrarius #:

Si no es el modelo el que lo determina, no hay razón para enseñarlo.

La lógica aquí es simple - una serie de predictores, o incluso sus valores, gravitan más hacia una dirección particular del movimiento del precio. Cuando enseñamos todo junto por clase 1 y 0, estamos esencialmente seleccionando predictores que determinan un fuerte movimiento en cualquiera de las direcciones - y normalmente no hay muchos de ellos, pero si damos a cada dirección su propia clase, algunas contradicciones estadísticas desaparecerán y el modelo ya puede incluir indicadores de un predictor en diferentes extremos de su valor, por ejemplo RSI 70/30 puede separarse fácilmente.

En teoría, la clase cero es plana, por lo que debería ser lo suficientemente similar para cada dirección. Una vez más, dividí la muestra en dos partes a la vez - por dirección de entrada y mejoró los resultados del aprendizaje - es decir, un mayor porcentaje de modelos cumplieron el criterio del umbral de beneficios.

 
Aleksey Vyazmikin #:

Si la clase es cero y la dirección es +1 y se clasificó como -1, no habrá entrada ni pérdida.

Puede que el profesor no entre. Pero el modelo cometerá un error y entrará en el mercado. El modelo no conoce los valores 0 y +1 del profesor, recibió la previsión -1 y negociará

 
elibrarius #:

Puede que el profesor no entre. Pero el modelo se equivocará y entrará en el mercado. ¿O tiene un operador condicional que prohíba al modelo operar como predijo? Me temo que no tengo donde poner tal operador para construir un equilibrio.

Por el momento no hay ningún operador, pero hay datos para ello y están escritos en la columna "Target_P" - por lo que todo puede funcionar con bastante éxito.

He aquí un ejemplo de la lógica de código que he esbozado para construir la balanza

int Prognoz=0;//Сюда запишем прогноз
int Target_100[];//Фактическая целевая
int Target_P[];//Тип сделки - покупка/продажа
double Target_100_Buy[];//Финансовый результат от покупки
double Target_100_Sell[];//Финансовый результат от продажи
double Fin_Rez[];//Финансовый результат
int Strok_Total=0;//Всего строк
int Index_Fin_Rez=1;//Считаем число классифицированных 1 и -1 - это размер массива баланса и индекс массива Fin_Rez
ArrayResize(Target_100,Strok_Total);
ArrayResize(Target_P,Strok_Total);
ArrayResize(Target_100_Buy,Strok_Total);
ArrayResize(Target_100_Sell,Strok_Total);
ArrayResize(Fin_Rez,Strok_Total);
ArrayInitialize(Fin_Rez,0);
/*
Прочли данные файла в массивы - не знаю как реализовано у Вас
*/
for(int i=0; i<Strok_Total; i++)
{
/*
Сделали прогноз
*/
   if(Prognoz==-1 && Target_P[i]==-1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Sell[i];
      Index_Fin_Rez++;
   }
   if(Prognoz==1 && Target_P[i]==1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Buy[i];
      Index_Fin_Rez++;
   }
}
ArrayResize(Fin_Rez,Index_Fin_Rez);
 
Aleksey Vyazmikin #:

De momento no hay operador, pero hay datos para él y se escriben en la columna "Target_P" - así que todo puede funcionar bastante bien.

He aquí un ejemplo de la lógica de código que esbocé para construir la balanza

El modelo sólo debe operar según la previsión. Si se calcula el resultado utilizando el maestro - esto es asomarse en el futuro. El comercio debe ser sólo por la previsión. Usted no tendrá Target_100_Sell en el futuro real.

El modelo no sabe sobre 0 y +1 del profesor, tiene -1 pronóstico y negociará. Sólo necesita saber el resultado financiero de cada variante de previsión.

 
elibrarius #:

El modelo sólo debe operar según la previsión. Si calcula el resultado utilizando el maestro, está atisbando el futuro. Las operaciones deben realizarse únicamente según las previsiones.

El modelo no sabe sobre 0 y +1 del maestro, obtuvo -1 pronóstico y negociará. Sólo necesita saber el resultado financiero de cada variante de previsión.

¿Qué tiene que ver el mirar con esto? Cambiamos el objetivo para mejorar el aprendizaje, no para cambiar la lógica del EA. La lógica es que sabemos la dirección de entrada sin el modelo, y el modelo debe decirnos si debemos entrar o no.

 
Aleksey Vyazmikin #:

y el modelo debería decirte si entrar o no.

Ya lo hemos comprobado.

 
elibrarius #:

Ya lo hemos comprobado.

Mire, tenemos puntos de entrada - líneas de muestra, y tenemos un resultado financiero definido por los puntos de salida, es decir, los lugares donde se establece un stop loss u otra señal. Usted quiere entrar en el mercado en contra de la estrategia, es decir, comprar donde debería vender, si el modelo lo dice, y para ello necesita definir nuevos puntos de salida. Surge la pregunta, si el punto de salida no ha aparecido todavía, pero el punto de entrada ha aparecido, ¿qué debe hacer entonces - cerrar y preguntar al modelo sobre la dirección de entrada, o qué?

Razón de la queja: