Пришел OnTransReply с пустым brokerref

Страницы: 1
RSS
Пришел OnTransReply с пустым brokerref
 
Сегодня 22.02.2018 в 11:59:56 на FORTS lua-скриптом была выставлена заявка 29545190638 с заполненным полем CLIENT_CODE.
В ответ пришел OnTransReply с пустым полем brokerref = "".
Последующие OnOrder и OnTrade содержали правильно заполненное поле brokerref.
Проблема в том, что мой скрипт фильтрует поток по brokerref. В итоге его модуль обработки содержимого OnTransReply, OnOrder и OnTrade не получил OnTransReply.

Не заполненное поле brokerref в OnTransReply - это единичный баг сервера брокера или допустимое событие в протоколе обмена сервера с клиентским местом?
 
Цитата
Алексей написал:
Сегодня 22.02.2018 в 11:59:56 на FORTS lua-скриптом была выставлена заявка 29545190638 с заполненным полем CLIENT_CODE.
В ответ пришел OnTransReply с пустым полем brokerref = "".
Последующие OnOrder и OnTrade содержали правильно заполненное поле brokerref.
Проблема в том, что мой скрипт фильтрует поток по brokerref. В итоге его модуль обработки содержимого OnTransReply, OnOrder и OnTrade не получил OnTransReply.

Не заполненное поле brokerref в OnTransReply - это единичный баг сервера брокера или допустимое событие в протоколе обмена сервера с клиентским местом?
Добрый день.

Проблема с brokerref возникает периодически или при каждой отправки транзакции?
Сообщите версию QUIK и если есть возможность выложите свой скрипт.
 
У меня вообще это поле brokerref всегда пустое приходит во всех транзакциях, заявках и сделках... Всегда равно пустой строке: ["brokerref"]=""
 
Цитата
Egor Zaytsev написал:
Проблема с brokerref возникает периодически или при каждой отправки транзакции?
Сообщите версию QUIK и если есть возможность выложите свой скрипт.
Единичный случай. Поэтому указал номер заявки.
Quik 7.14.1.7
 
Цитата
Алексей написал:
Цитата
Egor Zaytsev   написал:
Проблема с brokerref возникает периодически или при каждой отправки транзакции?
Сообщите версию QUIK и если есть возможность выложите свой скрипт.
Единичный случай. Поэтому указал номер заявки.
Quik 7.14.1.7
С этим вопросом необходимо разбираться.
Можно попробовать решить через брокера. Обратитесь к нему, пожалуйста.
От Вас же потребуется номер заявки/архив рабочего места QUIK без ключей доступа/полный скрипт/
Дату выставления транзакции.
 
Цитата
Алексей написал:
Единичный случай. Поэтому указал номер заявки.
Quik 7.14.1.7
У меня такая же версия, 7.14.1.7, но brokerref всегда равно пустой строке. Это от брокера зависит, заполнение этого поля? И вообще зачем такое поле использовать? не могу понять... если есть поля client_code и order_num, которые эту информацию возвращают.
 
Цитата
Suntor написал:
Цитата
Алексей   написал:
Единичный случай. Поэтому указал номер заявки.
Quik 7.14.1.7
У меня такая же версия, 7.14.1.7, но brokerref всегда равно пустой строке. Это от брокера зависит, заполнение этого поля? И вообще зачем такое поле использовать? не могу понять... если есть поля client_code и order_num, которые эту информацию возвращают.
Добрый день.

При отправке заявки через QUIK код клиента и примечание добавляется в поле BrokerRef
Поле BrokerRef используется для записи кода клиента и комментария.
Для заявок в торговые системы МБ поле так и заполняется, например указываем код клиента 11 и комментарий Test,
то поле BrokerRef будет содержать оба этих значения 11/Test.

Нужно смотреть конкретный пример вашего скрипта, что заполняете, какой ответ приходит.
 
