Expert Advisors: New Candle or Bar formation. - Seite 2

 

Sie können nicht wissen, wann eine Kerze geschlossen wird. Erst wenn ein neuer Tick eintrifft, mit dem ein neuer Balken beginnt, ist der alte Balken geschlossen, und dieser Tick könnte fast am Ende der Dauer eines Balkens eintreffen.

Für den Test eines neuen Balkens sind die Balken unzuverlässig (ein Refresh/Reconnect kann die Anzahl der Balken im Chart ändern), das Volumen ist unzuverlässig (fehlende Ticks), der Preis ist unzuverlässig (doppelte Preise und Der == Operand. - MQL4 Programmierforum.) Verwenden Sie immer die Zeit.
MT4: Neue Kerze - MQL4 Programmierforum #3 (2014)
MT5: Zugriff auf Variablen - MQL4 Programmierforum #3 (2022)

Ich bin nicht damit einverstanden, eine neue Bar-Funktion zu machen, weil sie nur einmal pro Tick aufgerufen werden kann (zweiter Aufruf gibt false zurück). Eine Variable kann mehrfach getestet werden.
EA einmal zu Beginn eines jeden Taktes ausführen - MQL4 Programmierforum (2011)

 static datetime curDT=0; datetime preDT=curDT; curDT=iTime(_Symbol,_Period,0);
 if(curDT != preDT){ … }
 
William Roeder #:

Ich bin nicht damit einverstanden, eine neue Balkenfunktion zu erstellen, da diese nur einmal pro Tick aufgerufen werden kann (der zweite Aufruf liefert false). Eine Variable kann mehrmals geprüft werden.

Es ist mir gelungen, eine generische Funktion IsNewBar(Symbol, Zeitrahmen) zu erstellen , die innerhalb eines EA für verschiedene Kombinationen von Symbol und Zeitrahmen korrekt funktioniert und innerhalb der Verarbeitung eines Ticks wiederholt aufgerufen werden kann und beim zweiten Mal (und den folgenden Malen) dasselbe zurückgibt wie beim ersten Mal.