DronGO пишет: А почему дата меняется только утром? а не в 00:00:00?
Потому, что ночью торги ещё не начались. И в выходные торгов также нет. Вполне логично, что дата торгов меняется только в торговый день. Ключевое слово здесь "торгов".
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.05.2016 13:58:14
Здесь были какие-то изменения? Судя по всему, при подключении к серверу в неторговый день, теперь время сервера начинает отсчитываться с 9-ти утра, так, как будто торги последнего торгового дня ещё не закончились, точнее даже не начинались. Зачем?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
09.05.2016 15:18:23
торги по фьючерсам начинаются вечером вчера. Т е после вечернего клиринга начинаются завтрашние торги.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
10.05.2016 00:48:22
А это вообще замечательно: Время сервера: 10:52:46 - "началась новая торговая сессия" от 06.05.2016 При этом на графике уже есть свеча за 18:45 от 06.05.2016.
Исправьте это недоразумение, чтобы скрипт всегда мог однозначно понять закончилась ли торговая сессия, дату которой QUIK транслирует или ещё не начиналась.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
10.05.2016 06:14:44
Цитата
Роман написал: Не могу понять, у меня почему то getInfoParam не разбирается как стринг, это глюк или только у меня такая проблема
Добрый день, объясняю, почему так происходит. --------------------------------- getInfoParam('SERVERTIME') возвращает пустую строку ----------------------------------- string.gsub от пустой строки - пустая строка ----------------------------- message , если если его параметр пустая строка, выводит локальное время. ------------------------------- таким образом, данный прикол - это особенность работы функции message ----------------------------- Успехов в изучении КВИК.
Пользователь
Сообщений: Регистрация: 30.01.2015
10.05.2016 06:20:31
пардон, опечатка string.gsub от пустой строки - nil ----------------------------- message , если если nil, выводит локальное время. -------------------------------
Пользователь
Сообщений: Регистрация: 30.01.2015
10.05.2016 06:26:01
пардон, верно первое -------- getInfoParam('SERVERTIME') возвращает пустую строку ----------------------------------- string.gsub от пустой строки - пустая строка ----------------------------- message , если если его параметр пустая строка, выводит локальное время. ------------------------------- таким образом, данный прикол - это особенность работы функции message -----------------------------
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.05.2016 07:17:58
Хм... В 7-м Квике до начала следующего торгового дня время сервера не отображается, что ничем не лучше формата записи > 24 ч.
Надо делать так, как надо. А как не надо - делать не надо.
Время сервера: 10:52:46 - "началась новая торговая сессия" от 06.05.2016 При этом на графике уже есть свеча за 18:45 от 06.05.2016.
Исправьте это недоразумение, чтобы скрипт всегда мог однозначно понять закончилась ли торговая сессия, дату которой QUIK транслирует или ещё не начиналась.
Прочитайте локальную дату и время и сравните ее с датой текущей сессии и временем сервера. И будет ваш скрипт знать точно, что и когда.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
13.08.2016 00:53:25
Ув. разработчики, стоит задача выгрузки данных по окончании торговой сессии. Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что... Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
16.08.2016 06:20:51
Здравствуйте, Период окончания вечерней сессии указан в расписании торгов. Если данный способ не устраивает, рекомендуем уточнить у специалистов биржи, рекомендуемый ими метод.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.08.2016 06:52:54
Цитата
Sergey Gorokhov написал: Период окончания вечерней сессии указан в расписании торгов.
Я знаю. Но терминал не транслирует время сервера после 23:59:59, о чём я написал выше.
Именно на регламент я и ориентируюсь. К примеру, в условии скрипта указано, что если время сервера больше 23:50, то необходимо сохранить данные за прошедший торговый день. Если раньше этот способ работал, и скрипт, будучи запущенным в любой момент, срабатывал в нужное время, то теперь время сервера не является надёжным источником. И при чём тут специалисты биржи, если ваш терминал не транслирует время сервера?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
16.08.2016 07:33:50
Старатель, Вопрос был о способе определить период окончания вечерней сессии, на это и был дан ответ. Время сервера напрямую зависит от трансляции данных в терминал. Предположительно, причиной может быть отсутствие активных торговых шлюзов на сервере Если интересует исследование вопроса, необходимо смотреть со стороны сервера, то есть нужен брокер.
Пользователь
Сообщений: Регистрация: 23.01.2015
16.08.2016 08:52:29
Старатель, Помощь брокера не требуется. Ситуацию удалось воспроизвести на тесте. Проблема изучается. Постараемся в ближайшее время дать ответ.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
16.08.2016 21:29:29
Sergey Gorokhov, Это хорошо, что удалось воспроизвести. Почему были проигнорированы мои сообщения 3 месяца назад?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
17.08.2016 06:31:28
Цитата
Старатель написал: Почему были проигнорированы мои сообщения 3 месяца назад?
К сожалению не готов назвать причины, будем разбираться с этим внутри компании. Приносим извинения.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
18.08.2016 23:12:57
Также хочу отметить, что по какой-то причине после рестарта сервера и смены даты иногда (?) параметр "LASTRECORDTIME" равен 23:59
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
19.08.2016 09:38:19
Цитата
Старатель написал: Также хочу отметить, что по какой-то причине после рестарта сервера и смены даты иногда (?) параметр "LASTRECORDTIME" равен 23:59
К сожалению описанная ситуация не повторяется. Просьба сообщить больше подробностей, когда запускали терминал, когда подключали к серверу и т.д. также, просьба выложить поясняющие скриншоты
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
19.08.2016 23:33:14
А вы проверяйте скриптом через getInfoParam('LASTRECORDTIME') Терминал работает круглосуточно. В настройках стоит "Восстанавливать связь автоматически". Утром после рестарта сервера и смены даты getTradeDate().date параметр "LASTRECORDTIME" бывает равен 23:59:хх Скринов нету, есть только логи:
Цитата
18.08.16 08:45:09.175 Disconnected 18.08.16 09:05:03.015 Trade date: 18.08.2016; Last record time: 23:59 18.08.16 09:05:03.506 Connected
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
20.08.2016 14:23:59
Установлена настройка "Очищать данные после смены даты: На сервере (при установлении связи)"
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
22.08.2016 06:10:58
Цитата
Старатель написал: А вы проверяйте скриптом через getInfoParam('LASTRECORDTIME')
Уточните где именно проверяется LASTRECORDTIME? Если в каком-либо колбеке, то в каком? Или в цикле в main? Было бы замечательно получить хотя-бы пример на котором повторяется проблема. И проверить поведение на последней версии 7.2. У нас никак не получается повторить проблему
QUIK clients support
Сообщений: Регистрация: 27.01.2015
22.08.2016 15:18:12
Цитата
Старатель написал: Ув. разработчики, стоит задача выгрузки данных по окончании торговой сессии. Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что... Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Ошибка с неверным отображением времени сервера будет исправлена в одной из очередных версий программы. Приносим извинения за причиненные неудобства.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.08.2016 14:16:48
Цитата
Sergey Gorokhov написал: Уточните где именно проверяется LASTRECORDTIME? Если в каком-либо колбеке, то в каком? Или в цикле в main? Было бы замечательно получить хотя-бы пример на котором повторяется проблема.
Вот код:
Код
local Date = getTradeDate().date
function main()
while not_stopped do
local TradeDate = getTradeDate().date
if TradeDate and TradeDate ~= '' and TradeDate ~= Date then
message('Trade date: ' .. TradeDate .. '; Last record time: ' .. getInfoParam('LASTRECORDTIME'))
return
end
sleep(1) -- Чтобы воспроизвести наверняка, можете убрать sleep
end
end
Возможно причина в том, что getTradeDate меняется раньше, чем сбрасывается LASTRECORDTIME.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
27.08.2016 14:18:40
Код
local Date = getTradeDate().date
function main()
while not stopped do
local TradeDate = getTradeDate().date
if TradeDate and TradeDate ~= '' and TradeDate ~= Date then
message('Trade date: ' .. TradeDate .. '; Last record time: ' .. getInfoParam('LASTRECORDTIME'))
return
end
sleep(1) -- Чтобы воспроизвести наверняка, можете убрать sleep
end
end
Надо делать так, как надо. А как не надо - делать не надо.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
23.01.2017 15:36:19
Цитата
Старатель написал: Ув. разработчики, стоит задача выгрузки данных по окончании торговой сессии. Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что... Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Добрый день,
Описанная проблема была устранена в версии 7.7.0 терминала QUIK. Рекомендуем Вам обновить версию программы. Приносим извинения за причиненные неудобства.