Diskussion zum Artikel "Benutzerdefinierte Indikatoren in MQL5 für Anfänger" - Seite 2

 
Wir brauchen mehr Tutorials wie dieses!!!
 

Nikolay, ich danke dir. Es ist ein tolles Tutorial!
Aber ich denke, dass die Variable

const int begin

wird im Code immer den Wert Null haben. Ist das für die Berechnung von Bedeutung?

 
igorsds:

Nikolay, ich danke dir. Es ist ein tolles Tutorial!
Aber ich denke, dass die Variable

wird im Code immer den Wert Null haben. Ist das für die Berechnung von Bedeutung?

Der Wert von "begin" wird unterschiedlich sein, je nachdem, auf welchen Indikator er angewendet wird. Wenn Sie den RSI verwenden, wird"begin" zum Beispiel 14 sein.

 

Wenn Sie zum ersten Mal versuchen zu kompilieren, können Sie einen Pufferfehler erhalten. Ändern Sie daher bitte die Anzahl der Puffer:

#property indicator_buffers 2

Später können Sie wieder zu 1 (einem) Puffer wechseln:

#property indicator_buffers 1

 
Wie kombiniere ich mit Fibo Zigzag
 

Das verstehe ich nicht. Angenommen,

Kurse_Gesamt == MA_Periode - 1

und dies ist der erste Aufruf der Funktion, so dass

prev_calculated == 0

und auch begin == 0

dann wird die Bedingung im ersten if(rates_total < MA_Period - 1 + begin) als false ausgewertet

dann

first = MA_Period - 1 würde ausgeführt werden

aber dann KEINE BERECHNUNGEN, weil die Bedingung in der ersten for-Schleife zu false ausgewertet wird.

Ich denke, die erste if-Bedingung sollte lauten

if( kurs_gesamt < MA_Zeitraum + Anfang )

Übersehe ich hier etwas?

 

Und noch eins. Warum sollte ich mit der Berechnung ab dem Balken mit der Nummer (prev_calculated - 1) beginnen, wenn ich den Indikator bereits prev_calculated mal berechnet habe?

Zum Beispiel habe ich den Indikator 5 Mal für die Balken 0, 1, 2, 3 und 4 berechnet. Ich brauche ihn für den Balken 4 nicht noch einmal zu berechnen. Ich sollte mit dem Balken 5 fortfahren.

 
LRDPRDX #:

Und noch eins. Warum sollte ich die Berechnung ab dem Balken mit der Zahl (prev_calculated - 1) beginnen, wenn ich den Indikator prev_calculated schon mal berechnet habe?

Zum Beispiel habe ich den Indikator 5 Mal für die Balken 0, 1, 2, 3 und 4 berechnet. Ich brauche ihn für den Balken 4 nicht noch einmal zu berechnen. Ich sollte mit dem Balken 5 fortfahren.

Nun gut. Ich denke, dass ich hier nicht richtig liege, weil der 4. Balken seit meiner letzten Berechnung geändert worden sein könnte. Die (prev_calculated - 1) sieht also richtig aus.
 
Betrug ist an der Tagesordnung. Bravi
 
LRDPRDX #:

Das verstehe ich nicht. Angenommen,

rates_total == MA_Period - 1

und dies ist der erste Aufruf der Funktion, also

prev_calculated == 0

und auch begin == 0

dann wird die Bedingung im ersten if(rates_total < MA_Period - 1 + begin) als false ausgewertet

dann

first = MA_Period - 1 würde ausgeführt werden

aber dann KEINE BERECHNUNGEN, weil die Bedingung in der ersten for-Schleife als falsch ausgewertet wird.

Ich denke, die erste if-Bedingung sollte lauten

if( kurs_gesamt < MA_Zeitraum + Anfang )

Habe ich hier etwas übersehen?