eine Handelsstrategie auf der Grundlage der Elliott-Wellen-Theorie - Seite 45

 
if((H[k-1]<H[k])&&(H[k]>H[k+1])&&(H[k]>curHi)) для минимума аналогично.

Es bleibt nur noch zu begründen, warum ein ausreichender Bereich um den Höchststand herum gewählt wurde, um ihn als Höchststand der gegebenen Stichprobe zu betrachten. Ich gehe davon aus, dass dieses High ein maximaler Punkt innerhalb eines Radius von +-30% der Probenlänge sein muss? Wenn das nicht der Fall ist, muss die Stichprobe vergrößert werden, um zwei Dinge gemeinsam zu bestimmen - den Extremwert und die Stichprobenlänge? Was denken Sie darüber?

Wenn Sie einfach einen Extremwert in einem bestimmten Intervall (d. h. den höchsten Höchststand (den niedrigsten Tiefststand)) aus drei Balken auswählen und den höchsten (den niedrigsten) auswählen, sollten Sie im Grunde das bekommen, was Sie brauchen. Allerdings wäre es wahrscheinlich sinnvoll, zu überprüfen, ob die Stichprobenlänge von einem solchen Extremwert aus ausreichend ist, d. h. alle Kriterien sollten erfüllt sein. Ich werde experimentieren

Vladislav, glauben Sie, dass Sie den Code des Murray-Indikators im Lichte der neuen Informationen korrigieren werden? Wir sind gespannt auf die neue Version ;o)!


Ja, es ist nicht schwer, sie zu begradigen. Falls erforderlich, werde ich das Problem jedoch beheben.

Viel Glück und viel Erfolg beim Überholen von Trends.
 
Wenn wir einfach einen Extremwert (d. h. den höchsten Höchstwert (niedrigsten Tiefstwert)) aus drei Balken eines gegebenen Intervalls auswählen und den höchsten (niedrigsten) auswählen, sollten wir im Prinzip bekommen, was wir brauchen.


Ein zweidimensionales Array lässt sich ganz einfach sortieren, um das Gesuchte zu finden.
Es gibt 2 Spalten in der Matrix: 1. = Hoch, und in der 2. schreiben wir die Taktnummer.
Die Sortierung (in MQL erfolgt sie nach der ersten Spalte) setzt das Maximum an die erste Stelle und das Minimum an die letzte (oder umgekehrt),
und Minimum an der letzten Position (oder umgekehrt, je nach Sortiermodus).
Die Taktnummer wird in der zweiten Spalte abgelesen.

Ich weiß allerdings nicht, wie viel Zeit dies in Anspruch nehmen wird.
 
Grüße an die wenigen aktiven Mitglieder dieses sehr interessanten Threads :-)
Im Moment versuche ich, die Methode herauszufinden, die Vladislav uns großzügig zur Verfügung gestellt hat, was bedeutet, dass ich alle 23 Seiten durchsuchen muss. Bei meiner Suche untersuche ich natürlich auch die Codestücke, die die Diskussionsteilnehmer zur Veröffentlichung ausgewählt haben. Ich verstehe, dass der Code auf S. Dennoch möchte ich Sie vorsichtshalber darauf aufmerksam machen, dass die Funktion zur Berechnung der Fehlerstreuung meiner Meinung nach einen Fehler enthält, der dazu führt, dass die Berechnung nicht mit der Formel übereinstimmt und möglicherweise zur Laufzeit Fehler bei der Division durch Null verursacht.
double dispercia_oshibok(double data[], double centr) { int k,size; double disper=0; size=ArraySize(data); for(k=size-1;k>=0;k--) disper=disper+MathPow((data[k]-centr),2); if(size>1) disper=disper/(size-2); return(disper); }



Vielleicht wäre die Zeile if(size>1) disper=disper/(size-2); korrekter als if(size>1) disper=disper/(size-1);

. Bitte bestätigen oder widerlegen Sie meine Schlussfolgerung, denn leider komme ich nicht weiter, ohne die kleinsten Details herauszufinden. :-) Ich danke Ihnen im Voraus.

 
Lesen Sie weiter - es wird Ihnen die Frage beantworten.
 
Oh... meine Herren. Sie müssen nur "so" oder "nicht so" sagen. :-) Ich habe den ganzen Thread gelesen. Wahrscheinlich habe ich es verpasst, also werde ich noch einmal suchen. Bei meiner Suche habe ich eine interessante Seite mit verschiedenen Algorithmen gefunden: http: //alglib.sources.ru/ Ich hoffe, ich betrachte es nicht als Werbung. :-)
 
In unserem Fall ist Größe>=30 und die Formel lautet disper=disper/(Größe)

ZS Ist das besser? :)
 
In unserem Fall ist size>=30 und die Formel lautet disper=disper/(size)<br / translate="no">
SZZ das besser? :)


Ganz und gar nicht. :-) Jetzt muss ich das "Dach" dringend zu beheben, weil leidgeprüfte Bulaschew in "4.3 Schätzung der Streuung und Standardabweichung" in der Formel für die Berechnung der Streuung in den Divisor vorhanden ist N-1.
Woher kommt das Holz, Rosh? :-)
 
ee. :-) Jetzt muss ich das "Dach" dringend reparieren, denn der leidgeprüfte Bulaschew hat in "4.3. Schätzung von Varianz und Standardabweichung" N-1 in der Formel zur Berechnung der Varianz im Divisor. <br / translate="no"> Woher kommt das Holz, Rosh? :-)

Wenn wir nicht die Datenstichprobe selbst, sondern die Varianz der Approximationsfehler schätzen, sollte der Nenner natürlich N-2 sein. https://c.mql5.com/mql4/forum/2006/06/disp_oshibok.zip
Bulaschew gibt in seinem Buch sogar ein konkretes Beispiel für diesen Punkt.
 
<br / translate="no"> Wenn wir die Varianz der Approximationsfehler und nicht die Datenstichprobe selbst schätzen, sollte der Nenner natürlich N-2 sein.


Ja, danke. Jetzt habe ich es. Ich werde diesen Artikel genauer lesen.
In diesem Fall sollten wir die Bedingung besser als "if(size>2)" schreiben, um das Schicksal nicht herauszufordern. Der Code muss stabil sein :-)
 
In diesem Fall sollte die Bedingung als "if(size>2)" geschrieben werden, um das Schicksal nicht herauszufordern. Der Code muss stabil sein :-)

Es ist sonnenklar!:o)))
Dieses Drehbuch wurde als Frage für Valadislav und nicht für den praktischen Gebrauch veröffentlicht.
In dem Code, den ich im Moment habe, wird die Varianz berechnet, ohne eine spezielle Funktion aufzurufen, um die Berechnungszeit zu sparen und auch zu prüfen
if(size-2!=0) disper=disper/(size-2);
Generell bin ich der Meinung, dass solche programmiertechnischen Nebensächlichkeiten in diesem Thread überhaupt nicht diskussionswürdig sind.