OnOrder без UID

Страницы: 1
RSS
OnOrder без UID
 
В ответ на транзакцию приходит колбек OnOrder без UID:
Цитата
{withdraw_datetime={week_day=1, hour=0, ms=0, mcs=0, day=1, month=1, sec=0, year=1601, min=0}, price=145.01, value_entry_type=0, balance=1, repo_value_balance=0, value=13050.9, qty=9, passive_only_order=0, class_code="QJSIM", activation_time=0, userid="NC0011100000", expiry=0, flags=25, linkedorder=0, ordernum=1704294392, sec_code="GAZP", side_qualifier=0, client_code="91413", firmid="NC0011100000", datetime={week_day=0, hour=23, ms=0, mcs=0, day=14, month=6, sec=0, year=2015, min=16}, yield=0, reject_reason="", capacity=0, acnt_type=0, repo2value=0, start_discount=0, min_qty=0, ext_order_flags=0, exec_type=0, order_num=1704294392, repovalue=0, repoterm=0, accruedint=0, account="NL0011100043", seccode="GAZP", uid=0, brokerref="91413/", exchange_code="", settlecode="", price2=0, trans_id=0, bank_acc_id=""}
И через 0.11 сек OnOrder с заполненным UID:
Цитата


{withdraw_datetime={week_day=1, hour=0, ms=0, mcs=0, day=1, month=1, sec=0, year=1601, min=0}, price=145.01, value_entry_type=0, balance=1, repo_value_balance=0, value=13050.9, qty=9, passive_only_order=0, class_code="QJSIM", activation_time=0, userid="NC0011100000", expiry=0, flags=25, linkedorder=0, ordernum=1704294392, sec_code="GAZP", side_qualifier=0, client_code="91413", firmid="NC0011100000", datetime={week_day=0, hour=23, ms=0, mcs=0, day=14, month=6, sec=0, year=2015, min=16}, yield=0, reject_reason="", capacity=0, acnt_type=0, repo2value=0, start_discount=0, min_qty=0, ext_order_flags=0, exec_type=0, order_num=1704294392, repovalue=0, repoterm=0, accruedint=0, account="NL0011100043", seccode="GAZP", uid=88219, brokerref="91413/", exchange_code="", settlecode="", price2=0, trans_id=0, bank_acc_id=""}
Это нормальная ситуация?
Надо делать так, как надо. А как не надо - делать не надо.
 
Добрый день.
Да,  такое случается. Возможно заявку сервер получил раньше ответа на транзакцию и не смог сразу связать их.
 
Это значит, что после такого колбека обязательно должен прийти OnOrder с заполненным UID?
Какие ещё параметры могут быть не заполненными в колбеках OnOrder, OnTrade? Можете отметить их в руководстве.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Можете отметить их в руководстве.
тогда tech support придётся весь разогнать:)))
надо же перед глупым начальством подчеркнуть собственную важность и заботу о клиенте:))))))
 
Цитата
Старатель пишет:
Это значит, что после такого колбека обязательно должен прийти OnOrder с заполненным UID?
В подавляющем большинстве случаев - да. Но теоретически можно придумать ситуацию в которой клиент может получить заявку без заполненного UID.
 
мда уж...

и после этого они смеют утверждать, что на них наговаривают и что торговля через QUIK отличается стабильностью и постоянством.
 
На практике такой схемы работы не встречается, но теоретически придумать ее возможно.
 
Цитата
Старатель пишет:
Какие ещё параметры могут быть не заполненными в колбеках OnOrder, OnTrade? Можете отметить их в руководстве.
Цитата
Michael Bulychev пишет:
На практике такой схемы работы не встречается, но теоретически придумать ее возможно.
Озвучьте, пожалуйста свою мысль.
Надо делать так, как надо. А как не надо - делать не надо.
 
