Настройка котировочных и торговых сессий

Две функции API позволяют устанавливать котировочные и торговые сессии пользовательского инструмента. Эти два понятия мы рассматривали в разделе Расписания торговых и котировочных сессий.

bool CustomSymbolSetSessionQuote(const string name, ENUM_DAY_OF_WEEK dayOfWeek,
  uint sessionIndex, datetime from, datetime to)

bool CustomSymbolSetSessionTrade(const string name, ENUM_DAY_OF_WEEK dayOfWeek,
  uint sessionIndex, datetime from, datetime to)

CustomSymbolSetSessionQuote устанавливает время начала и окончания указанной по номеру (sessionIndex) котировочной сессии для конкретного дня недели (dayOfWeek). CustomSymbolSetSessionTrade делает то же самое для торговых сессий.

Нумерация сессий начинается с 0.

Добавлять сессии можно только последовательно, то есть сессию с индексом 1 можно добавить только в том случае, если уже существует сессия с индексом 0. При нарушении этого правила новая сессия не создастся, а функция вернет значение false.

Значения дат в параметрах from и to измеряются в секундах, from должно быть меньше to. Диапазон ограничен двумя сутками — от 0 (00 часов 00 минут 00 секунд) до 172800 (23 часа 59 минут 59 секунд на следующий день). Переход через сутки потребовался для того, чтобы можно было указать сессии, которые начинаются до полуночи, а заканчиваются — после. Данная ситуация часто встречается, когда биржа расположена на другом конце света относительно серверов брокера (дилера).  

Если для сессии sessionIndex переданы нулевые параметры начала и конца (from = 0 и to = 0), то она удаляется, а нумерация следующих сессий (если они есть) сдвигается вниз.

Торговые сессии не могут выходить за рамки котировочных.

Например, мы можем создать копию инструмента для другого часового пояса, сдвинув в нем внутрисуточное время котировок и расписание сессий для отладки робота в различных условиях, как у любых экзотических брокеров.