Добавить временную метку в потоках маркет-даты

Страницы: 1
RSS
Добавить временную метку в потоках маркет-даты
 
Здравствуйте.

Транслирует ли биржа время в потоке Level 2 и потоке параметров в шлюзы?
Я почему спрашиваю. Иногда Часто сервер QUIK брокера тупит: по нескольку минут не транслирует маркет-дата. Когда (и если) он вдруг оживает, нужно понимание, насколько актуальные данные он только что прислал в OnQuote и OnParam, можно ли им доверять или это данные 10-минутной давности, и они нафиг не нужны.

Было бы неплохо в потоке маркет-даты иметь их временную метку.
 
Добрый день,

Касательно времени в потоке Level 2. Параметр времени не транслируется, однако можно использовать функцию getInfoParam("SERVERTIME ") для получения  времени сервера. Подробно об этом написано в документе QLUA.chm в разделе "Сервисные функции" в соответствующем пункте "getInfoParam".

Получая данный параметр, Вы можете сравнивать его с текущим временем на  локальной машине. Таким образом, Вы сможете проверить, насколько  актуальную информацию Вам прислал сервер. Если время сервера разнится с  локальным больше, чем на 2-3 секунды, значит сервер прислал неактуальную  информацию.
 
Цитата
Daniil Pozdnyakov написал:
Касательно времени в потоке Level 2. Параметр времени не транслируется

Из Plaza-2 какой поток используется?
 
И какой поток используется для ТТТ?
 
Daniil Pozdnyakov?
 
Добрый день,

Прежде всего приносим извинения за длительную задержку с ответом.

Касательно используемого потока из Plaza-2. Используется поток orders_aggr.

Касательно потоков используемых для ТТТ. ТТТ формируется не из одного потока, а из нескольких. В основном это FORTS_FUTINFO_REPL, FORTS_FUTCOMMON_REPL (для опционов соответственно FORTS_OPTINFO_REPL, FORTS_OPTCOMMON_REPL)
 
Цитата
Daniil Pozdnyakov написал:
Используется поток orders_aggr.

Обратите внимание на поля moment и moment_ns потока таблицы orders_aggr:
Код
Поле      Тип  Описание 
moment    t    Время последнего обновления записи
moment_ns u8   Время последнего обновления записи (UNIX-время в наносекундах по стандарту UTC)


Цитата
Daniil Pozdnyakov написал:
ТТТ формируется не из одного потока, а из нескольких. В основном это FORTS_FUTINFO_REPL, FORTS_FUTCOMMON_REPL (для опционов соответственно FORTS_OPTINFO_REPL, FORTS_OPTCOMMON_REPL)
Начиная с версии 6.5 потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL объявляются устаревшими, вместо них следует использовать FORTS_COMMON_REPL.

Обратите внимание на поля mod_time и mod_time_ns таблицы common:
Код
Поле        Тип  Описание 
mod_time    t    Дата и время изменения записи
mod_time_ns u8   Дата и время изменения записи (UNIX-время в наносекундах по стандарту UTC)
 
Здравствуйте!

Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и  сообщить Вам результаты анализа. Впоследствии, по результатам анализа,  будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Daniil Pozdnyakov,
Поскольку значения из ТТТ могут быть получены в разное время, то временная метка должна быть проставлена для каждого параметра, например дополнительным полем в таблице, возвращаемой getParamEx.
 
Считаю это важной доработкой.
Коллеги, кто так же считает плюсаните, чтобы повысить приоритет предложения.
 
Цитата
r написал:
Считаю это важной доработкой.
Коллеги, кто так же считает плюсаните, чтобы повысить приоритет предложения.
почему бы не подписаться на историю параметра на тикоаом интервале и не иметь сразу всю историю его изменений за торговый день со временем в микросекундах?
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
иметь сразу всю историю его изменений за торговый день со временем в микросекундах?
Там есть микросекунды? Или хотя бы миллисекунды?

Цитата
s_mike@rambler.ru написал:
почему бы не подписаться на историю параметра на тикоаом интервале
Мне нужно только одно последнее значение параметра. И не хочу грузить все эти гигабайты ненужной информации в память.
 
Цитата
r написал:
Цитата
s_mike@rambler.ru написал:
иметь сразу всю историю его изменений за торговый день со временем в микросекундах?
Там есть микросекунды? Или хотя бы миллисекунды?

Цитата
s_mike@rambler.ru написал:
почему бы не подписаться на историю параметра на тикоаом интервале
Мне нужно только одно последнее значение параметра. И не хочу грузить все эти гигабайты ненужной информации в память.
миллисееундв найдете. Микросекунды тоже, только надо присмотреться )))

никаких гигабайтов там нет. Но можно подождать лет 10-15 в надежде, что ваше предложение будет реализовано. Дело ваше.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
миллисееундв найдете. Микросекунды тоже
У вас значения ms и mcs для параметров бывают отличны от нуля?
Но вопрос в том, чье время там проставлено (явно не биржевое) и насколько ему можно доверять?
Не может ли случиться так, что сервер пришлет старые данные, а время проставит текущее?
 