Гипотетический случай последовательности событий вижу таковой:
- отправлена транзакция
- получена заявка с биржи - в ней нет UID (нет еще ответа на транз)
- тут же закончилась торг. сессия - заявка снята биржей, о чем опять нас уведомили, но UID всё еще нет
- пришел ответ на транзакцию - квик сумел связать заявку с транзакцией и радостно сообщил нам UID на снятой заявке, вызвав OnOrder
 
Цитата
Старатель пишет:
Озвучьте, пожалуйста свою мысль.
Например так: у брокера два независимых сервера QUIK и два комплекта шлюзов в торговую систему. Менеджер с другого сервера может поставить заявку за Вас, которая через торговую систему приедет на другой сервер без UID пользователя. Но на практике такая система не используется.
 
Ответ будет?
Цитата
Старатель пишет:
Какие ещё параметры могут быть не заполненными в колбеках OnOrder, OnTrade? Можете отметить их в руководстве.
Надо делать так, как надо. А как не надо - делать не надо.
 
Здравствуйте.

Таблица заявок - обновляемая таблица. Поэтому, теоретически, обновлён (дописан/удалён) может быть любой параметр, кроме ключевых (ключевые это Номер заявки, Дата торгов, Код класса). На практике же дописывается UID и ID транзакции. Сделано это для того, чтобы как можно скорее отправить информацию о заявке пользователю и не ожидать определения всех атрибутов заявки (определение UID и ID транзакции происходит внутри сервера QUIK и занимает какое-то время).
Таблица сделок - необновляемая. Соответственно, сразу заполняются все (присущие режиму торгов сделки) параметры и запись более не обновляется (даже если OnTrade вызывается более одного раза по одной и той же сделке, такое тоже может быть и не является аномалией).
Касаемо документации Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Цитата
Олег Хуснутдинов пишет:
даже если OnTrade вызывается более одного раза по одной и той же сделке, такое тоже может быть и не является аномалией
ну как обычно - "эт не мы такие, эт вы..."
 
Цитата
Олег Хуснутдинов пишет:
теоретически, обновлён (дописан/удалён) может быть любой параметр, кроме ключевых (ключевые это Номер заявки, Дата торгов, Код класса).
Т.е., возможна такая ситуация, когда OnOrder может прийти, скажем, с незаполненным параметром account, balance или sec_code? И какое в этом случае будет значение параметра: nil или ""/0 в зависимости от типа?
И в этом случае не стоит бить тревогу? Или стоит?

Цитата
Олег Хуснутдинов пишет:
даже если OnTrade вызывается более одного раза по одной и той же сделке, такое тоже может быть и не является аномалией
То, что OnTrade может вызываться более одного раза - я в курсе: при переключении на другой сервер или очистке данных (файл trades.dat, как я понимаю). В каких ещё ситуациях OnTrade по одной сделке может вызываться более одного раза?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Ответ будет?
Цитата
Старатель пишет:
Какие ещё параметры могут быть не заполненными в колбеках OnOrder, OnTrade? Можете отметить их в руководстве.
Добрый день,

Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
 
Цитата
Олег Хуснутдинов пишет:
даже если OnTrade вызывается более одного раза по одной и той же сделке, такое тоже может быть
Считаете ли вы эту информацию существенной? Почему данный факт не отражён в официальной документации по QLUA, а узнаём мы об этом только сейчас случайным образом?
Цитата
Старатель пишет:
В каких ещё ситуациях OnTrade по одной сделке может вызываться более одного раза?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Цитата
Олег Хуснутдинов пишет:
даже если OnTrade вызывается более одного раза по одной и той же сделке, такое тоже может быть
Считаете ли вы эту информацию существенной? Почему данный факт не отражён в официальной документации по QLUA, а узнаём мы об этом только сейчас случайным образом?
Цитата
Старатель пишет:
В каких ещё ситуациях OnTrade по одной сделке может вызываться более одного раза?
Добрый день.

Данный вопрос уже поднимался и не раз. Да в документации это не описано, но готовы зарегистрировать соответствующее пожелание.

Ontrade может быть вызван два раза например, в случаях потери связи между торговой системой и сервером QUIK, а затем получение всей информации заново. В таком случае клиент два раза получит не только заявки, но и сделки.
 
