Cálculo de diferencias, ejemplos. - página 10

 
Aleksey Panfilov:

Para ver la dinámica.

El mismo experto en M15.



No hagas caso a las palabras de reprimenda en este sitio: "sobregiros". Los indicadores que se redistribuyen tienen al menos cierta capacidad de predicción, pero los que no lo hacen no suelen tener ninguna capacidad de predicción. La capacidad de predicción no es objeto de discusión aquí. En su esencia, sus indicadores se ajustan para predecir (extrapolar) en el futuro y se puede obtener algo de ellos.


En términos de imágenes, lo que es valioso en mi opinión

Me gusta mucho la foto verde anterior. El triángulo verde liso le muestra que hay una amplia pendiente que afectará al rendimiento de su EA en el futuro. Pero la segunda imagen no indica una propiedad tan valiosa del Asesor Experto

 

El mismo experto en la M5. La historia dura aproximadamente la mitad.


Archivos adjuntos:
2018_02_05.zip  219 kb
 
SanSanych Fomenko:

No hagas caso a las palabras de reprimenda en este sitio, 'sobregiros'. Los indicadores que se redibujan tienen al menos cierta capacidad de predicción, pero los que no se redibujan no suelen tener ninguna capacidad de predicción. La capacidad de predicción no es objeto de discusión aquí. En su esencia, sus indicadores se ajustan para predecir (extrapolar) en el futuro y se puede obtener algo de ellos.


En términos de imágenes, lo que es valioso en mi opinión

Me gusta mucho la foto verde anterior. El triángulo verde liso le muestra que hay una plataforma bastante amplia que corresponde a los parámetros que afectarán al rendimiento de su EA en el futuro. Pero la segunda imagen no indica una propiedad tan valiosa de su Asesor Experto

Gracias.

Estoy de acuerdo contigo. Parece que en M30 y ahora en M5 el indicador se sincroniza mejor con el comportamiento del precio.

Y, por supuesto, no deja de ser una estimación, una aproximación muy "aproximada".

 

Me gustaría señalar que la condición de ahorro de recursos resaltada en amarillo en los indicadores adjuntos está a cero para que la línea no dibujada se muestre en todo el gráfico.

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;
      a5_Buffer[i+92]=a1_Buffer[i];   if(i>=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  4*a5_Buffer[i+1+z]  -  6*a5_Buffer[i+2+z]  +  4*a5_Buffer[i+3+z]  - 1*a5_Buffer[i+4+z];  }}
      a2_Buffer[i+92-leverage]=a5_Buffer[i+92-leverage]; 

En las pruebas, según tengo entendido, la barra cero es la última que dibuja el probador. Entonces, durante la optimización es razonable limitar el número de barras totalmente calculadas a la última.

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;
      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  4*a5_Buffer[i+1+z]  -  6*a5_Buffer[i+2+z]  +  4*a5_Buffer[i+3+z]  - 1*a5_Buffer[i+4+z];  }}
      a2_Buffer[i+92-leverage]=a5_Buffer[i+92-leverage]; 

O un cierto número de últimos.

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;
      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1000) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  4*a5_Buffer[i+1+z]  -  6*a5_Buffer[i+2+z]  +  4*a5_Buffer[i+3+z]  - 1*a5_Buffer[i+4+z];  }}
      a2_Buffer[i+92-leverage]=a5_Buffer[i+92-leverage]; 

Pero en este caso el indicador no se corresponderá con el calculado durante la visualización en todo el gráfico.

 

He añadido al indicador la posibilidad de seleccionar el grado de extrapolación:

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800    *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      if(line_power ==1)   {    a5_Buffer[i+92]=a1_Buffer[i];   if(i>=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z];  }}}
      if(line_power ==2)   {    a5_Buffer[i+92]=a1_Buffer[i];   if(i>=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  3*a5_Buffer[i+1+z]  -  3*a5_Buffer[i+2+z]  +  1*a5_Buffer[i+3+z];  }}}
      if(line_power ==3)   {    a5_Buffer[i+92]=a1_Buffer[i];   if(i>=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  4*a5_Buffer[i+1+z]  -  6*a5_Buffer[i+2+z]  +  4*a5_Buffer[i+3+z]  - 1*a5_Buffer[i+4+z];  }}}
      if(line_power ==4)   {    a5_Buffer[i+92]=a1_Buffer[i];   if(i>=0) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  5*a5_Buffer[i+1+z]  - 10*a5_Buffer[i+2+z]  +  10*a5_Buffer[i+3+z] - 5*a5_Buffer[i+4+z]  +  1*a5_Buffer[i+5+z];  }}}

      a2_Buffer[i+92-leverage]=a5_Buffer[i+92-leverage]; 
 

Y en consecuencia en el Asesor Experto.

 ma_1=iCustom(NULL,0,"2018_02_08_EMA_Polynom_s4_s1_4_p72_v.2",line_1_power, leverage_1,300,3,0);
 ma_2=iCustom(NULL,0,"2018_02_08_EMA_Polynom_s4_s1_4_p72_v.2",line_2_power, leverage_2,300,3,0);
 ma_1_P=iCustom(NULL,0,"2018_02_08_EMA_Polynom_s4_s1_4_p72_v.2",line_1_power, leverage_1,300,3,1);
 ma_2_P=iCustom(NULL,0,"2018_02_08_EMA_Polynom_s4_s1_4_p72_v.2",line_2_power, leverage_2,300,3,1);
 

Optimización para cruzar la línea extrapolada por el polinomio de cuarto grado (con un apalancamiento de extrapolación de 72, esto es el precio de apertura de la barra), la línea extrapolada por el polinomio de tercer grado.