Цитата
Egor Zaytsev написал:
При отправке заявки через QUIK код клиента и примечание добавляется в поле BrokerRef
Поле BrokerRef используется для записи кода клиента и комментария.
Для заявок в торговые системы МБ поле так и заполняется, например указываем код клиента 11 и комментарий Test,
то поле BrokerRef будет содержать оба этих значения 11/Test.

Нужно смотреть конкретный пример вашего скрипта, что заполняете, какой ответ приходит.
Всё, я понял откуда приходит это поле brokerref. Нужно либо вручную через окошко Ввод заявки, заполнить поля «Код клиента» и «Поручение» чем-нибудь. Либо из Lua скрипта заполнить поле CLIENT_CODE чем-нибудь при sendTransaction.

Единственно, непонятно куда девается содержимое поля COMMENT при sendTransaction. Я нигде не вижу в колбеках значения из этого поля.
 
Цитата
Suntor написал:
Единственно, непонятно куда девается содержимое поля COMMENT при sendTransaction. Я нигде не вижу в колбеках значения из этого поля.

Цитат из документации на терминал QUIK:
Цитата
COMMENT - Текстовый комментарий, указанный в заявке. Используется при снятии группы заявок

А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется
 
Цитата
Sergey Gorokhov написал:

Цитата
COMMENT - Текстовый комментарий, указанный в заявке.  Используется при снятии группы заявок
А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется
Осталось только узнать, что такое «групповое снятие заявок»?... Забавно, что поиск по документации Quik ничего не даёт. А поиск в Яндексе в первой же страницей выдаёт «Групповые заявки в КВИКе — Нет такого»...

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

В вашем примере из документации: https://arqatech.com/upload/iblock/194/quik_lua.zip
 
Цитата
Suntor написал:

В вашем примере из документации:  https://arqatech.com/upload/iblock/194/quik_lua.zip
в примере \quik_lua\examples\test_trans.lua используется поле COMMENT, в которое прямо так и пишется строчка "LUA"

transaction.COMMENT = "LUA ".. tostring(x)
 
Цитата
Suntor написал:
Цитата
Suntor   написал:

В вашем примере из документации:   https://arqatech.com/upload/iblock/194/quik_lua.zip  
в примере \quik_lua\examples\test_trans.lua используется поле COMMENT, в которое прямо так и пишется строчка "LUA"

transaction.COMMENT = "LUA ".. tostring(x)
А вы говорите, что в Lua это поле COMMENT вообще игнорируется... зачем тогда такой пример давать? и для чего вообще эта строчка кода?
 
Цитата
Suntor написал:
Осталось только узнать, что такое «групповое снятие заявок»?... Забавно, что поиск по документации Quik ничего не даёт

-Раздел 6. Совместная работа с другими приложениями
--Импорт транзакций
---Формат .tri-файла с параметрами транзакций
Цитата
Команды снятия группы заявок по условию («KILL_ALL_ORDERS», «KILL_ALL_STOP_ORDERS», «KILL_ALL_NEG_DEALS», «KILL_ALL_FUTURES_ORDERS»)
 
Цитата
Suntor написал:
и для чего вообще эта строчка кода?
Конкретно в этом примере можно считать этот параметр излишним.
 
Цитата
Sergey Gorokhov написал:
Цитата
Suntor   написал:
и для чего вообще эта строчка кода?
Конкретно в этом примере можно считать этот параметр излишним.
Это просто вводит людей в заблуждение, потому что люди ждут, что значение из этого поля отобразится в таблице заявок в столбце «Комментарий».
Потом сидят ищут в логах таблиц колбэков этот же параметр и не находят, потом идут на форум задавать вопросы, где их ещё сильнее запутывают...

Я уже выяснил, что вместо поля COMMENT, нужно использовать поле CLIENT_CODE при посылке транзакции, и это поле не совпадает с полем CLIENT_CODE в ответах в колбэках, а приходит в виде поля BROKERREF... Это гениально!
Но всё же, могу ли я в Lua послать KILL_ALL_ORDERS c полем COMMENT, чтобы снять группу заявок предварительно отправленных с тем же полем COMMENT?
 