не может
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
не может

Откуда такая уверенность? Оттуда же, откуда
Цитата
s_mike@rambler.ru написал:
миллисееундв найдете. Микросекунды тоже
?
Ну что ж, тогда факты не совпадают с вашим представлением об "идеальном мире".
 
Цитата
r написал:
Цитата
s_mike@rambler.ru написал:
миллисееундв найдете. Микросекунды тоже
У вас значения ms и mcs для параметров бывают отличны от нуля?
Но вопрос в том, чье время там проставлено (явно не биржевое) и насколько ему можно доверять?
Не может ли случиться так, что сервер пришлет старые данные, а время проставит текущее?
синхронизируйте компьютер с сервером точного времени и получите время биржи с погрешностью не более 10 ms (при соответстующих настройках винды)
потом можете сравнить с временем сервера и потока сделок.
-------------------------  
На основе собственного опыта могу сказать, что время сервера брокера с точным временем совпадает в пределах погрешности.
А вот данные по свечам обычно отстают , иногда до 10 секунд.  
 
Цитата
s_mike@rambler.ru написал:
никаких гигабайтов там нет.

Открыл я значит, тиковый график по LAST для SiH2, заказал пропущенные данные, чтобы понимать сколько за день накопится. Занимаемая квиком память выросла на 361 Мб.
Открыл тики по BID - прибавилось ещё 33 Мб.
А когда несколько инструментов, сколько там параметров в гигабайт влезет?
 
Цитата
Daniil Pozdnyakov написал:
Касательно времени в потоке Level 2. Параметр времени не транслируется, однако можно использовать функцию getInfoParam("SERVERTIME ") для получения  времени сервера. Подробно об этом написано в документе QLUA.chm в разделе "Сервисные функции" в соответствующем пункте "getInfoParam".

Получая данный параметр, Вы можете сравнивать его с текущим временем на  локальной машине. Таким образом, Вы сможете проверить, насколько  актуальную информацию Вам прислал сервер.

Daniil Pozdnyakov, поясните, какая связь между Level 2, ТТТ и временем сервера. Заодно и nikolz почитает для общего развития.

Также поясните, чьё время указано в свечах по параметрам из ТТТ, кто и в какой момент проставляет это время?
 
Цитата
r написал:
Цитата
Daniil Pozdnyakov написал:
Касательно времени в потоке Level 2. Параметр времени не транслируется, однако можно использовать функцию getInfoParam("SERVERTIME ") для получения  времени сервера. Подробно об этом написано в документе QLUA.chm в разделе "Сервисные функции" в соответствующем пункте "getInfoParam".

Получая данный параметр, Вы можете сравнивать его с текущим временем на  локальной машине. Таким образом, Вы сможете проверить, насколько  актуальную информацию Вам прислал сервер.

Daniil Pozdnyakov, поясните, какая связь между Level 2, ТТТ и временем сервера. Заодно и nikolz почитает для общего развития.

Также поясните, чьё время указано в свечах по параметрам из ТТТ, кто и в какой момент проставляет это время?
Увы,Вы невнимательно читаете
Про свечи я указал что данные приходят с опозданием до 10 секунд. т е свеча на графике появляется когда время сервера брокера, время  сервера точного времени уже на 10 секунд отстоит от времени свечи, которое и есть время сервера точного времени.  
Рекомендую изучить алгоритм формирования свечи.
 
Добрый день,

Касательно связи между Level 2, TTT и временем сервера. Время, которое Вы получаете, - это время изменения какого-либо параметра любого пакета данных, переданного сервером.

Касательно вопроса, чьё время указано в свечах по параметрам из ТТТ. На свечках ТТТ отображается время сервера (SERVERTIME)
 
Цитата
Daniil Pozdnyakov написал:
Касательно связи между Level 2, TTT и временем сервера. Время, которое Вы получаете, - это время изменения какого-либо параметра любого пакета данных, переданного сервером.

Такое чувство, что меня пытаются обмануть.
Запускаю скрипт, который транслирует время сервера в окно сообщений:
Код
local run = true
function OnStop(flag)
  run = false
end

function main()
  local st
  while run do
    local t = getInfoParam("SERVERTIME")
    if t ~= st then
      st = t
      message(st)
    end
    sleep(1000)
  end
end

И в какой-то момент выдергиваю сетевой кабель из компа. И, о чудо! Компьютер продолжает "получать пакеты данных с сервера".

И только спустя 23 сек понимает, что данных получать вроде как не должен.

Daniil Pozdnyakov, как так-то?
 
