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
Simple Code for Detect A "New Bar or New Candle " Received - Experte für den MetaTrader 5
- Ansichten:
- 106
- Rating:
- Veröffentlicht:
-
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)
Dieser Codeblock durchläuft alle geöffneten Positionen und führt ein Trailing auf der Basis von Ask- und Bid-Preisen durch.
ConvertServerTime
Funktion zur Konvertierung der Serverzeit von einer Zeitzone des Brokers in eine andere.
Logarithmic Moving Average
Der logarithmische gleitende Durchschnitt berechnet fortlaufend den logarithmischen Mittelwert des höchsten und des niedrigsten Preises innerhalb einer Periode.
Durchschnittliche Tagesspanne
Indikator für die durchschnittliche tägliche Spanne.