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

Simple Code for Detect A "New Bar or New Candle " Received - Experte für den MetaTrader 5

Ansichten:
106
Rating:
(8)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Dieser Codeblock erkennt einen neuen Balken oder eine neue Kerze, wenn er empfangen wurde.

Das Grundprinzip des Codes ist sehr einfach. Zuerst speichert der Code die Zeit des vorherigen Balkens / der vorherigen Kerze. (Dann addieren Sie 60 Sekunden (entspricht 1 Minute. Sie können die Zeit nach Belieben addieren) zu der Zeit des vorherigen Balkens, was den Schlusszeitwert des aktuellen Balkens / der aktuellen Kerze ergibt.

Einmal,

Aktuelle Zeit = Schlusszeitwert des aktuellen Balkens / der aktuellen Kerze. Das bedeutet, dass ein neuer Balken eingegangen ist / der aktuelle Balken geschlossen hat.

In diesem Code wird das Flag (die Variable vom Typ bool 'NewBarRecived') vermeidet den mehrfachen Aufruf dieses Code-Blocks. Das bedeutet, dass dieser Code-Block nur einmal pro Bar / Kerze ausgeführt wird. Der Comment(); und der Playsound("ok.wav"); wird verwendet, um die Genauigkeit des Codeblocks zu überprüfen. Sie können sie entfernen, wenn Sie möchten.

Das Flag wird auf false zurückgesetzt, sobald die aktuelle Zeit über der Schlusszeit der aktuellen Kerze liegt, um die Ankunft des nächsten Balkens zu überprüfen. (Siehe dazu die Kommentare).

//+------------------------------------------------------------------+
//|Neue Bar Detect.mq5 |
//|von H A T Lakmal |
//|https://t.me/Lakmal846 |
//+------------------------------------------------------------------+

bool NewBarRecived = false; // Falg zur Kontrolle.

//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Zeitschaltuhr erstellen
   EventSetTimer(60);

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Zeitgeber zerstören
   EventKillTimer();

  }


//+------------------------------------------------------------------+
//| Experten-Tick-Funktion|
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1);
   datetime TimeCurrentClose = TimePreviousBar + 60; // Schlusszeit des aktuellen Balkens.
   datetime Time_Current = TimeCurrent();

   if(Time_Current == TimeCurrentClose && NewBarRecived == false)
     {
      PlaySound("ok.wav");   // Für die Anweisung Arbeit von nicht.
      NewBarRecived = true; // Aktualisieren Sie das Kennzeichen, um Mehrfachaufrufe zu vermeiden.


      // Ihr Code steht hier ----- (Do Something)

     }
   else
      if(Time_Current > TimeCurrentClose)
        {
         NewBarRecived = false; // Setzen Sie die Flagge für die nächste geöffnete Bar.



         // Ihr Code steht hier ----- (Do Something)


        }


   Comment("\n" +  "\n" +  "Time Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +
           "\n" + "Time Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +
           "\n" + "Time Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + 
           "\n" +"\n" + "A New Bar Recived -: " + NewBarRecived); 
          
           // Für Kontrollrechnungen


  }
//+------------------------------------------------------------------+
//| Timer-Funktion|
//+------------------------------------------------------------------+
void OnTimer()
  {
//---

  }
//+------------------------------------------------------------------+
//| Funktion Handel|
//+------------------------------------------------------------------+
void OnTrade()
  {
//---

  }
//+------------------------------------------------------------------+
//| ChartEvent-Funktion|
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---

  }
//+------------------------------------------------------------------+

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/49018

Code Block for "Trailing Stop" based on current market price. (Ask / Bid) Code Block for "Trailing Stop" based on current market price. (Ask / Bid)

Dieser Codeblock durchläuft alle geöffneten Positionen und führt ein Trailing auf der Basis von Ask- und Bid-Preisen durch.

ConvertServerTime ConvertServerTime

Funktion zur Konvertierung der Serverzeit von einer Zeitzone des Brokers in eine andere.

Logarithmic Moving Average Logarithmic Moving Average

Der logarithmische gleitende Durchschnitt berechnet fortlaufend den logarithmischen Mittelwert des höchsten und des niedrigsten Preises innerhalb einer Periode.

Durchschnittliche Tagesspanne Durchschnittliche Tagesspanne

Indikator für die durchschnittliche tägliche Spanne.