Dostęp do danych handlowych:   SymbolInfoSessionTrade()

Funkcja bool SymbolInfoSessionTrade() pozwala uzyskać czas rozpoczęcia i zakończenia określonej sesji handlowej wybranego instrumentu finansowego i dnia tygodnia. Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

Skrypt do wyświetlenia danych sesji handlowej, takich jak dzień tygodnia, numer sesji, czas jej rozpoczęcia i zakończenia.

#property strict
void OnStart()
  {
//--- tablica z dniami tygodnia
   ENUM_DAY_OF_WEEK days[]=
     {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
      THURSDAY, FRIDAY, SATURDAY
     };
//--- znaleźć rozmiar tablicy
   int size = ArraySize(days);

//---
   Print("Sesje handlowe:");
//--- wyświetlić dane sesji handlowych dla wszystkich dni
//--- dla bieżącego instrumentu finansowego
   for(int i=0; i<size; i++)
     {
      PrintInfoForTradeSessions(_Symbol, days[i]);
     }
  }

//=== FUNKCJE WŁASNE ==============
//--- funkcja do wyświetlenia danych sesji handlowej
void PrintInfoForTradeSessions(string f_symbol, ENUM_DAY_OF_WEEK f_day)
  {
//---
   datetime startSession, finishSession;
   uint sessionIndex = 0;
   bool sessionExist = true;

//--- wyświetlić sesję handlową
   while(sessionExist)
     {
      //--- sprawdzić czy istnieje sesja handlowa
      sessionExist = SymbolInfoSessionTrade(f_symbol, f_day, sessionIndex,
                                            startSession, finishSession);
      //--- jeśli sesja handlowa istnieje
      if(sessionExist)
        {
         //--- wyświetlić dzień tygodnia, numer sesji
         //--- oraz 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 SymbolInfoSessionTrade().