Цитата
Egor Zaytsev пишет:
Ontrade может быть вызван два раза например, в случаях потери связи между торговой системой и сервером QUIK, а затем получение всей информации заново. В таком случае клиент два раза получит не только заявки, но и сделки.
Если пользователь производил очистку данных, то, очевидно, что после подключения к серверу, информация по сделкам придёт повторно. Это понятно, и, наверное, на этом не стоит заострять внимания.
В каком случае, клиент повторно получит данные, если очистка данных на клиентке не производилась?
Надо делать так, как надо. А как не надо - делать не надо.
 
Если у вас есть ссылка на обсуждение (и главное ответы) по этому вопросу, то, дайте, пожалуйста, ссылку. (В документации, к сожалению, нет ни информации, ни ссылки на обсуждение)
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Egor Zaytsev пишет:
Ontrade может быть вызван два раза например, в случаях потери связи между торговой системой и сервером QUIK, а затем получение всей информации заново. В таком случае клиент два раза получит не только заявки, но и сделки.
А, понял. Сразу не сообразил...
Надо делать так, как надо. А как не надо - делать не надо.
 
Может ли прийти колбек OnTrade с незаполненным полем order_num?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Может ли прийти колбек OnTrade с незаполненным полем order_num?
В документации ошибка, правильно параметр называется ordernum
Документацию обязательно поправим
 
Насколько я помню, ordernum - это старое название параметра (тогда ещё были secccode, classcode и пр.).
Потом эти параметры переименовали, добавив "_"
А старые параметры так оставили. Но вопрос не в этом.

Может ли OnTrade в принципе прийти с незаполненным полем "Номер заявки"?
Вы обещали добавить информацию по обязательным полям в документацию.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Может ли прийти колбек OnTrade с незаполненным полем order_num?
В документации ошибка, правильно параметр называется ordernum
Документацию обязательно поправим
Добрый день,

Ошибка будет исправлена в ближайшей версии программы.
 
Вы всё обратно переиграли что ли? Не рубите сгоряча.
Цитата
Егор Зайцев (ARQA Technologies) пишет:
В новой документации параметры seccode, classcode, tradenum, ordernum имеют вид sec_code, class_code, trade_num, order_num.

Вопрос был задан выше:
Цитата
Старатель пишет:
Может ли OnTrade в принципе прийти с незаполненным полем "Номер заявки"?
Вы обещали добавить информацию по обязательным полям в документацию.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Вопрос был задан выше:
Цитата
Старатель пишет:
Может ли OnTrade в принципе прийти с незаполненным полем "Номер заявки"?
Вы обещали добавить информацию по обязательным полям в документацию.
Если это поставочные сделки, но это лучше уточнить у биржи.
 
Цитата
Старатель пишет:
Вы всё обратно переиграли что ли? Не рубите сгоряча.
Цитата
Егор Зайцев (ARQA Technologies) пишет :
В новой документации параметры seccode, classcode, tradenum, ordernum имеют вид sec_code, class_code, trade_num, order_num.
Сейчас (v. 6.17) в структуре данных ответа на транзакцию (в OnTransReply) эти поля содержат дублирующие значения:
1. "trans_id", "R" - ID транзакции.
2. "order_num", "ordernum" - номер заявки.

Мне лично все равно, как будут называться поля в структурах, но хорошо бы оставить что-то одно и привести в соответствие документацию.
Пока нет возможности посмотреть, но если в 7.0 всё так же, то пожалуйста, займитесь этим вопросом.
 
Цитата
SDL пишет:
Пока нет возможности посмотреть, но если в 7.0 всё так же, то пожалуйста, займитесь этим вопросом.
В версии 7.0 только ordernum
 
В версии 7.0.0.289 в OnTrade и OnOrder присутствуют оба параметра order_num и ordernum.
Но у вас там какой-то "косяк" с getOrderByNumber
Информацию по этой проблеме я отправил на почту.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
В версии 7.0.0.289 в OnTrade и OnOrder присутствуют оба параметра order_num и ordernum.
А кто говорил про OnTrade и OnOrder??
На сколько следует из поста выше речь только про OnTransReply
И мой ответ относится только к OnTransReply
 
