und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5

Erkennung des Beginns eines neuen Balkens oder einer neuen Kerze - Experte für den MetaTrader 5
- Ansichten:
- 131
- Rating:
- Veröffentlicht:
- 2025.04.03 11:16
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Wenn ein Expert Advisor (EA) einen neuen Kurs ("Tick") von MetaTrader empfängt, wird die Standardfunktion OnTick() zur Ereignisbehandlung vom Terminal aufgerufen. Es gibt jedoch keine Standard-Ereignisfunktion für den Beginn eines neuen Balkens (Kerze).
Um dies zu erkennen, müssen Sie die Eröffnungszeit des letzten Balkens überwachen. Wenn sie sich ändert, bedeutet dies den Beginn eines neuen Balkens, und Sie können auf die Situation reagieren und das Ereignis behandeln. Das folgende Codebeispiel, das sowohl mit MQL4 als auch mit MQL5 kompatibel ist, demonstriert eine der Methoden, wie dies erreicht werden kann:
// Standard-Tick-Event-Handler void OnTick() { // Prüfung auf einen neuen Takt (kompatibel mit MQL4 und MQL5). static datetime dtBarraCorrente = WRONG_VALUE; datetime dtBarraPrecedente = dtBarraCorrente; dtBarraCorrente = iTime( _Symbol, _Period, 0 ); bool bEventoBarraNova = ( dtBarraCorrente != dtBarraPrecedente ); // Reagieren Sie auf das Auftreten eines neuen Balkens und behandeln Sie die Situation. if( bEventoBarraNova ) { // Erkennen, ob es sich um das erste empfangene Häkchen handelt und die Situation behandeln. /* Zum Beispiel, wenn er zum ersten Mal auf das Diagramm angewendet wird und ist der Balken irgendwo in der Mitte seines Verlaufs und ist nicht wirklich der Beginn eines neuen Balkens. */ if( dtBarraPrecedente == WRONG_VALUE ) { // Beim ersten Tick oder in der Mitte eines Balkens etwas tun ... } else { // Etwas tun, wenn ein normaler Balken erscheint ... }; // Etwas tun, das unabhängig von der vorherigen Bedingung ist ... } else { // Etwas anderes tun ... }; // Andere Dinge tun ... };
Im vorherigen Code behält die statische Variable die Öffnungszeit des Balkens im Auge, auch wenn sie von der Funktion OnTick() zurückkehrt. Anders als eine normale lokale Variable speichert sie ihren Dateninhalt und gibt ihn beim Verlassen der Funktion nicht frei. Dies ist der Schlüssel zur Erkennung einer Änderung der Öffnungszeit des aktuellen Balkens.
Es ist auch wichtig zu beachten, dass, wenn der EA zum ersten Mal auf einem Chart platziert wird, der vorherige Code so reagiert, als ob der Balken gerade geöffnet worden wäre. Diese Bedingung erfordert eine besondere Behandlung, wenn die Situation anders gehandhabt werden soll.
Bitte beachten Sie, dass der Quellcode für alle meine CodeBase-Publikationen jetzt auch über die "Public Projects" von MetaEditor unter dem Namen "FMIC" verfügbar ist.
Übersetzt aus dem Portugiesischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/pt/code/41601

Kalender - Fundamentalanalyse in Geschichte und Echtzeit.

Daten des Prüfers in einem Durchgang.

Algorithmuszyklus: Wenn es keine offenen Positionen gibt, öffnen Sie zwei entgegengesetzte Positionen. Warten Sie, bis beide Positionen geschlossen sind.

Handelssystem mit dem Indikator iMA (Gleitender Durchschnitt, MA). Entwicklung des MA-Trends.