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
Ansichten:
1105
Rating:
(23)
Veröffentlicht:
2016.06.13 09:31
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\
isnewbar.mqh (1.41 KB) ansehen
\MQL5\Experts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die СIsNewBar Klasse ist für eine effiziente Arbeit von Expert Advisors nötig, die Berechnungen zum Zeitpunkt ausführen, in dem ein neuer Balken erscheint.

Normalerweise wird die IsNewBar() Funktion statt einer Klasse dafür verwendet. Aber eine solche Funktion enthält eine statische Variable, und daher können wir nicht mehrere Anrufe von dieser Funktion durchführen. Um diese Funktion wiederholt im Expert Advisor Code verwenden zu können, wäre es viel einfacher, einen Klassenmember zu erstellen. In diesem Fall wurde das mit IsNewBar.mqh erreicht.

Der Bibliothekscode sollte auf globalem Level in die Datei mit Hilfe der #include -Direktive eingebunden werden:

#include <IsNewBar.mqh>

Dann muss die erforderliche Anzahl von СIsNewBar Klassenvariablen im OnTick() Block des Expert Advisors deklariert werden:

static CIsNewBar NB1,NB2;

Danach können wir Aufrufe der IsNewBar() Funktionen durchführen

bool IsNewBar(string symbol,            // Währungssymbol
              ENUM_TIMEFRAMES TimeFrame)// Berechnung des TimeFrame

im Expert Advisor-Code:

if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // Prüfung auf neuen Balken
     {
      / * Hier ist der Blockcode für Handelssignal 1 * /
     }

Hier ist ein Beispiel für einen Code, der die СIsNewBar-Klasse in der OnTick() Funktion enthält:

//+------------------------------------------------------------------+
//| Expert tick Funktion                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//----

   double iClose1[1],iClose2[1];
//---- Deklaration von statischen Variablen
   static bool Recount1=true,Recount2=true;
   static CIsNewBar NB1,NB2;

//+-------------------------------------------------+
//| Feststellung von Signalen für den Markteinstieg |
//+-------------------------------------------------+
   if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // Prüfung auf neuen Balken
     {
      Recount1=false;
      
      //---- Neu erschienene Daten in Arrays kopieren
      if(CopyClose(Symbol(),PERIOD_D1,1,1,iClose1)<=0) {Recount1=true; return;}
      
      / * Hier ist der Blockcode für Handelssignal 1 * /
      
     }
     
   if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // Prüfung auf neuen Balken
     {
      Recount2=false;
      
      //---- Neu erschienene Daten in Arrays kopieren
      if(CopyClose(Symbol(),PERIOD_H4,1,1,iClose2)<=0) {Recount2=true; return;}
      
      / * Hier ist der Blockcode für Handelssignal 2 * /
      
     }

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/768

3X_ParabolicRegression 3X_ParabolicRegression

Zwei geradlinige Kanäle der Standardabweichungen + kurviger Kanal der parabolischen Regression mit Interpolation eines Preischarts zukünftiger Werte.

ATR channel ATR channel

Kanal basierend auf der Abweichung des ATR (Average True Range) Indikators vom gleitenden Durchschnitt.

Forecast Oszillator Forecast Oszillator

Normalisierter Oszillator bereitgestellt durch die Signallinie und farbige Punkte für das Ausführen von Trades.

i-Fractals-sig i-Fractals-sig

Indikator für Markteinstiegssignale unter Verwendung von Fraktalen.