Цитата
Suntor написал:
Это гениально!
Так исторически сложилось и к сожалению изменить что либо в этом месте никак не получится.
Цитата
Suntor написал:
Но всё же, могу ли я в Lua послать KILL_ALL_ORDERS c полем COMMENT, чтобы снять группу заявок предварительно отправленных с тем же полем COMMENT?
Ответ уже был дан
Цитата
Sergey Gorokhov написал:
через Lua нельзя использовать групповое снятие заявок
 
Цитата
Egor Zaytsev написал:
Цитата
Алексей   написал:
Цитата
Egor Zaytsev   написал:
Проблема с brokerref возникает периодически или при каждой отправки транзакции?
Сообщите версию QUIK и если есть возможность выложите свой скрипт.
Единичный случай. Поэтому указал номер заявки.
Quik 7.14.1.7
С этим вопросом необходимо разбираться.
Можно попробовать решить через брокера. Обратитесь к нему, пожалуйста.
От Вас же потребуется номер заявки/архив рабочего места QUIK без ключей доступа/полный скрипт/
Дату выставления транзакции.
Цитата
Алексей написал: (самое первое сообщение)
Сегодня 22.02.2018 в 11:59:56 на FORTS lua-скриптом была выставлена заявка 29545190638 с заполненным полем CLIENT_CODE.
Брокер - Сбербанк.
Что же касается:
Цитата
От Вас же потребуется номер заявки/архив рабочего места QUIK без ключей доступа/полный скрипт/
то судя по Комментарий при выставлении заявки - проблемы с обработкой в OnTransReply проблема не только у меня и, значит, не связана со скриптом.
Еще раз обращу внимание: brokerref  пропал только в OnTransReply. В OnOrder и OnTrade он был корректно заполнен. Это было видно и в логах скрипта и визуально в соответствующих таблицах Quik (например, в "Таблица транзакций" для OnTransReply).
Впрочем, проблема наблюдалась только 22.02.2018 г. Сейчас OnTransReply приходит с корректным brokerref.
 
Алексей,
Сообщите версию терминала QUIK на котором повторяется проблема.
Были ли какие-то особенные события которые происходили 22го числа?
Возможно что 22го была более старая версия терминала чем сейчас?
 
Подтверждаю. Посмотрел сейчас логи последние и старые в том числе. В OnTransReply приходит ["brokerref"]="". А в OnOrder и в OnTrade приходит заполненным.

По логам на обоих версиях:
7.14.1.7, проверял 27.02.2018
7.16.2.5, проверял 02.03.2018

Сделки были по SiH8 за обе даты, в обоих направлениях по несколько штук.
 
Внимание всем.
У нас нет никаких сомнений что имеется какая-то проблема.
Однако только посты вида "проблема не только у меня" и "Подтверждаю" НЕ помогут найти причину проблемы, а на оборот только затянут поиск.
Если Вы действительно хотите помочь, просто укажите следующую информацию:
Точную версию терминала на которой наблюдалась проблема.
Дату/время транзакции
Ваш UID и кто брокер.
Это всё что требуется.

Заранее спасибо за понимание.

Suntor,
Просьба уточнить время транзакции
Ваш UID и кто брокер.
 
