Сегодня 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 и если есть возможность выложите свой скрипт.
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, которые эту информацию возвращают.
Алексей написал: Единичный случай. Поэтому указал номер заявки. 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. Я нигде не вижу в колбеках значения из этого поля.
COMMENT - Текстовый комментарий, указанный в заявке. Используется при снятии группы заявок
А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется
Осталось только узнать, что такое «групповое снятие заявок»?... Забавно, что поиск по документации Quik ничего не даёт. А поиск в Яндексе в первой же страницей выдаёт «Групповые заявки в КВИКе — Нет такого»...
А вообще, на уважаемых сайтах есть оценка полезности ответов. Вам бы тоже не мешало бы добавить для обратной связи. Вы бы удивились бы, сколько минус вам бы понаставили за большинство ответов на форуме.
Suntor написал: и для чего вообще эта строчка кода?
Конкретно в этом примере можно считать этот параметр излишним.
Это просто вводит людей в заблуждение, потому что люди ждут, что значение из этого поля отобразится в таблице заявок в столбце «Комментарий». Потом сидят ищут в логах таблиц колбэков этот же параметр и не находят, потом идут на форум задавать вопросы, где их ещё сильнее запутывают...
Я уже выяснил, что вместо поля COMMENT, нужно использовать поле CLIENT_CODE при посылке транзакции, и это поле не совпадает с полем CLIENT_CODE в ответах в колбэках, а приходит в виде поля BROKERREF... Это гениально! Но всё же, могу ли я в Lua послать KILL_ALL_ORDERS c полем COMMENT, чтобы снять группу заявок предварительно отправленных с тем же полем COMMENT?
Так исторически сложилось и к сожалению изменить что либо в этом месте никак не получится.
Цитата
Suntor написал: Но всё же, могу ли я в Lua послать KILL_ALL_ORDERS c полем COMMENT, чтобы снять группу заявок предварительно отправленных с тем же полем COMMENT?
Ответ уже был дан
Цитата
Sergey Gorokhov написал: через Lua нельзя использовать групповое снятие заявок
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 и кто брокер.
Я уж чего только не думал, где только у себя в программе косяк искал (((
По существу: QUIK 7.14.1.7 в обоих случаях. UID и брокер не уточнял, т.к. сообщения прислал мой коллега, пользователь моей программы. На всякий случай спрошу. Но в сухом остатке: reply.brokerref - ПУСТОЙ !!!
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.
Номер 29666422467,000000 Дата 02.03.2018 Выставлена (время) 22:26:51 Бумага SiH8 [FORTS: Фьючерсы] Операция Продажа Цена 56934,000000 Кол-во 1,000000 Остаток 0,000000 Объем 56934,000000 Состояние Исполнена Дата снятия Снята (время) Срок Время активации Комментарий CC trans_id=1 Sell ID транзакции 1,000000
Номер 1982204382,000000 Дата сделки 02.03.2018 Время 22:26:51 Заявка 29666422467,000000 Бумага SiH8 [FORTS: Фьючерсы] Операция Продажа Цена 56935,000000 Кол-во 1,000000 Объем 56935,000000 Комментарий CC trans_id=1 Sell ID транзакции 1,000000
По данному обращению мы диагностируем проявление исправленной в версии сервера 5.18 ошибки, связанной с трансляцией некоторых полей в таблицу транзакций через серверы доступа. Проблема исчезнет после обновления серверного ПО у Вашего брокера, до этой версии.
По данному обращению мы диагностируем проявление исправленной в версии сервера 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 может проверить версию серверного ПО?
Suntor написал: А как между собой соотносятся версии сервера и клиента, который брокер рассылает с этого сервера, они связаны? Номера должны совпадать?
Данные версии не связаны и не должны совпадать.
Цитата
Suntor написал: По вашим словам у брокера до сих пор версия младше 5.18, а клиента он рассылает последнего 7.16.2.5.
Рабочее место QUIK версии 7.16 поддерживается серверной частью QUIK версии 5.17 и выше.
1. Обязанности по обновлению ПО находятся на стороне брокерских компаний. 2. Ошибка была обнаружена в версии 5.17 сервера QUIK. 3. Ошибка была исправлена в версии 5.18 сервера QUIK. 4. Со стороны Рабочего места QUIK узнать версию серверного ПО к сожалению, невозможно. По этому вопросу рекомендуем обращаться к Вашему брокеру.
Stanislav Tvorogov написал: ... 4. Со стороны Рабочего места QUIK узнать версию серверного ПО к сожалению, невозможно. По этому вопросу рекомендуем обращаться к Вашему брокеру.
Т.к. пользовательское ПО работает в связке с серверным ПО, предлагаю ввести в информационное окно поле "Версия программы сервера".
Правильно ли я понимаю, что поле COMMENT при отправке заявки не сохраняется в таблице заявок. Я по крайней мере не вижу его. Получается, что невозможно решить простую задачу поиска своих заявок без промежуточного хранилища.
Да, можно хранить отправленные номера и ID в временной таблице, но иногда происходят ситуации когда происходит перезапуск скрипта и надо перечитать заявки и отобрать нужные по параметрам. Поле BROKERREF не подходит совершенно, т.к. на фондовой секции брокер запрещает писать туда что либо отличное от кода клиента. Ка же так? Приходится сейчас городить внешнюю базу данных, чтобы понять, что эта заявка была выставлена роботом и у нее такие-то праметры.
Suntor написал: Единственно, непонятно куда девается содержимое поля COMMENT при sendTransaction. Я нигде не вижу в колбеках значения из этого поля.
Цитат из документации на терминал QUIK:
Цитата
COMMENT - Текстовый комментарий, указанный в заявке. Используется при снятии группы заявок
А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется
Цитата
Nikolay написал: . Поле BROKERREF не подходит совершенно
если задача только в поиске "своих" заявок, может тогда использовать TRANS_ID? Укажите на всех транзакциях параметр равным 11111. и у всех заявок у которых TRANS_ID=11111 будет означать что транзакция отправлена нужным роботом. У другого робота укажите например 22222 и т.д.