Calcul des différences, exemples. - page 10

 
Aleksey Panfilov:

Pour voir la dynamique.

Même expert sur le M15.



Ne faites pas attention aux mots qui font grincer des dents sur ce site : "surdosage". Les indicateurs qui se redessinent ont au moins une certaine capacité prédictive, mais ceux qui ne le font pas n'ont généralement aucune capacité prédictive. La capacité prédictive n'est pas un sujet de discussion ici. Dans leur essence, vos indicateurs sont réglés pour prédire (extrapoler) dans le futur et vous pouvez en tirer quelque chose.


En termes de photos, ce qui a de la valeur à mon avis

J'aime beaucoup la photo verte précédente. Le triangle vert uni vous montre qu'il existe une plateforme assez large qui correspond aux paramètres qui affecteront les performances de votre EA à l'avenir. Mais la deuxième image n'indique pas une propriété aussi précieuse du conseiller expert.

 

Même expert sur la M5. L'histoire est environ deux fois moins longue.


Dossiers :
2018_02_05.zip  219 kb
 
SanSanych Fomenko:

Ne faites pas attention aux mots qui grondent sur ce site, "surdosage". Les indicateurs qui se redessinent ont au moins une certaine capacité prédictive, mais ceux qui ne se redessinent pas n'ont généralement aucune capacité prédictive. La capacité prédictive n'est pas un sujet de discussion ici. Dans leur essence, vos indicateurs sont réglés pour prédire (extrapoler) dans le futur et vous pouvez en tirer quelque chose.


En termes de photos, ce qui a de la valeur à mon avis

J'aime beaucoup la photo verte précédente. Le triangle vert uni vous montre qu'il existe une plateforme assez large qui correspond aux paramètres qui affecteront les performances de votre EA à l'avenir. Mais la deuxième image ne montre pas cette propriété extrêmement précieuse de votre conseiller expert.

Merci.

Je suis d'accord avec vous. Il semble que sur la M30 et maintenant sur la M5 , l'indicateur se synchronise mieux avec le comportement des prix.

Et bien sûr, il s'agit toujours d'une estimation, d'une approche très "approximative".

 

Je tiens à souligner que la condition d'économie de ressources mise en évidence en jaune dans les indicateurs ci-joints est mise à zéro de sorte que la ligne non dessinée est affichée dans tout le graphique.

      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]; 

Dans les tests, d'après ce que je comprends, la barre de zéro est celle qui a été dessinée en dernier par le testeur. Ensuite, pendant l'optimisation, il est raisonnable de limiter le nombre de barres entièrement calculées à la dernière.

      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]; 

Ou un certain nombre de derniers.

      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]; 

Mais dans ce cas, l'indicateur ne correspondra pas à celui calculé lors de la visualisation sur l'ensemble du graphique.

 

J'ai ajouté à l'indicateur la possibilité de sélectionner le degré d'extrapolation :

      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]; 
 

Et en conséquence dans le conseiller expert.

 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);
 

Optimisation pour le franchissement de la ligne extrapolée par le polynôme du quatrième degré (avec un levier d'extrapolation de 72, c'est le prix d'ouverture de la barre), la ligne extrapolée par le polynôme du troisième degré.


Dossiers :
2018_02_08_2.zip  211 kb
 

Je parcourais le fil de discussion et j'ai remarqué qu'un commentaire du post 64 est mort de façon imméritée. ))

Chers modérateurs, peut-il être restauré, à son ancienne place dans le contexte approprié? Ou l'ouvrir pour que je puisse l'éditer ? (ci-dessous, le commentaire lui-même)

Aleksey Panfilov2018.01.30 21:41RU
Aleksey Panfilov:

Oui.

Directement lié au binôme de Newton. Et le triangle de Pascal. Ajouté le 30.01.2018.

Pour des points équidistants, c'est vrai :

1*Y1-2*Y2+1*Y3=0 est l'équation de différence de la ligne.

1*Y1-3*Y2+3*Y3-1*Y4=0 - équation de différence d'une parabole du second degré.

1*Y1-4*Y2+6*Y3-4*Y4+1*Y5=0 - équation différentielle de la parabole du troisième degré.

Elle recoupe également les sujets :

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- équation différentielle de la parabole du quatrième degré.

1*Y1-6*Y2+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7=0- équation différentielle de la parabole du cinquième degré.

1*Y1-7*Y2+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8=0- équation différentielle de la parabole du sixième degré.


Directement à partir des équations pour les points équidistants, on obtient des formules d'interpolation avec un intervalle d'épaule de 1.

3*Y2=1*Y1+3*Y3-1*Y4 - interpolation par la parabole du second degré.

4*Y2=1*Y1+6*Y3-4*Y4 +1*Y5- interpolation par parabole du troisième degré.

5*Y2=1*Y1+10*Y3-10*Y4+5*Y5-1*Y6- interpolation par la parabole de la quatrième puissance.

6*Y2=1*Y1+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7- interpolation avec une parabole du cinquième degré.

7*Y2=1*Y1+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8- interpolation par parabole du sixième degré.

Comme un code :

 
      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 figure montre le début du graphique.

Il est clair que les lignes construites à l'aide de polynômes de puissances 2-4 (gris, bleu, vert) restent en toute confiance près du graphique.

Les lignes construites avec des polynômes de puissances 5 et 6 (rouge, jaune) entrent dans quelque chose qui ressemble à une résonance ou une auto-oscillation et accumulent progressivement de l'amplitude. L'augmentation de l'effet de levier pour les polynômes de degré 5 ou plus ne change pas la situation.


L'interpolation par une équation de différence d'une fonction constituée d'une somme de sinusoïdes de périodes données permet d'augmenter le "degré du polynôme" à, disons, 12 degrés (cela revient à 6 sinusoïdes autour d'une constante).

Cependant, une situation similaire(résonance) peut également être rencontrée en interpolant une fonction d'une sinusoïde autour d'une constante (analogue à un polynôme du second degré), avec une certaine combinaison d'épaule et de période.

L'analogie avec les polynômes est établie par le nombre de points minimum requis.

Dossiers :
 

Optimisation de l'indicateurNikolai SemkoBanzai.mq4 du message 57 de ce fil de discussion.

Même Expert Advisor, le paramètre optimisable est le déplacement de la ligne vers la droite.

 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);

Résultats :


Dossiers :
2018_02_09.zip  245 kb
 

Optimisation de l'indicateurNikolai SemkoBanzai.mq4 dumessage 57de ce fil de discussion.

Même chose sur la M15 :


Dossiers :
2018_02_09_2.zip  212 kb
 

La plupart des graphiques d'optimisation montrent clairement la limite du signal "inverse" (ligne rouge), et par conséquent un certain "miroir" des résultats (exemple mis en évidence par la ligne jaune).


Raison: