Funkcja bool SymbolInfoSessionQuote() pozwala uzyskać czas rozpoczęcia i zakończenia określonej sesji notowania wybranego instrumentu finansowego i dnia tygodnia. Więcej informacji można znaleźć w specyfikacji MQL4.
Skrypt do wyświetlenia danych sesji notowań, takich jak dzień tygodnia, numer sesji, czas jej rozpoczęcia i zakończenia.
#property strict
void OnStart()
{
//--- tablica zawierająca dni tygodnia
ENUM_DAY_OF_WEEK days[]=
{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
};
//--- znaleźć rozmiar tablicy
int size = ArraySize(days);
//---
Print("Sesje notowań:");
//--- wyświetlić dane sesji notowań dla wszystkich dni
//--- dla bieżącego instrumentu finansowego
for(int i=0; i<size; i++)
{
PrintInfoForQuoteSessions(_Symbol, days[i]);
}
}
//=== FUNKCJE WŁASNE ==============
//--- funkcja do wyświetlenia danych sesji notowań
void PrintInfoForQuoteSessions(string f_symbol, ENUM_DAY_OF_WEEK f_day)
{
//---
datetime startSession, finishSession;
uint sessionIndex = 0;
bool sessionExist = true;
//--- wyświetlić sesję notowań
while(sessionExist)
{
//--- sprawdzić czy istnieje sesja notowań
sessionExist = SymbolInfoSessionQuote(f_symbol, f_day, sessionIndex,
startSession, finishSession);
//--- jeśli sesja notowań istnieje
if(sessionExist)
{
//--- wyświetlić dzień tygodnia, numer sesji, czas jej rozpoczęcia i zakończenia
Print(DayToString(f_day),": indeks sesji = ",sessionIndex,
", początek = ",TimeToString(startSession, TIME_MINUTES),
", koniec = ",TimeToString(finishSession-1, TIME_MINUTES|TIME_SECONDS));
}
//--- zwiększyć licznik sesji o 1
sessionIndex++;
}
}
//--- funkcja do zwrotu dnia tygodnia jako wartości tekstowej
string DayToString(ENUM_DAY_OF_WEEK f_day)
{
switch(f_day)
{
case SUNDAY: return "Niedziela";
case MONDAY: return "Poniedziałek";
case TUESDAY: return "Wtorek";
case WEDNESDAY: return "Środa";
case THURSDAY: return "Czwartek";
case FRIDAY: return "Piątek";
case SATURDAY: return "Sobota";
default: return "Nieznany dzień tygodnia";
}
return ("");
}
Rys. 1. Przykład stosowania funkcji SymbolInfoSessionQuote().