Dostęp do danych

W jednym z poprzednich rozdziałów omówione były tak zwane zmienne predefiniowane, które zapewniają szybki dostępu do najczęściej wykorzystywanych zmiennych typu Ask, Bid, Open, High, Close, Digits, Point, Time, Volume. Dostęp do zmiennych predefiniowanych jest z każdego rodzaju programu, czyli z EA, wskaźnika, skryptu, biblioteki, ale ograniczony tylko do wykresu na którym został uruchomiony program MQL4 dlatego wprowadzone funkcje pomocnicze umożliwiające dostęp do tych danych z innych okien wykresu.

To co wyróżnia funkcje, które zostały poniej zamieszczone to konieczność podania parametrów określających dany wykres, czyli nazwa symbolu oraz zakres czasowy, a także nazwa funkcji poprzedzona literą „i”.

Może się zdarzyć, że próbujemy pobrać dane z wykresu który nie istnieje lub nigdy nie był otwarty przez użytkownika i nie były pobrane dla tego wykresu dane historyczne z serwera. W takiej sytuacji otrzymamy komunikat błędu ERR_HISTORY_WILL_UPDATED (4066 - dane historyczne są właśnie aktualizowane).

Uwaga! Podczas testowania strategii, dane z poza innych wykresów są wyznaczane i uśredniane poprzez algorytm testera strategii.

iOpen

Funkcja zwraca cenę otwarcia ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa.
Indeks musi znajdować się po między wartością 0, a Bars-1 lub odczytanej za pomocą funkcji iBars()-1.

Składnia:

double iOpen( string symbol, int timeframe, int shift)
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
cena otwarcia z określonego słupka

Przykład:

Print( "Cena otwarcia EURUSD H1: ",iOpen("EURUSD",PERIOD_H1,0) );

iHigh

Funkcja zwraca najwyższą cenę ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa. Indeks musi znajdować się po między wartością 0, a Bars-1 lub odczytanej za pomocą funkcji iBars()-1.

Składnia:

double iHigh( string symbol, int timeframe, int shift)
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
cena najwyższa z określonego słupka

Przykład:

Print( "Cena najwyższa EURUSD H1: ",iHigh("EURUSD",PERIOD_H1,0) );

iLow

Funkcja zwraca najniższą cenę ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa. Indeks musi znajdować się po między wartością 0, a Bars-1 lub odczytanej za pomocą funkcji iBars()-1.

Składnia:

double iLow( string symbol, int timeframe, int shift)
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
cena najniższa z określonego słupka

Przykład:

Print( "Cena najniższa EURUSD H1: ",iLow("EURUSD",PERIOD_H1,0) );

iClose

Funkcja zwraca cenę zamknięcia ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa. Indeks musi znajdować się pomiędzy wartością 0, a Bars-1 lub odczytaną za pomocą funkcji iBars()-1.

Składnia:

lose( string symbol, int timeframe, int shift )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
cena zamknięcie z określonego słupka

Przykład:

Print( "Cena zamknięcia EURUSD H1: ",iClose("EURUSD",PERIOD_H1,0) );

iVolume

Funkcja zwraca wolumen ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa. Indeks musi znajdować się pomiędzy wartością 0, a Bars-1 lub odczytaną za pomocą funkcji iBars()- 1.

Składnia:

double iVolume( string symbol, int timeframe, int shift)
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
wolumen z określonego słupka

Przykład:

Print( "Wolumen słupka EURUSD H1: ",iVolume("EURUSD",PERIOD_H1,0) );

iTime

Funkcja zwraca czas ze słupka określonego parametrem indeks, na wykresie określonym parametrami symbol i skala czasowa. Indeks musi znajdować się pomiędzy wartością 0, a Bars-1 lub odczytaną za pomocą funkcji iBars()- 1.

Składnia:

datetime iTime( string symbol, int timeframe, int shift )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
shift – numer indeksu słupka z zakresu od 0 do Bars - 1
Wartość zwracana
czas otwarcia z określonego słupka

Przykład:

Print( "Czas otwarcia słupka EURUSD H1: ",iTime("EURUSD",PERIOD_H1,0) );

iBars

Funkcja zwraca liczbę słupków, które są dostępne na wykresie określonym parametrami symbol i skala czasowa.

Składnia:

int iBars( string symbol, int timeframe )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
Wartość zwracana
ilość słupków na wykresie

