getInfoParam is not a string?

Страницы: Пред. 1 2
RSS
getInfoParam is not a string?
 
Цитата
DronGO пишет:
А почему дата меняется только утром? а не в 00:00:00?
Потому, что ночью торги ещё не начались. И в выходные торгов также нет. Вполне логично, что дата торгов меняется только в торговый день. Ключевое слово здесь "торгов".
Надо делать так, как надо. А как не надо - делать не надо.
 
Здесь были какие-то изменения?

Судя по всему, при подключении к серверу в неторговый день, теперь время сервера начинает отсчитываться с 9-ти утра, так, как будто торги последнего торгового дня ещё не закончились, точнее даже не начинались.
Зачем?
Надо делать так, как надо. А как не надо - делать не надо.
 
торги по фьючерсам начинаются вечером вчера. Т е после вечернего клиринга начинаются завтрашние торги.
 
А это вообще замечательно:

Время сервера: 10:52:46 - "началась новая торговая сессия" от 06.05.2016
При этом на графике уже есть свеча за 18:45 от 06.05.2016.

Исправьте это недоразумение, чтобы скрипт всегда мог однозначно понять закончилась ли торговая сессия, дату которой QUIK транслирует или ещё не начиналась.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Роман написал:
Не могу понять, у меня почему то getInfoParam не разбирается как стринг, это глюк или только у меня такая проблема

message( string.gsub(getInfoParam('SERVERTIME'),':',''),100)        

4,5)..string.sub(getInfoParam('SERVERTIME'),7,9),100)

все два возвращают 23:22:21
Добрый день,
объясняю, почему так происходит.
---------------------------------
getInfoParam('SERVERTIME')  возвращает пустую строку
-----------------------------------
string.gsub  от пустой строки  - пустая строка
-----------------------------
message , если если его параметр пустая строка, выводит локальное время.
-------------------------------
таким образом, данный прикол - это особенность работы функции message
-----------------------------
Успехов в изучении КВИК.
 
пардон, опечатка
string.gsub  от пустой строки  - nil
-----------------------------
message , если если nil, выводит локальное время.
-------------------------------
 
пардон, верно первое
--------
getInfoParam('SERVERTIME')  возвращает пустую строку
-----------------------------------
string.gsub  от пустой строки  - пустая строка
-----------------------------
message , если если его параметр пустая строка, выводит локальное время.
-------------------------------
таким образом, данный прикол - это особенность работы функции message  
-----------------------------
 

Хм... В 7-м Квике до начала следующего торгового дня время сервера не отображается, что ничем не лучше формата записи > 24 ч.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
А это вообще замечательно:
   
Время сервера: 10:52:46 - "началась новая торговая сессия" от 06.05.2016
При этом на графике уже есть свеча за 18:45 от 06.05.2016.

Исправьте это недоразумение, чтобы скрипт всегда мог однозначно понять закончилась ли торговая сессия, дату которой QUIK транслирует или ещё не начиналась.
Прочитайте локальную дату и время и сравните ее с датой текущей сессии и временем сервера.
И будет ваш скрипт знать точно, что и когда.
 
Ув. разработчики,
стоит задача выгрузки данных по окончании торговой сессии.
Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что...
Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Надо делать так, как надо. А как не надо - делать не надо.
 
Здравствуйте,
Период окончания вечерней сессии указан в расписании торгов.
Если данный способ не устраивает, рекомендуем уточнить у специалистов биржи, рекомендуемый ими метод.
 
Цитата
Sergey Gorokhov написал:
Период окончания вечерней сессии указан в расписании торгов.
Я знаю. Но терминал не транслирует время сервера после 23:59:59, о чём я написал выше.

Цитата
Sergey Gorokhov написал:
Если данный способ не устраивает
Вы предложили какой-то способ?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Вы предложили какой-то способ?

Да смотреть расписание торгов.
 
Именно на регламент я и ориентируюсь.
К примеру, в условии скрипта указано, что если время сервера больше 23:50, то необходимо сохранить данные за прошедший торговый день.
Если раньше этот способ работал, и скрипт, будучи запущенным в любой момент, срабатывал в нужное время, то теперь время сервера не является надёжным источником.
И при чём тут специалисты биржи, если ваш терминал не транслирует время сервера?
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель,
Вопрос был о способе определить период окончания вечерней сессии, на это и был дан ответ.
Время сервера напрямую зависит от трансляции данных в терминал.
Предположительно, причиной может быть отсутствие активных торговых шлюзов на сервере
Если интересует исследование вопроса, необходимо смотреть со стороны сервера, то есть нужен брокер.
 
Старатель,
Помощь брокера не требуется. Ситуацию удалось воспроизвести на тесте.
Проблема изучается. Постараемся в ближайшее время дать ответ.
 
Sergey Gorokhov,
Это хорошо, что удалось воспроизвести.
Почему были проигнорированы мои сообщения 3 месяца назад?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Почему были проигнорированы мои сообщения 3 месяца назад?

К сожалению не готов назвать причины, будем разбираться с этим внутри компании.
Приносим извинения.
 
Также хочу отметить, что по какой-то причине после рестарта сервера и смены даты иногда (?) параметр "LASTRECORDTIME" равен 23:59
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Также хочу отметить, что по какой-то причине после рестарта сервера и смены даты иногда (?) параметр "LASTRECORDTIME" равен 23:59

К сожалению описанная ситуация не повторяется. Просьба сообщить больше подробностей, когда запускали терминал, когда подключали к серверу и т.д.
также, просьба выложить поясняющие скриншоты
 
А вы проверяйте скриптом через 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
Надо делать так, как надо. А как не надо - делать не надо.
 
Установлена настройка "Очищать данные после смены даты: На сервере (при установлении связи)"
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
А вы проверяйте скриптом через getInfoParam('LASTRECORDTIME')

Уточните где именно проверяется LASTRECORDTIME?
Если в каком-либо колбеке, то в каком?
Или в цикле в main?
Было бы замечательно получить хотя-бы пример на котором повторяется проблема.
И проверить поведение на последней версии 7.2.
У нас никак не получается повторить проблему
 
Цитата
Старатель написал:
Ув. разработчики,
стоит задача выгрузки данных по окончании торговой сессии.
Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что...
Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Ошибка с неверным отображением времени сервера будет исправлена в     одной из очередных версий программы.
    Приносим извинения за причиненные неудобства.
 
Цитата
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.
Надо делать так, как надо. А как не надо - делать не надо.
 
Код
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
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Ув. разработчики,
стоит задача выгрузки данных по окончании торговой сессии.
Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что...
Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Добрый день,
   
    Описанная проблема была устранена в версии 7.7.0     терминала QUIK.
    Рекомендуем Вам обновить версию программы.
    Приносим извинения за причиненные неудобства.
Страницы: Пред. 1 2
Читают тему
Наверх