MetaTrader 5 herunterladen

Bars

Gibt die Anzahl der Bars in der Historie für das angegebene Symbol und Periode. Es gibt 2 Varianten der Funktion.

Anzahl aller Bars in der Historie anfordern

int  Bars(
   string           symbol_name,     // Symbolname
   ENUM_TIMEFRAMES  timeframe,       // Periode
   );

Anzahl der Bars im angegebenen Intervall abrufen

int  Bars(
   string           symbol_name,     // Symbolname
   ENUM_TIMEFRAMES  timeframe,       // Periode
   datetime         start_time,      // Anfangsdatum 
   datetime         stop_time        // Beendigungsdatum
   );

Parameter

symbol_name

[in]  Symbol.

timeframe

[in]  Periode.

start_time

[in]  Barzeit, die dem ersten Element entspricht.

stop_time

[in]  Barzeit,die dem letzten Element entspricht.

Rückgabewert

Wenn die Parameter start_time und stop_time angegeben werden, gibt die Funktion die Anzahl der Bars im Datenbereich zurück. Wenn diese Parameter nicht angegeben werden, gibt die Funktion die gesamte Anzahl der Bars zurück.

Hinweis

Wenn Daten für eine Zeitreihe mit angegebenen Parametern beim Aufruf der Funktion Bars() im Terminal noch nicht formiert sind oder Daten einer Zeitreihe beim Funktionsaufruf mit dem Handelsserver nicht synchronisiert sind, gibt die Funktion den Null-Wert zurück.

Beim Abruf der Anzahl der Bars im angegebenen Intervall werden nur die Bars berücksichtigt, deren Eröffnungszeit zu diesem Intervall gehört. Zum Beispiel, wenn der aktuelle Tag Samstag ist, gibt die Funktion beim Abruf der Anzahl der Wochenbars start_time=letzter_dienstag und stop_time=letzter_freitag Null aus, denn die Eröffnungszeit im Wochenzeitrahmen fällt immer auf Sonntag und keine Wochenbar liegt im angegebenen Bereich.

Ein Beispiel für den Abruf der Anzahl aller Bars in der Historie:

   int bars=Bars(_Symbol,_Period);
   if(bars>0)
     {
      Print("Anzahl der Bars in der Terminalgeschichte für Symbol-Periode zum jetzigen Zeitpunkt = ",bars);
     }
   else  //keine zugaengliche Bars 
     {
      //--- Daten des Symbols sollen mit Daten auf dem Server synchronisiert werden 
      bool synchronized=false;
      //--- Counter des Zyklus 
      int attempts=0;
      // versuchen wir 5 mal, auf Synchronisierung zu warten 
      while(attempts<5)
        {
         if(SeriesInfoInteger(Symbol(),0,SERIES_SYNCHRONIZED))
           {
            //--- Synchronisierung gemacht, beenden
            synchronized=true;
            break;
           }
         //--- steigen wir den Counter
         attempts++;
         //--- warten wir 10 Millisekunden auf die naechste Iteration 
         Sleep(10);
        }
      //--- Zyklus beenden nach der Synchronisierung 
      if(synchronized)
        {
         Print("Anzahl der Bars in der Terminalgeschichte für Symbol-Periode zum Jetzigen Zeitpunkt = ",bars);
         Print("Das erste Datum in der Terminalgeschichte für Symbol-Periode zum jetzigen Zeitpunkt = ",
               (datetime)SeriesInfoInteger(Symbol(),0,SERIES_FIRSTDATE));
         Print("Das erste Datum in der Geschichte für Symbol auf dem Server =",
               (datetime)SeriesInfoInteger(Symbol(),0,SERIES_SERVER_FIRSTDATE));
        }
      //--- Synchronisierung der Daten nicht passiert 
      else
        {
         Print("Misslungen Anzahl der Bars für zu bekommen ",_Symbol);
        }
     }

Ein Beispiel für den Abruf der Anzahl der Bars im angegebenen Intervall:

   int n;
   datetime date1 = D'2016.09.02 23:55'// Freitag
   datetime date2 = D'2016.09.05 00:00'// Montag
   datetime date3 = D'2016.09.08 00:00'// Donnerstag
   //---
   n=Bars(_Symbol,PERIOD_H1,D'2016.09.02 02:05',D'2016.09.02 10:55');
   Print("Anzahl der Bars: ",n); // Gibt aus "Anzahl der Bars: 8", die 2-Stunden-Bar wird in der Berechnung berücksichtigt, die 11-Stunden-Bar - nicht
   n=Bars(_Symbol,PERIOD_D1,date1,date2);
   Print("Anzahl der Bars: ",n); // Gibt aus "Anzahl der Bars: 1", denn das Intervall enthält die Eröffnungszeit nur einer Tagesbar - der Montagsbar
   n=Bars(_Symbol,PERIOD_W1,date2,date3);
   Print("Anzahl der Bars: ",n); // Gibt aus "Anzahl der Bars: 0", denn der angegebene Bereich enthält die Eröffnungszeit keiner einzelnen Wochenbar 

Sehen Sie auch

Ereignisbearbeiter