Przykład:

Print( "Liczba słupków na wykresie 'EURUSD' skala 1 godzina
=",iBars("EURUSD",PERIOD_H1))

iBarShift

Funkcja wyszukuje słupek z określoną datą na wykresie, określonym parametrami symbol i skala czasowa. Funkcja zwraca numer słupka lub wartość -1 jeśli słupek z podaną datą jako parametry nie został znaleziony. Dodatkowo można skorzystać z parametru exec który ustawiony na true szuka dokładnie sprecyzowanej daty lub jeśli jest ustawiony na false (wartość domyślna) to zwraca numer najbliższego słupka.

Składnia:

int iBarShift( string symbol, int timeframe, datetime time, bool
exact=false )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
time – czas otwarcia (Open) słupka który ma zostać znaleziony
exact – tryb szukania:
false – szuka najbliższego słupka o określonej dacie
true – szuka dokładnie tego słupka o określonej dacie lub zwraca -1
Wartość zwracana
numer poszukiwanego słupka lub wartość -1 jeśli nie znaleziono słupka

Przykład:

datetime szukany_slupek = D'2009.09.21 12:00';
int shift = iBarShift("EURUSD",PERIOD_M1, szukany_slupek);
Print("Szukany słupek o dacie ",TimeToStr(szukany_slupek)," ma numer
",shift)

iHighest

Funkcja wyszukuje i zwraca numer słupka (indeks) o najwyższej wartości w określonym zakresie. Wyszukiwania rozpoczyna się od słupka określonego parametrem start i kończy się na liczbie słupków określonych parametrem count. Najwyższa wartość może być przeszukiwana w stosunku do określonego typu danych z wykresu opisanych poniżej w tabeli

Składnia:

int iHighest( string symbol, int timeframe, int type, int
count=WHOLE_ARRAY, int start=0 )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
type – typ określający jakiego rodzaju wartość ma być poszukiwana na
wykresie
count – liczba słupków która ma być przeszukiwana od pozycji start lub
wartość domyślna WHOLE_ARRAY oznaczająca wszystkie słupki
start – początkowy numer słupka od którego ma być poszukiwana najwyższa
wartość

Wartość zwracana
numer słupka o najwyższej wartości

Przykład:

wyznacza najwyższą cenę z 20 słupków od słupka 5 do 24
double wartosc;
wartosc = High[iHighest(NULL,0,MODE_HIGH,20,5)];
Print(Wartość najwyższ =, wartosc);

iLowest

Funkcja wyszukuje i zwraca numer słupka (indeks) o najniższej wartości w określonym zakresie. Wyszukiwania rozpoczyna się od słupka określonego parametrem start i kończy się na liczbie słupków określonych parametrem count. Najniższa wartość może być przeszukiwana w stosunku do określonego typu danych z wykresu opisanych poniżej w tabeli

Składnia:

iLowest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY,
int start=0 )
Parametry
symbol – nazwa symbol wykresu lub NULL co oznacza aktualny symbol z wykresu
timeframe – zakres czasowy wykresu lub 0 co oznacza aktualny zakres czasowy
z wykresu
type – typ określający, jakiego rodzaju wartość ma być poszukiwana na
wykresie
count – liczba słupków która ma być przeszukiwana od pozycji start lub
wartość domyślna WHOLE_ARRAY oznaczająca wszystkie słupki
start – początkowy numer słupka od którego ma być poszukiwana najniższe
wartość
Wartość zwracana
numer słupka o najniższej wartościa

Przykład:

wyznacza najniższą cenę z 20 słupków od słupka 5 do 24
double wartosc;
wartosc = Low[iLowest(NULL,0,MODE_LOW,20,5)];
Print(Wartość najniższa =, wartosc);

Niniejszy materiał, przygotowany przez DM BOŚ S.A. ma charakter wyłącznie informacyjny, prezentowany jest w celach edukacyjnych i nie stanowi porady prawnej oraz nie jest rekomendacją osobistą w ramach świadczenia usługi doradztwa inwestycyjnego zgodnie z przepisami prawa. DM BOŚ S.A. nie udziela gwarancji dokładności, aktualności, oraz kompletności niniejszych informacji. Zaleca się przeprowadzenie we własnym zakresie niezależnego przeglądu informacji z niniejszego materiału.

1/1