Цитата
r написал:
И, о чудо!
И правда чудо. В игрушках сетевых так делают, время считается на клиенте и синхронизируется с серверным с помощью PLL, поэтому течет "плавно" и фактически синхронно с сервером независимо от пинга и джиттера пакетов. Но в игрушке и дальше идут, по рассчитанному времени отрисовывают всю сцену, включая прогнозные позиции юнитов, не дожидаясь получения от сервера актуальных позиций. Надеюсь, арка в эту сторону не собирается идти )
 
Добрый день,

комментарий данной особенности был предоставлен в данной ветки форума:
https://forum.quik.ru/forum9/topic3673/
 
Цитата
Daniil Pozdnyakov написал:
комментарий данной особенности был предоставлен в данной ветки форума:
https://forum.quik.ru/forum9/topic3673/

Последний комментарий от сотрудника клиентской поддержки в указанной вами ветке:
Цитата
Egor Zaytsev написал:
Добрый день.

Можно на адрес  quiksupport@arqatech.com
В теме письма укажите ссылку на данную ветку форума.

Или вы пишите про комментарий?
Цитата
Игорь написал:
При физическом разрыве соединения время сервера будет продолжать отсчет. По факту это будет уже не время сервера, а время локального таймера.

В любом случае, использовать время сервера для целей, обозначенных в текущей теме, нельзя, и рекомендация "использовать функцию getInfoParam("SERVERTIME ")" некорректна.
 
Добрый день,

Данная ветка форума для ознакомления была предоставлена для ответа на Ваш вопрос, почему SERVERTIME продолжает обновляться после выдергивания сетевого кабеля. Если конкретно, речь идёт о фрагменте данного сообщения: "...При физическом разрыве соединения время сервера будет продолжать отсчет.  По факту это будет уже не время сервера, а время локального таймера...".

В качестве альтернативного решения получения временной метки сделок предлагаем анализировать таблицу обезличенных сделок при помощи Lua. В данной таблице транслируется время совершения сделки. Чтобы получить доступ к данной таблице можно использовать функцию getItem().

Касательно таблицы обезличенных сделок можно подробно почитать в документации info.chm в разделе "Раздел 3. Просмотр информации" в соответствующем подразделе "Таблица обезличенных сделок".

Касательно функции getItem() можно почитать в документации QLUA.chm в разделе "Функции для обращения к строкам произвольных таблиц QUIK" в соответствующем подразделе "getItem". Также рекомендуем обратить внимание на подраздел "Таблицы, используемые в функциях ..."
 
Цитата
Daniil Pozdnyakov написал:
Данная ветка форума для ознакомления была предоставлена для ответа на Ваш вопрос, почему SERVERTIME продолжает обновляться после выдергивания сетевого кабеля.
У меня такого вопроса и не возникало, я изначально знал, что SERVERTIME - это фикция. Просто показал вам и другим пользователям, что SERVERTIME не подходит для решения обозначенной задачи, от слова совсем.

Цитата
Daniil Pozdnyakov написал:
В качестве альтернативного решения получения временной метки сделок предлагаем анализировать таблицу обезличенных сделок при помощи Lua.
Надеюсь, не стоит объяснять, что Level II, ТТТ и обезличенные сделки - это совершенно разные потоки, которые не синхронизированы между собой? К тому же, изменение котировок совсем не обязательно сопровождается новой сделкой (привет неликвид).

Поэтому давайте всё же остановимся на добавлении в соответствующие потоки параметров moment, moment_ns, mod_time, mod_time_ns и им аналогичных для других рынков. Странно, что это не было сделано изначально.
 
Цитата
r написал:
Цитата
Daniil Pozdnyakov написал:
Используется поток orders_aggr.
Обратите внимание на поля moment и moment_ns потока таблицы orders_aggr:
Код
  Поле      Тип  Описание 
moment    t    Время последнего обновления записи
moment_ns u8   Время последнего обновления записи (UNIX - время в наносекундах по стандарту UTC)  


Цитата
Daniil Pozdnyakov написал:
ТТТ формируется не из одного потока, а из нескольких. В основном это FORTS_FUTINFO_REPL, FORTS_FUTCOMMON_REPL (для опционов соответственно FORTS_OPTINFO_REPL, FORTS_OPTCOMMON_REPL)
Начиная с версии 6.5 потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL объявляются устаревшими, вместо них следует использовать FORTS_COMMON_REPL.

Обратите внимание на поля mod_time и mod_time_ns таблицы common:
Код
  Поле        Тип  Описание 
mod_time    t    Дата и время изменения записи
mod_time_ns u8   Дата и время изменения записи (UNIX - время в наносекундах по стандарту UTC)  

Присоединяюсь к пожеланию.
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель, Здравствуйте!

Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и  сообщить Вам результаты анализа. Впоследствии, по результатам анализа,  будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Вот ещё один пример никчёмности параметра SERVERTIME:
https://forum.quik.ru/forum1/topic7276/
Что он там показывает, одному брокеру известно, и то не факт.
Страницы: 1
Читают тему
Наверх