Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Expert Advisors

Erkennung des Beginns eines neuen Balkens oder einer neuen Kerze - Experte für den MetaTrader 5

Ansichten:
131
Rating:
(14)
Veröffentlicht:
2025.04.03 11:16
MQL5 Freelance 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 Kalender

Kalender - Fundamentalanalyse in Geschichte und Echtzeit.

SingleTesterCache SingleTesterCache

Daten des Prüfers in einem Durchgang.

Rückstoß Rückstoß

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

MA Trend 2 MA Trend 2

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