Если 19.02.2018 лог выглядел так:
14:00:02; [RIR1]; setB, 126460   x 1, t_id = 781648986, CS, Bar 5140
14:00:02; [RIR1]; Buy,   CS, RIH8, best_offer = 126450, buyPrice = 126460, t_id = 781648986
14:00:03; Ошибка создания заявки. [GW][380]   "Идет пром. клиринг, нельзя совершать торговые операции.".
14:00:03; [RIR1]; OnTrans, RIH8 Ошибка 4, 126460 x 1, brokerref =   CSmR1, t_id =781648986, Ошибка создания заявки. [GW][380]   "Идет пром. клиринг, нельзя совершать торговые операции.".  
то 26.02.2018 слегка по другому:
14:00:06; [SiS4]; setS,   56019 x 1, t_id = 284370704, CL, Bar 5415
14:00:06; [SiS4]; Sell,   CL, SiH8, best_bid = 56029, sellPrice = 56019, t_id = 284370704
14:00:07; [SiH8]; OnTrans, no_xxxxxx, reply.brokerref =  , t_id = 284370704, Ошибка   создания заявки. [GW][380]   "Идет пром. клиринг, нельзя совершать торговые операции.".  
Я уж чего только не думал, где только у себя в программе косяк искал (((

По существу:
QUIK 7.14.1.7
в обоих случаях.
UID и брокер не уточнял, т.к. сообщения прислал мой коллега, пользователь моей программы.
На всякий случай спрошу.
Но в сухом остатке: reply.brokerref - ПУСТОЙ !!!

PS Проблема, оказывается, не только у меня   :what:  
Lbot3D
 
Да уж:
Цитата
на всех quik, у всех подключенных брокерах это поле пустое. Это и ВТБ, КитФинансБрокер и Финам.
 :sad:
Lbot3D
 
Цитата
Sergey Gorokhov написал:
Алексей  ,
Сообщите версию терминала QUIK на котором повторяется проблема.
Были ли какие-то особенные события которые происходили 22го числа?
Возможно что 22го была более старая версия терминала чем сейчас?
1. Quik 7.14.1.7. Стоит давно, обновлений не было.
2. Брокер Сбербанк. UID 60172. Пример конкретной заявки: 22.02.2018 в 11:59:56 на FORTS заявка 29545190638
3. Проблема наблюдалась на всех транзакциях только 22.02.2018 г. Ни ранее, ни позднее не наблюдалась.
4. Особенные события: на следующий торговый день 26.02.2018 г. у Сбербанка с момента открытия торгов более чем на 2 часа рухнули все серверы для клиентов с SMS авторизацией. Может быть после этого все наладилось?
 
Цитата
Sergey Gorokhov написал:
Suntor  ,
Просьба уточнить время транзакции
Ваш UID и кто брокер.
Пустой brokerref в OnTransReply.

Версия терминала Quik 7.16.2.5, брокер ВТБ, UID 29135 оставил в логах, номер торгового счёта ACCOUNT затёр на всякий случай.
Далее, полная информация по заявке 29666422467 и сделке 1982204382 по ней. Обе прошли в 22:26:51 02.03.2018.

Функция sendTransaction:
Скрытый текст
Функция OnTransReply (пустой brokerref выделил):
Скрытый текст
Таблица заявок:
Скрытый текст
Функция OnOrder:
Скрытый текст
Таблица сделок:
Скрытый текст
Функция OnTrade:
Скрытый текст
 
Алексей,

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

По данному обращению мы диагностируем проявление исправленной в версии сервера 5.18 ошибки, связанной с трансляцией некоторых полей в таблицу транзакций через серверы доступа.
Проблема исчезнет после обновления серверного ПО у Вашего брокера, до этой версии.
 
Цитата
Sergey Gorokhov написал:
Suntor  ,

По данному обращению мы диагностируем проявление исправленной в версии сервера 5.18 ошибки, связанной с трансляцией некоторых полей в таблицу транзакций через серверы доступа.
Проблема исчезнет после обновления серверного ПО у Вашего брокера, до этой версии.
А как между собой соотносятся версии сервера и клиента, который брокер рассылает с этого сервера, они связаны? Номера должны совпадать?

01.03.2018 брокер обновил версию клиента до 7.16.2.5, предыдущая версия клиента скачиваемая с его сервера была 7.14.1.7 в течение как минимум полугода.
По вашим словам у брокера до сих пор версия младше 5.18, а клиента он рассылает последнего 7.16.2.5.
Такая ситуация нормальная? Разве не должно иди обновление в паре (клиент/сервер) одновременно, чтобы версии с обоих сторон соответствовали.
 
Цитата
Sergey Gorokhov написал:
Suntor  ,
По данному обращению мы диагностируем проявление исправленной в версии сервера 5.18 ошибки, связанной с трансляцией некоторых полей в таблицу транзакций через серверы доступа.
Проблема исчезнет после обновления серверного ПО у Вашего брокера, до этой версии.
1. Если возникла ошибка в некотором обновлении ПО (которой, по идее, не должно появиться, ведь это же ОБНОВЛЕНИЕ!!! программы, ее улучшение, развитие, появление новых возможностей, но отнюдь не ухудшение имеющегося функционала), неужели у брокеров, которые установили это ПО, в котором обнаружены ошибки, не возникает обязанности обновить ПО, в котором эта ошибка устранена, немедленно?
2. Какой номер версии серверного ПО, в котором появилась ошибка, связанная с "трансляцией некоторых полей в таблицу транзакций через серверы доступа"?
3. Какой номер версии серверного ПО, в котором эта ошибка устранена?
4. Как пользователь QUIK может проверить версию серверного ПО?
Lbot3D
 
Добрый день,

Цитата
Suntor написал:
А как между собой соотносятся версии сервера и клиента, который брокер рассылает с этого сервера, они связаны? Номера должны совпадать?
Данные версии не связаны и не должны совпадать.
Цитата
Suntor написал:
По вашим словам у брокера до сих пор версия младше 5.18, а клиента он рассылает последнего 7.16.2.5.
Рабочее место QUIK версии 7.16 поддерживается серверной частью QUIK версии 5.17 и выше.
 
Добрый день XXM,

1. Обязанности по обновлению ПО находятся на стороне брокерских компаний.
2. Ошибка была обнаружена в версии 5.17 сервера QUIK.
3. Ошибка была исправлена в версии 5.18 сервера QUIK.
4. Со стороны Рабочего места QUIK узнать версию серверного ПО к сожалению, невозможно. По этому вопросу рекомендуем обращаться к Вашему брокеру.
 
Цитата
Stanislav Tvorogov написал:
...
4. Со стороны Рабочего места QUIK узнать версию серверного ПО к сожалению, невозможно. По этому вопросу рекомендуем обращаться к Вашему брокеру.
Т.к. пользовательское ПО работает в связке с серверным ПО, предлагаю ввести в информационное окно поле "Версия программы сервера".
Lbot3D
 
Цитата
XXM написал:
Т.к. пользовательское ПО работает в связке с серверным ПО, предлагаю ввести в информационное окно поле "Версия программы сервера".
Данную информацию добавить к сожалению, не можем. Рекомендуем уточнять версию серверного ПО у Вашего брокера.
 
Цитата
Stanislav Tvorogov написал:
Данную информацию добавить к сожалению, не можем. Рекомендуем уточнять версию серверного ПО у Вашего брокера.
Странна и печальна ваша немочь ((
Lbot3D
 
Добрый день.

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

Да, можно хранить отправленные номера и ID в временной таблице, но иногда происходят ситуации когда происходит перезапуск скрипта и надо перечитать заявки и отобрать нужные по параметрам. Поле BROKERREF не подходит совершенно, т.к. на фондовой секции брокер запрещает писать туда что либо отличное от кода клиента. Ка же так? Приходится сейчас городить внешнюю базу данных, чтобы понять, что эта заявка была выставлена роботом и у нее такие-то праметры.
 
Цитата
Nikolay написал:
COMMENT при отправке заявки
Про это уже было сказано выше

Цитата
Sergey Gorokhov написал:
Цитата
Suntor   написал:
Единственно, непонятно куда девается содержимое поля COMMENT при sendTransaction. Я нигде не вижу в колбеках значения из этого поля.
Цитат из документации на терминал QUIK:
Цитата
COMMENT - Текстовый комментарий, указанный в заявке.  Используется при снятии группы заявок
А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется

Цитата
Nikolay написал:
. Поле BROKERREF не подходит совершенно
если задача только в поиске "своих" заявок, может тогда использовать TRANS_ID?
Укажите на всех транзакциях параметр равным 11111.
и у всех заявок у которых TRANS_ID=11111 будет означать что транзакция отправлена нужным роботом.
У другого робота укажите например 22222 и т.д.
Страницы: 1
Читают тему
Наверх