Funkcje daty i czasu

Data i czas występuje na każdym wykresie analizowanych danych, dlatego dla ułatwienie w MQL4 zaimplementowane zostało szereg funkcji operujących na dacie i czasie.

Należy pamiętać, że cała platforma transakcyjna operuje na dacie tzw. Unix (przyjętej w systemie Unix) czyli pomiar czasu w sekundach zaczyna się od godziny 00:00 dnia 1 stycznia 1970 r.

Year

Funkcja zwraca numer bieżącego roku w postaci liczbowej, korzystając z daty serwera brokera.
Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

int y=TimeYear(TimeCurrent());

Month

Funkcja zwraca miesiąc, korzystając z daty serwera brokera. Miesiące liczone są od jeden (1 - styczeń,1,2,3,…,12).

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli pierwsza połowa roku
if( Month() <= 5)
return("Pierwsza połowa roku")

 

Day

Funkcja zwraca numer aktualnego dnia miesiąca, korzystając z daty serwera brokera.

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli sobota to wyjście z funkcji
if(Day()<5) return(0)

DayOfWeek

Funkcja zwraca numer aktualnego dnia tygodnia, korzystając z daty serwera brokera. Dni liczone są od zera (0-niedziela,1,2,3,4,5,6).

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli dni wolne od handle to wyjście z funkcji
if( DayOfWeek()==0 || DayOfWeek()==6 ) return(0);

DayOfYear

Funkcja zwraca numer aktualnego dnia roku, korzystając z daty serwera brokera. Dni liczone są od jeden (1 - 1 stycznia)

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli 245 dzień roku to wychodzimy z funkcji z kodem prawda
if( DayOfYear()==245 ) return(true)

Hour

Funkcja zwraca godzinę, korzystając z daty serwera brokera. Godziny liczone są od zera (0,1,2,3,…,23).

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli przerwa 1 godzinna
bool czy_przerwa = false;
if( Hour() >= 12 || Hour() < 13)
czy_przerwa=true

Minute

Funkcja zwraca minuty, korzystając z daty serwera brokera. Minuty liczone są od zera (0,1,2,3,…,23).
Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli pierwsze 15 minut w godzinie
if( Minute() <= 15)
return("pierwsze 15 minut z całej godziny");

Seconds

Funkcja zwraca ilość sekund, jakie upłynęły w danej minucie, korzystając z daty serwera brokera.

Uwaga! W Testerze strategii data jest wyliczana.

Przykład:

// Jeśli liczba sekund w minucie mniejsza niż 15 to wychodzimy z funkcji
if(Seconds()<=15)
return(0);

 

TimeCurrent

Funkcja zwraca ostatni znany czas serwera (czas ostatnich kwotowań) w postaci liczby sekund, jakie upłynęły od 00:00 1 stycznia 1970r (typ datetime).

Uwaga! W Testerze strategii, data jest wyliczana.

Przykład:

if(TimeCurrent()-OrderOpenTime()<360) return(0)

TimeYear

Funkcja zwraca numer bieżącego roku w postaci liczbowej, korzystając z daty serwera brokera. Zwracana wartość może znajdować się w przedziale od 1970 do 2037.

Składnia:

int TimeYear( datetime time )

Parametry
time - czas w formacie Unix

Wartość zwracana
numer roku na podstawie daty podawanej, jako parametr wywołania funkcji

 

Przykład:

int year = TimeYear(TimeCurrent());

TimeDay

Funkcja zwraca numer dnia w miesiącu na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przemiału 1 do 31.

Składnia:

int TimeDay( datetime date )

Parametry
date - czas w formacie Unix

Wartość zwracana
numer dnia w miesiącu

Przykład:

int day=TimeDay(D'2009.12.31');
// numer dnia to 31

TimeDayOfWeek

Funkcja zwraca numer dnia w tygodniu na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału, gdzie 0 oznacza niedziela, a 1,2,3,4,5,6 - kolejne dni tygodnia.

Składnia:

int TimeDayOfWeek( datetime time )

Parametry
time - czas w formacie Unix

Wartość zwracana
numer dnia w tygodniu

Przykład:

int weekday=TimeDayOfWeek(D'2009.3.11');
// numer dnia to 2 - środa

 

TimeDayOfYear

Funkcja zwraca numer dnia w roku na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału, gdzie 1 - oznacza 1 stycznia, kolejne liczby do 365 odowiadają kolejnym dniom w roku.

Składnia:

int TimeDayOfYear( datetime time )
Parametry
time - czas w formacie Unix
Wartość zwracana
numer dnia w roku

Przykład:

int day = TimeDayOfYear( TimeCurrent() );
// aktualny dzień w roku

 

TimeHour

Funkcja zwraca numer godziny na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału 0 do 23.

Składnia:

int TimeHour( datetime time )
Parametry
time - czas w formacie Unix
Wartość zwracana
numer godziny

Przykład:

int h=TimeHour(TimeCurrent());
// zwraca aktualną wartość numeryczną godziny, czyli po prostu godzinę

 

TimeLocal

Funkcja zwraca czas lokalny komputera, jako liczbę sekund, które upłynęły od 00:00 1 stycznia 1970.

Uwaga! Podczas testów, czas lokalny jest wyznaczany przez tester.

Składnia:

Parametry
time - czas w formacie Unix
Wartość zwracana
numer roku na podstawie daty podawanej, jako parametr wywołania funkcji

Przykład:

if(TimeLocal()-OrderOpenTime()<360) return(0);

TimeMinute

Funkcja zwraca numer minuty na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału 0 do 59.

Składnia:

int TimeMinute( datetime time )
Parametry
time - czas w formacie Unix
Wartość zwracana
numer minuty w godzinie

Przykład:

int m=TimeMinute(TimeCurrent());
 

TimeMonth

Funkcja zwraca numer miesiąca na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału 1 do 12.

Składnia:

int TimeMonth( datetime time )
Parametry
time - czas w formacie Unix
Wartość zwracana
numer miesiąca w roku

Przykład:

int m=TimeMonth(TimeCurrent());

TimeSeconds

Funkcja zwraca liczbę sekund w danej minucie na podstawie podanej daty w formacie Unix. Zwracana wartość jest z przedziału 0 do 50.

Składnia:

int TimeSeconds( datetime time )
Parametry
time - czas w formacie Unix
Wartość zwracana
liczba sekund w minucie

 

Przykład:

int m=TimeSeconds(TimeCurrent());

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