No me digas entonces que el AT no funciona - página 24

 

En general, podemos decir que se ha resuelto el secreto del ajuste de CT en los perceptrones:


Supongamos que tenemos tres secciones adyacentes de datos históricos: A, B, C

Si tenemos ajuste en B y C, y OOS en A, entonces las señales falsas serán cortadas por el filtro: PerceptronA = signum(signum(PerceptronB) + signum(PerceptronC))

Si tenemos ajuste en A y B y OOS en C, las señales falsas son cortadas por el filtro: PerceptronC = signum(signum(PerceptronA) - signum(PerceptronB))


Aquí se aplican las leyes de la aritmética, es decir: si A = B + C, entonces: C = A - B


donde:

signum(x) es una función signo, es decir, su valor es igual en función del argumento:

signum(x) = 0 si x = 0

signum(x) = 1 si x > 0

signum(x) = -1 si x < 0

Es decir, las señales comerciales deben ser consistentes para una prueba de OOS exitosa en el pasado e inconsistentes para una prueba de OOS exitosa en el futuro.


Ahora está bastante claro por qué la TS en los perceptrones, si se optimiza sólo para una única sección de la historia, tendrá un ajuste en el futuro. Al fin y al cabo, si dividimos la parte optimizada en dos partes y tenemos en cuenta que las señales en ellas deben estar desajustadas, obtendremos 0 en la diferencia, es decir, ninguna señal, ya que tratamos con incertidumbre. Como resultado, en lugar de una señal de trading obtenemos SB, lo que lleva a la pérdida de aproximadamente el spread.

 

¡Muy bien!

Supongamos que tenemos tres secciones vecinas de datos históricos: A, B, C y una sección futura D

Si tenemos un ajuste en B y C, entonces

1. Para obtener beneficios en la parcela A, debemos abrir cuando las señales B y C sean coherentes,

2. Y para obtener beneficios en la zona D debemos abrir cuando las señales B y C sean discordantes.


¿Qué coño es esto, T. Reshetov? Aquí está la implementación del algoritmo para abrir/cerrar posiciones:

//************************************************************          
void T_SetSignales(int PASS, bool& BUY_Sign, bool& BUY_Stop, bool& SELL_Sign, bool& SELL_Stop, int& LastBar )  
  {      
   BUY_Sign  = false;
   BUY_Stop  = false;
   SELL_Sign = false;
   SELL_Stop = false;
   
   int P1 = perceptron1();
   int P2 = perceptron2();
   
  switch(PASS)
   {
    case 1 : if (P1 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 2 : if (P2 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 3 : if (  (P1 + P2)  > 0)     {BUY_Sign  = true; SELL_Stop = true;} 
             if       (  (P1 + P2)  < 0)     {SELL_Sign = true; BUY_Stop  = true;}
             if         (  P1 > 0 &&  P2 < 0)  {SELL_Stop = true; BUY_Stop  = true;}
             if         (  P1 < 0 &&  P2 > 0)  {SELL_Stop = true; BUY_Stop  = true;}
             break; 
   }  // switch(PASS)
   return;  
  } //  void SetSignales ()       
//************************************************************          

Если вас не затруднит, поправьте.
 

Юрий Васильевич, хотелось бы обратить ваше внимание, что история самого последнего/правого интервала подгонки-оптимизации

не учитывается в вашей программе автоматизации подгонки-оптимизации.

Если я в 23 часа сегодня готовлю программу gold_dust для работы с начала следующего дня, то для Н1 пропадают 23 бара.

 

more:

Yuri Vasilievich, me gustaría llamar su atención sobre el hecho de que la historia del intervalo de optimización de ajuste más reciente/derecho

no se tiene en cuenta en su programa de automatización de la adaptación.

Si estoy preparando un programa gold_dust a las 11 de la noche de hoy para que funcione desde el principio del día siguiente, entonces faltan 23 barras para H1.



1. No Vasilyevich, sino Vyacheslavovich.

2. No en mi programa, sino en el probador de estrategias de MT4

 
Reshetov:

1. No Vasilyevich, sino Vyacheslavovich.

2. No en mi programa, sino en el probador de estrategias de MT4

1. Pido disculpas por la errata.

2. Siempre que cargue el terminal MT4 para su ejecución, será usted quien establezca la fecha más a la derecha del intervalo para el comprobador de estrategias igual a la fecha actual,

excluyendo así el día actual. Sería más natural establecer el día siguiente como el límite derecho de todo el intervalo de pruebas,

entonces el día actual se incluirá en el intervalo de prueba.

 
Farnsworth:Comprueba la aleatoriedad de los nuevos gráficos de rentabilidad resultantes.
Por favor, explique este punto, Sergey. ¿Qué hay que comprobar y qué tipo de aleatoriedad?
 
Mathemat:
Ahora, por favor, elabore este punto, Sergei. ¿Qué hay que comprobar y qué tipo de aleatoriedad?
De alguna manera yo también me interesé, pero era demasiado tímido para preguntar)))) (para no hacer el ridículo:)))
 
Mathemat:
Por favor, entra en detalles a partir de este punto, Sergei. ¿Qué hay que comprobar y qué tipo de aleatoriedad?

Puede que haya dicho alguna tontería, pero no soy matemático, sólo estoy aprendiendo :o) Mi razonamiento es: ¿qué es el comercio? Puedo dar muchas definiciones, pero una de ellas, por ejemplo, puede ser: es un proceso de transformación de la "curva de cotización" en "curva de depósito". Al fin y al cabo, está claro que se puede juzgar la calidad de un proceso de negociación por la curva de depósito (o de saldo). El proceso de negociación ideal transforma la curva de cotización en la línea de equilibrio ideal de pendiente positiva.

He tomado prestada la curva de equilibrio de otros para fines ilustrativos (sin autorización):

Si yo, por ejemplo, soy un inversor o un comerciante, y pienso en comprar/confiar/verificar un determinado sistema de comercio, en otras palabras, hacer algún tipo de evaluación objetiva del proceso de comercio en sí, probablemente hay muchas opciones para lograrlo. Sólo trato de examinar la curva resultante para ver la aleatoriedad del resultado. Al fin y al cabo, el hecho de que ahora se haya obtenido un saldo positivo no dice realmente nada.

Para investigar las series temporales de la curva de equilibrio, utilizo lo siguiente:

  • criterios de tendencia y aleatoriedad (rango, serie, inversión, criterio de autocorrelación, etc. hay muchos)
  • análisis fractal

Siempre compruebo de esta manera, exactamente esta comprobación y rechaza muchas de mis hermosas curvas con balance positivo, porque hay fragmentos al azar.

P.D.: aquí están mis dudas al ver dicha curva. Está demasiado torcido :o)

Apéndice

Me olvidé de añadir uno de los criterios importantes. Si las características fractales de un proceso de cotización coinciden con/están cerca de las características fractales de un proceso de comercio - la estrategia es rechazada.

 

Hoy he encontrado una característica interesante en el EA que está en GD2. Resulta que en el futuro no hay que operar en modo 3 (pass = 3), sino en modo 1 o 2.

Tomamos el EA y el historial durante 12 meses, es decir, un año. Dividimos la historia en 4 partes de 3 meses: I, II, III y IV trimestres.

Cuartos I y IV - esto es OOS, II y III - Muestras.

Etapa 1. Primero encontramos los valores óptimos de p y sl, es decir, fijamos las fechas de los trimestres II y III, marcamos el primer perceptrón x11, x21, x31, x41, y también marcamos p y sl. Modo pase = 1. Optimizar y establecer el mejor resultado.

Etapa 2. Poner las fechas en Q2, desmarcar p y sl y optimizar los ajustes para el primer perceptrón. Establece el mejor resultado en los ajustes.

Etapa 3. Establecer las fechas del III trimestre, eliminar las marcas de x11, x21, x31, x41, establecer x12, x22, x32, x42, pass = 2 y optimizar los ajustes del segundo perceptrón. Fijamos el mejor resultado en los ajustes.

4º paso. Encienda el pase = 3, establezca las fechas para el I trimestre y ejecute la prueba. Si la prueba tiene éxito, significa que al menos uno de los perceptrones será robusto.

Es decir, todos los pasos anteriores como en la metodología GD2.

Paso 5. Poner las fechas en Q4, pass = 1. Haz la prueba.

Paso 6. Fijar fechas para el cuarto trimestre, pase = 2. Haz la prueba.

Al menos una de las pruebas del par. 5 o párrafos. 6 debería tener éxito.

Pero realizamos las pruebas en el futuro, es decir, en el cuarto trimestre, por así decirlo, para probar. Y GD está ejecutando todo en el pasado, es decir, los 3 primeros trimestres. ¿Cómo podemos saber qué pase = 1 o pase = 2 producirá mejores resultados? Fijamos las fechas de los 3 primeros trimestres y lo ejecutamos primero en modo 1 y luego en modo 2. Y luego observamos los mejores resultados de los 9 meses: la modalidad es la más sólida.

 
Farnsworth:

Para investigar las series temporales de la curva de equilibrio, utilizo lo siguiente:

  • criterios de tendencia y aleatoriedad (rango, serie, inversión, criterio de autocorrelación, etc. hay muchos)
  • análisis fractal
Siempre compruebo de esta manera, exactamente esta comprobación rechaza muchas de mis hermosas curvas con balance positivo, porque hay fragmentos aleatorios.

¿Por qué es tan difícil (me refiero al azul)? ¿No crees que puedes rechazar un buen sistema de esa manera? Sí, lo entiendo: pareces ser un perfeccionista extremo...

En mi opinión, la secuencia de operaciones expresada como "éxito-fracaso" es, en su gran mayoría, un proceso de Bernoulli. Entonces, ¿cómo se elimina la aleatoriedad de ahí?

Razón de la queja: