Differenzialrechnung, Beispiele. - Seite 10

 
Aleksey Panfilov:

Um die Dynamik zu sehen.

Derselbe Experte für M15.



Achten Sie nicht auf die Schimpfwörter auf dieser Website: "Überziehen". Diejenigen Indikatoren, die neu gezeichnet werden, haben zumindest eine gewisse Vorhersagekraft, während die Indikatoren, die nicht neu gezeichnet werden, in der Regel überhaupt keine Vorhersagekraft haben. Die Vorhersagefähigkeit steht hier nicht zur Diskussion. Im Wesentlichen sind Ihre Indikatoren darauf abgestimmt, die Zukunft vorherzusagen (zu extrapolieren), und Sie können etwas aus ihnen herausholen.


Was die Bilder betrifft, so ist meiner Meinung nach Folgendes wertvoll

Das vorherige grüne Bild gefällt mir sehr gut. Das einfarbige grüne Dreieck zeigt Ihnen, dass es eine große Neigung gibt, die die Leistung Ihres EAs in der Zukunft beeinflussen wird. Aber das zweite Bild zeigt nicht eine solche extrem wertvolle Eigenschaft des Expert Advisors

 

Derselbe Experte für die M5. Die Geschichte ist etwa halb so lang.


Dateien:
2018_02_05.zip  219 kb
 
SanSanych Fomenko:

Achten Sie nicht auf die schimpfenden Worte auf dieser Website, 'überzeichnet'. Diejenigen Indikatoren, die neu gezeichnet werden, haben zumindest eine gewisse Vorhersagekraft, aber diejenigen, die nicht neu gezeichnet werden, haben in der Regel überhaupt keine Vorhersagekraft. Die Vorhersagefähigkeit steht hier nicht zur Diskussion. Im Wesentlichen sind Ihre Indikatoren darauf abgestimmt, die Zukunft vorherzusagen (zu extrapolieren), und Sie können etwas aus ihnen herausholen.


Was die Bilder betrifft, so ist meiner Meinung nach Folgendes wertvoll

Das vorherige grüne Bild gefällt mir sehr gut. Das einfarbige grüne Dreieck zeigt Ihnen, dass es eine große Neigung gibt, die die Leistung Ihres EAs in der Zukunft beeinflussen wird. Aber das zweite Bild zeigt nicht eine solche äußerst wertvolle Eigenschaft Ihres Expert Advisors

Ich danke Ihnen.

Ich stimme mit Ihnen überein. Es scheint, dass der Indikator auf dem M30 und jetzt auf dem M5 besser mit dem Kursverhalten synchronisiert.

Und natürlich ist es immer noch eine Schätzung, ein sehr "grober" Ansatz.

 

Ich möchte darauf hinweisen, dass die in den beigefügten Indikatoren gelb hervorgehobene Bedingung für die Ressourceneinsparung auf Null gesetzt ist, so dass die nicht gezeichnete Linie im gesamten Diagramm angezeigt wird.

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

Soweit ich weiß, ist der Null-Balken bei der Prüfung derjenige, der zuletzt vom Prüfer gezogen wurde. Bei der Optimierung ist es dann sinnvoll, die Anzahl der vollständig berechneten Balken auf den letzten zu beschränken.

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

Oder eine bestimmte Anzahl von letzten.

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

In diesem Fall entspricht der Indikator jedoch nicht dem berechneten Indikator bei der Visualisierung auf dem gesamten Chart.

 

Ich habe dem Indikator die Möglichkeit hinzugefügt, den Grad der Extrapolation auszuwählen:

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

Und entsprechend im Expert Advisor.

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

Optimierung für das Kreuzen der durch das Polynom vierten Grades extrapolierten Linie (mit einem Extrapolationshebel von 72, das ist der Eröffnungskurs des Balkens), der durch das Polynom dritten Grades extrapolierten Linie.


Dateien:
2018_02_08_2.zip  211 kb
 

Ich habe den Thread durchstöbert und festgestellt, dass ein Kommentar aus Beitrag 64 unverdientermaßen gestorben ist. ))

