Dostęp do danych historycznych:   iLowest()

Funkcja int iLowest() zwraca indeks świecy, która dla odpowiedniego instrumentu finansowego i przedziału czasowego na określonym odcinku ma najniższą wartość. W przypadku błędu zwraca -1. 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 , która ma najniższą wartość cen open MODE_OPEN wśród świec na całym wykresie WHOLE_ARRAY począwszy od świecy z indeksem 0.

#property strict
void OnStart()
  {
//---
   string          symbolName = _Symbol;        // bieżący instrument finansowy
   ENUM_TIMEFRAMES timeFrame  = PERIOD_CURRENT; // bieżący przedział czasowy
   int             typeMode   = MODE_OPEN;      // typ ceny, open
   int             count      = WHOLE_ARRAY;    // zakres, cały wykres
   int             startPos   = 0;              // indeks świecy początkowej

//--- znaleźć indeks świecy z najniższą wartością open
   int indexBariLowest = iLowest(symbolName, timeFrame, typeMode, count, startPos);

//--- sprawdzić czy nie wystąpił błąd
   if(indexBariLowest == -1)
     {
      Print("Błąd wywołania iLowest(). Błąd = ",GetLastError());
      return;
     }

//--- wyświetlić wynik
   Print("Od świecy z indeksem ",startPos," wśród wszystkich świec",
         " najniższą open ma świeca z indeksem ",indexBariLowest);
  }

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


Przykład 2

Skrypt do wyświetlenia indeksów świec dla GBPUSD, H1, które mają najniższe wartości cen open, low, high, close oraz wolumenu tick-owego. Poszukiwania rozpoczynają się od świecy z indeksem 4 wśród kolejnych 20 świec, tj. od indeksu 4 do 23 włącznie.

#property strict
void OnStart()
  {
//--- znaleźć indeks świecy z najniższymi wartościami:
   int indexBarLowestOpen   = iLowest("GBPUSD", PERIOD_H1, MODE_OPEN,   20, 4); // open
   int indexBarLowestLow    = iLowest("GBPUSD", PERIOD_H1, MODE_LOW,    20, 4); // low
   int indexBarLowestHigh   = iLowest("GBPUSD", PERIOD_H1, MODE_HIGH,   20, 4); // high
   int indexBarLowestClose  = iLowest("GBPUSD", PERIOD_H1, MODE_CLOSE,  20, 4); // close
   int indexBarLowestVolume = iLowest("GBPUSD", PERIOD_H1, MODE_VOLUME, 20, 4); // volume

//--- sprawdzić czy nie wystąpił błąd
   if(indexBarLowestOpen   == -1 ||
      indexBarLowestLow    == -1 ||
      indexBarLowestHigh   == -1 ||
      indexBarLowestClose  == -1 ||
      indexBarLowestVolume == -1)
     {
      Print("Błąd wywołania iLowest(). Błąd = ",GetLastError());
      return;
     }

//--- wyświetlić wynik
   Print("1) Od świecy z indeksem 4 wśród kolejnych 20 dla GBPUSD, H1 najniższe wartości:");
   Print("2) świeca z indeksem ",indexBarLowestOpen," ma najniższą cenę open.");
   Print("3) świeca z indeksem ",indexBarLowestLow," ma najniższą cen low.");
   Print("4) świeca z indeksem ",indexBarLowestHigh," ma najniższą cen high.");
   Print("5) świeca z indeksem ",indexBarLowestClose," ma najniższą cen close.");
   Print("6) świeca z indeksem ",indexBarLowestVolume," ma najmniejszy wolumen tick-owy.");
  }

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