Сабж. Как известно иногда она начинается в 19.00, иногда - в 19.05 Пробовал разные средства - поля STATUS и TRAIDSTATUS всегда имеют значения 0. Данные о последней сделке и стакане заявок в период клиринга прекрасно выдаются, по ним судить о времени начала и окончания этого периода нельзя :-(
Один вариант реал-тайм проверки состоит в том, чтобы считать, что вечерняя сессия начинается в 19:00, но отслеживать, идут ли обезличенные сделки по классу SPBFUT. Признак того, что вечерняя сессия открыта -- время >= 19:00 и были сделки после этого времени.
У себя в коде, если по классу SPBFUT нет сделок в последние N секунд нет сделок, считаю, что сессия закрыта и торгов нет. Хорошо помогает, когда биржа глючит, торги остановлены, но статус, по-прежнему, пишет "торгуется".
Если хочется 100% надёжности, то, похоже, только задание расписания торгов поможет.
Спасибо, этот вариант приходил в голову, хотя хотелось "прямой" индикатор. Не понимаю почему столь ценная информация не транслируется биржей и брокером???
Иван Ру написал: Сабж. Как известно иногда она начинается в 19.00, иногда - в 19.05 Пробовал разные средства - поля STATUS и TRAIDSTATUS всегда имеют значения 0. Данные о последней сделке и стакане заявок в период клиринга прекрасно выдаются, по ним судить о времени начала и окончания этого периода нельзя :-(
getParamEx ---------------------------------- Параметр Начало вечерней сессии
ЦитатаИван Ру написал: Сабж. Как известно иногда она начинается в 19.00, иногда - в 19.05 Пробовал разные средства - поля STATUS и TRAIDSTATUS всегда имеют значения 0. Данные о последней сделке и стакане заявок в период клиринга прекрасно выдаются, по ним судить о времени начала и окончания этого периода нельзя :-(getParamEx ---------------------------------- Параметр Начало вечерней сессии
Спасибо Николай, что напомнили. Этот параметр я опробовал еще раньше, с тем же результатом - одни нули. Там куча аналогичных параметров (время начала и конца дневной сессии и т.п.) которые также возвращают всегда нулевые значения.
ЦитатаИван Ру написал: Сабж. Как известно иногда она начинается в 19.00, иногда - в 19.05 Пробовал разные средства - поля STATUS и TRAIDSTATUS всегда имеют значения 0. Данные о последней сделке и стакане заявок в период клиринга прекрасно выдаются, по ним судить о времени начала и окончания этого периода нельзя :-(getParamEx ---------------------------------- Параметр Начало вечерней сессии
Спасибо Николай, что напомнили. Этот параметр я опробовал еще раньше, с тем же результатом - одни нули. Там куча аналогичных параметров (время начала и конца дневной сессии и т.п.) которые также возвращают всегда нулевые значения.
Очевидно у Вас не выбран этот параметр Посмотрите его в ТТП. Картинка выше. Если есть то должно читаться в луа.
Любопытно... Я так понимаю картинка именно со срочного рынка?
Увы, у себя в меню "Доступные параметры" для инструментов срочного рынка я не вижу такого параметра "Начало вечерней сессии" и ничего аналогичного. Скажите какую версию терминала и какого брокера используете? (У меня 7911 финам)
В луа я (безуспешно) использовал такие параметры:
local STARTTIME = getParamEx('SPBFUT',value.sec, 'STARTTIME').param_value -- STRING Начало основной сессии local ENDTIME = getParamEx('SPBFUT',value.sec, 'ENDTIME').param_value -- STRING Окончание основной сессии local EVNSTARTTIME = getParamEx('SPBFUT',value.sec, 'EVNSTARTTIME').param_value -- STRING Начало вечерней сессии local EVNENDTIME = getParamEx('SPBFUT',value.sec, 'EVNENDTIME').param_value -- STRING Окончание вечерней сессии local MONSTARTTIME = getParamEx('SPBFUT',value.sec, 'MONSTARTTIME').param_value -- STRING Начало утренней сессии local MONENDTIME = getParamEx('SPBFUT',value.sec, 'MONENDTIME').param_value -- STRING Окончание утренней сессии
Иван Ру написал: Любопытно... Я так понимаю картинка именно со срочного рынка?
Увы, у себя в меню "Доступные параметры" для инструментов срочного рынка я не вижу такого параметра "Начало вечерней сессии" и ничего аналогичного. Скажите какую версию терминала и какого брокера используете? (У меня 7911 финам)
В луа я (безуспешно) использовал такие параметры:
local STARTTIME = getParamEx('SPBFUT',value.sec, 'STARTTIME').param_value -- STRING Начало основной сессии local ENDTIME = getParamEx('SPBFUT',value.sec, 'ENDTIME').param_value -- STRING Окончание основной сессии local EVNSTARTTIME = getParamEx('SPBFUT',value.sec, 'EVNSTARTTIME').param_value -- STRING Начало вечерней сессии local EVNENDTIME = getParamEx('SPBFUT',value.sec, 'EVNENDTIME').param_value -- STRING Окончание вечерней сессии local MONSTARTTIME = getParamEx('SPBFUT',value.sec, 'MONSTARTTIME').param_value -- STRING Начало утренней сессии local MONENDTIME = getParamEx('SPBFUT',value.sec, 'MONENDTIME').param_value -- STRING Окончание утренней сессии
имена параметров надо задавать по англицки. Для этого делаете DDE вывод таблицы параметров с именами столбцов в excel и смотрите имя.
Проблема решена по совету Николая Камынина. После того как включил параметр "Время начала вечерней сессии" в таблице "Текущие торги" строка local EVNSTARTTIME = getParamEx('SPBFUT',value.sec, 'EVNSTARTTIME').param_value -- STRING Начало вечерней сессии начала возвращать нужное значение в строковом формате
Иван Ру написал: Проблема решена по совету Николая Камынина. После того как включил параметр "Время начала вечерней сессии" в таблице "Текущие торги" строка local EVNSTARTTIME = getParamEx('SPBFUT',value.sec, 'EVNSTARTTIME').param_value -- STRING Начало вечерней сессии начала возвращать нужное значение в строковом формате
пардон - формат NUMBER вида 190500, можно отнять 190000 и получить время в минутах, помножить его на 60 и скорректировать время в формате posix