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.
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().
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().