SymbolInfoSessionTrade

Позволяет получить время начала и время окончания  указанной торговой сессии для указанных символа и дня недели.

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );

Параметры

name

[in]  Имя символа.

ENUM_DAY_OF_WEEK

[in]  День недели, значение из перечисления ENUM_DAY_OF_WEEK.

uint

[in]  Порядковый номер сессии, для которой нужно получить время начала и время окончания. Индексация сессий начинается с 0.

from

[out]  Время начала сессии в секундах от 00 часов 00 минут, в полученном значении дату следует игнорировать.

to

[out]  Время окончания сессии  в секундах от 00 часов 00 минут, в полученном значении дату следует игнорировать.

Возвращаемое значение

Если данные для указанных сессии, символа и дня недели получены, то возвращает true, иначе возвращает false.

Пример:

#define SYMBOL_NAME   Symbol()
#define SESSION_INDEX 0
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- распечатаем заголовок с символом и индексом сессии SESSION_INDEX и
//--- в цикле по дням недели с ПН по ПТ распечатаем в журнале время начала и конца торговой сессии
   PrintFormat("Symbol %s, Trade session %d:"SYMBOL_NAMESESSION_INDEX);
   for(int i=MONDAYi<SATURDAYi++)
      SymbolInfoSessionTradePrint(SYMBOL_NAME, (ENUM_DAY_OF_WEEK)iSESSION_INDEX);
   /*
   результат:
   Symbol GBPUSDTrade session 0:
   - Monday     00:15 - 23:55
   - Tuesday    00:15 - 23:55
   - Wednesday  00:15 - 23:55
   - Thursday   00:15 - 23:55
   - Friday     00:15 - 23:55
   */
  }
//+------------------------------------------------------------------+
//| Выводит в журнал время начала и окончания указанной              |
//| торговой сессии для указанных символа и дня недели               |
//+------------------------------------------------------------------+
void SymbolInfoSessionTradePrint(const string symbolconst ENUM_DAY_OF_WEEK day_of_weekconst uint session_index)
  {
//--- объявим переменные для записи начала и конца торговой сессии
   datetime date_from;  // время начала сессии
   datetime date_to;    // время окончания сессии
   
//--- получаем данные торговой сессии по символу и дню недели
   if(!SymbolInfoSessionTrade(symbolday_of_weeksession_indexdate_fromdate_to))
     {
      Print("SymbolInfoSessionTrade() failed. Error "GetLastError());
      return;
     }
     
//--- создаём наименование дня недели из константы перечисления
   string week_day=EnumToString(day_of_week);
   if(week_day.Lower())
      week_day.SetChar(0ushort(week_day.GetChar(0)-32));
 
//--- выводим в журнал данные по указанной торговой сессии
   PrintFormat("- %-10s %s - %s"week_dayTimeToString(date_fromTIME_MINUTES), TimeToString(date_toTIME_MINUTES));
  }

Смотри также

Информация об инструменте, TimeToStruct, Структура даты