Цитата
Егор Зайцев (ARQA Technologies) пишет :
В новой документации параметры seccode, classcode, tradenum, ordernum имеют вид sec_code, class_code, trade_num, order_num.
Цитата
Sergey Gorokhov пишет:
В версии 7.0 только ordernum
Ну и что вы творите? Скачете туда-обратно.
Это призыв переписывать все раннее написанные скрипты?
Каких ещё сюрпризов от вас ждать? Вот и getOrderByNumber нормально не работает.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Вот и getOrderByNumber нормально не работает.
Вы отправили письмо почтой,
Ожидайте реакции на письмо по почте.
Упоминание на форуме этой проблемы по нескольку раз не ускорит обработку письма.

Цитата
Старатель пишет:
Ну и что вы творите? Скачете туда-обратно.
Это призыв переписывать все раннее написанные скрипты?
То что в 7 версии в событии OnTransReply только ordernum мы считаем ошибкой, которая будет исправлена. Но сейчас там работает только ordernum
 
Цитата
Sergey Gorokhov пишет:
То что в 7 версии в событии OnTransReply только ordernum мы считаем ошибкой, которая будет исправлена. Но сейчас там работает только ordernum
Тогда надо не документацию переписывать, а исправлять ошибку в ПО.
Выше вы писали:
Цитата
Stanislav Tvorogov пишет:
Цитата
Sergey Gorokhov пишет:
В документации ошибка, правильно параметр называется ordernum
Документацию обязательно поправим
Ошибка будет исправлена в ближайшей версии программы.
Давайте уж сейчас определимся, как будет правильно называться параметр в будущем (надеюсь названия параметров останутся унифицированными).
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Давайте уж сейчас определимся, как будет правильно называться параметр в будущем (надеюсь названия параметров останутся унифицированными).
Будет оба параметра (для поддержки обратной совместимости)
 
Цитата
Олег Хуснутдинов пишет:
Таблица заявок - обновляемая таблица. Поэтому, теоретически, обновлён (дописан/удалён) может быть любой параметр, кроме ключевых (ключевые это Номер заявки, Дата торгов, Код класса). На практике же дописывается UID и ID транзакции. Сделано это для того, чтобы как можно скорее отправить информацию о заявке пользователю и не ожидать определения всех атрибутов заявки (определение UID и ID транзакции происходит внутри сервера QUIK и занимает какое-то время).
В QUIK 7.0.3.7 в ответ на транзакцию стал приходить один OnOrder, в отличие от предыдущих версий, где их (OnOrder) было всегда несколько на одну транзакцию.
Означает ли это, что в 7-й версии механизм работы с таблицей заявок изменён, и все параметры заявок всегда заполняются до отправки пользователю?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Означает ли это, что в 7-й версии механизм работы с таблицей заявок изменён, и все параметры заявок всегда заполняются до отправки пользователю?
нет это не делалось.
 
Тогда что изменилось?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Тогда что изменилось?
Ничего не изменилось.
Если требуется ответ о причинах, приведите конкретный пример.
У нас проблема не воспроизводится. На тестовом сервере (не джуниор)
 
Ваша правда: дубликаты OnOrder по-прежнему присутствуют. Вопрос снимается.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Stanislav Tvorogov написал:
Цитата
Sergey Gorokhov   пишет:
Цитата
Старатель пишет:
Может ли прийти колбек OnTrade с незаполненным полем order_num?
В документации ошибка, правильно параметр называется ordernum
Документацию обязательно поправим
Добрый день,

Ошибка будет исправлена в ближайшей версии программы.
   Добрый день,
Ошибка в документации была исправлена в в версии 7.1.0 терминала QUIK.
   Приносим извинения за причиненные неудобства.
Страницы: 1
Читают тему
Наверх