Sehr geehrte Moderatoren, kann sie an ihrem früheren Platz und im richtigen Kontext wiederhergestellt werden? Oder öffnen Sie es für mich zur Bearbeitung? (unten, der Kommentar selbst)

Aleksey Panfilov2018.01.30 21:41RU
Aleksey Panfilov:

Ja.

Direkt verwandt mit dem Newtonschen Binomialsystem. Und das Pascalsche Dreieck. Addierte am 30.01.2018.

Für äquidistante Punkte ist dies der Fall:

1*Y1-2*Y2+1*Y3=0 ist die Differenzgleichung der Geraden.

1*Y1-3*Y2+3*Y3-1*Y4=0 - Parabeldifferenzgleichung zweiten Grades.

1*Y1-4*Y2+6*Y3-4*Y4+1*Y5=0 - Differenzgleichung der Parabel dritten Grades.

Es gibt auch Überschneidungen mit den Themen:

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- Differenzgleichung der Parabel vierten Grades.

1*Y1-6*Y2+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7=0- Differenzgleichung der Parabel fünften Grades.

1*Y1-7*Y2+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8=0- Differenzgleichung der Parabel sechsten Grades.


Leiten Sie direkt aus den Gleichungen für äquidistante Punkte Interpolationsformeln mit einer Schulter von 1 Intervall ab.

3*Y2=1*Y1+3*Y3-1*Y4 - Interpolation durch die Parabel zweiten Grades.

4*Y2=1*Y1+6*Y3-4*Y4 +1*Y5- Interpolation durch Parabel dritten Grades.

5*Y2=1*Y1+10*Y3-10*Y4+5*Y5-1*Y6- Interpolation durch die Parabel der vierten Potenz.

6*Y2=1*Y1+15*Y3-20*Y4+15*Y5-6*Y6 +1*Y7- Interpolation mit Parabel fünften Grades.

7*Y2=1*Y1+21*Y3-35*Y4+35*Y5-21*Y6 +7*Y7-1*Y8- Interpolation durch Parabel sechsten Grades.

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

Die Abbildung zeigt den Anfang des Diagramms.

Es ist klar, dass Linien, die mit Polynomen der Potenzen 2-4 (grau, blau, grün) konstruiert wurden, sicher in der Nähe des Diagramms bleiben.

Die mit Polynomen der Potenzen 5 und 6 (rot, gelb) gebildeten Linien geraten in eine Art Resonanz oder Autooszillation und akkumulieren allmählich ihre Amplitude. Die Erhöhung der Hebelwirkung für Polynome vom Grad 5 oder höher ändert nichts an der Situation.


Die Interpolation durch eine Differenzgleichung einer Funktion, die auseiner Summe von Sinuskurven mit bestimmten Perioden besteht, ermöglicht es, den "Polynomgrad" auf z. B. 12 Grad zu erhöhen (das entspricht 6 Sinuskurven um eine Konstante).

Eine ähnliche Situation(Resonanz) kann jedoch auch durch Interpolation einer Funktion einer Sinuskurve um eine Konstante (analog zu einem Polynom zweiten Grades) mit einer bestimmten Kombination von Schulter und Periode erreicht werden.

Die Analogie zu den Polynomen ergibt sich aus der Anzahl der erforderlichen Mindestpunkte.

 

Optimierung des IndikatorsNikolai SemkoBanzai.mq4 aus Nachricht 57 dieses Threads.

Gleicher Expert Advisor, optimierbarer Parameter ist die Verschiebung der Linie nach rechts.

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

Ergebnisse:


Dateien:
2018_02_09.zip  245 kb
 

Optimierung des IndikatorsNikolai SemkoBanzai.mq4 ausNachricht 57dieses Threads.

Dasselbe gilt für M15:


Dateien:
2018_02_09_2.zip  212 kb
 

Die meisten Optimierungsdiagramme zeigen deutlich die Grenze des "umgekehrten" Signals (rote Linie) und folglich eine gewisse "Spiegelung" der Ergebnisse (Beispiel hervorgehoben durch die gelbe Linie).