Archivos adjuntos:
2018_02_08_2.zip  211 kb
 

Estaba navegando por el hilo y me he dado cuenta de que un comentario del post 64 ha muerto inmerecidamente. ))

Estimados moderadores, ¿se puede restaurar, en su antiguo lugar en el contexto apropiado? ¿O abrirlo para que lo edite? (a continuación, el propio comentario )

Aleksey Panfilov2018.01.30 21:41RU
Aleksey Panfilov:

Sí.

Directamente relacionado con el Binomio de Newton. Y el triángulo de Pascal. Añadido el 30.01.2018.

Para puntos equidistantes es cierto:

1*Y1-2*Y2+1*Y3=0 es la ecuación en diferencia de la recta.

1*Y1-3*Y2+3*Y3-1*Y4=0 - ecuación en diferencia de parábola de segundo grado.

1*Y1-4*Y2+6*Y3-4*Y4+1*Y5=0 - ecuación en diferencia de la parábola de tercer grado.

También se cruza con los temas:

https://www.mql5.com/ru/forum/61389/page48#comment_5633264

https://www.mql5.com/ru/forum/211220/page2#comment_5632736 .

1*Y1-5*Y2+10*Y3-10*Y4+5*Y5-1*Y6=0- ecuación en diferencia de la parábola de cuarto grado.

1*Y1-6*Y2+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7=0- ecuación en diferencia de la parábola de quinto grado.

1*Y1-7*Y2+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8=0- ecuación en diferencia de la parábola de sexto grado.


Las fórmulas de interpolación con un intervalo de hombro de 1 se derivan directamente de las ecuaciones de los puntos equidistantes.

3*Y2=1*Y1+3*Y3-1*Y4 - interpolación por la parábola de segundo grado.

4*Y2=1*Y1+6*Y3-4*Y4 +1*Y5- interpolación por parábola de tercer grado.

5*Y2=1*Y1+10*Y3-10*Y4+5*Y5-1*Y6- interpolación por la parábola de la cuarta potencia.

6*Y2=1*Y1+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7- interpolación con parábola de quinto grado.

7*Y2=1*Y1+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8- interpolación por parábola de sexto grado.

Como un código:

 
      a1_Buffer[i]=(open[i]   +3*a1_Buffer[i+1 ]   -1*a1_Buffer[i+2 ]  )/3;
      a2_Buffer[i]=(open[i]   +6*a2_Buffer[i+1 ]   -4*a2_Buffer[i+2 ]   +1*a2_Buffer[i+3 ]  )/4;
      a3_Buffer[i]=(open[i]   +10*a3_Buffer[i+1 ]  -10*a3_Buffer[i+2 ]  +5*a3_Buffer[i+3 ]  -1*a3_Buffer[i+4 ])/5;
      a4_Buffer[i]=(open[i]   +15*a4_Buffer[i+1 ]  -20*a4_Buffer[i+2 ]  +15*a4_Buffer[i+3 ]  -6*a4_Buffer[i+4 ]  +1*a4_Buffer[i+5 ])/6;
      a5_Buffer[i]=(open[i]   +21*a5_Buffer[i+1 ]  -35*a5_Buffer[i+2 ]  +35*a5_Buffer[i+3 ]  -21*a5_Buffer[i+4 ]  +7*a5_Buffer[i+5 ]  -1*a5_Buffer[i+6 ])/7;

La figura muestra el inicio del gráfico.

Es evidente que las líneas construidas con polinomios de potencias 2-4 (gris, azul, verde) se mantienen con seguridad cerca del gráfico.

Las líneas construidas con polinomios de potencias 5 y 6 (rojo, amarillo) entran en algo parecido a la resonancia o auto-oscilación y acumulan gradualmente amplitud. El aumento de la palanca para los polinomios de grado 5 o superior no cambia la situación.


La interpolación mediante una ecuación en diferencia de una función formada poruna suma de sinusoides de periodos dados permite aumentar el "grado del polinomio" hasta, por ejemplo, 12 grados (esto es como 6 sinusoides alrededor de una constante).

Sin embargo, también se puede encontrar una situación similar(resonancia) interpolando una función de una sinusoide alrededor de una constante (análoga a un polinomio de segundo grado), con una determinada combinación de hombro y periodo.

La analogía con los polinomios se establece por el número de puntos mínimos necesarios.

Archivos adjuntos:
 

Optimización del indicadorNikolai SemkoBanzai.mq4 del mensaje 57 de este hilo.

El mismo Asesor Experto, el parámetro optimizable es el desplazamiento de la línea hacia la derecha.

 ma_1=iCustom(NULL,0,"Banzai",leverage_1, 0,leverage_1);
 ma_2=iCustom(NULL,0,"Banzai",leverage_2, 0,leverage_2);
 ma_1_P=iCustom(NULL,0,"Banzai",leverage_1, 0,leverage_1+1);
 ma_2_P=iCustom(NULL,0,"Banzai",leverage_2, 0,leverage_2+1);

Resultados:


Archivos adjuntos:
2018_02_09.zip  245 kb
 

Optimización del indicadorNikolai SemkoBanzai.mq4 delmensaje 57de este hilo.

Lo mismo en M15:


Archivos adjuntos:
2018_02_09_2.zip  212 kb
 

La mayoría de los gráficos de optimización muestran claramente el límite de la señal "inversa " (línea roja) y, por consiguiente, un cierto "reflejo" de los resultados (ejemplo resaltado por la línea amarilla).


Razón de la queja: