Dostęp do danych historycznych:   iBarShift()

Funkcja int iBarShift() zwraca indeks świecy dla odpowiedniego instrumentu finansowego i przedziału czasowego, która pasuje do określonego czasu. Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

Skrypt do wyświetlenia indeksu świecy dla bieżącego instrumentu finansowego _Symbol , bieżącego przedziału czasowego PERIOD_CURRENT i czasu, który mieści się w poszukiwanej świecy. Ostatni czwarty parametr funkcji exact ma wartość domyślną false, co oznacza, że jeśli dla określonego czasu nie ma świecy (dziura w historii), funkcja zwróci indeks innej najbliższej świecy. Jeśli exact ustawić jako true, funkcja zwróci -1.

#property strict
void OnStart()
  {
//---
   string          symbolName = _Symbol;             // bieżący instrument finansowy
   ENUM_TIMEFRAMES timeFrame  = PERIOD_CURRENT;      // bieżący przedział czasowy
   datetime        timeFind   = D'2016.11.03 12:00'; // czas świecy
   bool            exact      = false;               /* sposób informowania, jeśli
                                                        świecy nie znaleziono */

//--- znaleźć indeks świecy
   int indexBar = iBarShift(symbolName, timeFrame, timeFind, exact);

//--- wyświetlić wynik
   Print("Indeks świecy bieżącego symbolu, timeframe-u i czasu 2016.11.03 12:00 = ",indexBar);
  }

Rys. 1. Przykład stosowania funkcji iBarShift().


Przykład 2

Skrypt do wyświetlenia indeksów świec dla różnych instrumentów finansowych, przedziałów czasowych i czasu.

#property strict
void OnStart()
  {
//--- znaleźć indeksy świec
   int indexBar_EURUSD_H1_time1 = iBarShift("EURUSD", PERIOD_H1, D'2016.11.03 11:59:59');
   int indexBar_EURUSD_H1_time2 = iBarShift("EURUSD", PERIOD_H1, D'2016.11.03 12:00:00');
   int indexBar_CADJPY_D1       = iBarShift("CADJPY", PERIOD_D1, D'2016.07.22 00:00');

//--- wyświetlić wyniki
   Print("Indeks świecy EURUSD, H1, 2016.11.03 11:59:59 = ",indexBar_EURUSD_H1_time1);
   Print("Indeks świecy EURUSD, H1, 2016.11.03 12:00:00 = ",indexBar_EURUSD_H1_time2);
   Print("Indeks świecy CADJPY, D1, 2016.07.22 00:00 = ",   indexBar_CADJPY_D1);
  }

Rys. 2. Przykłady stosowania funkcji iBarShift().