Здравствуйте. В каких ситуациях может прийти OnTransReply со статусом 0 или 1? Какие возможные значения может принимать status при выставлении стоп-заявок?
Надо делать так, как надо. А как не надо - делать не надо.
1. В случаях, когда транзакция отправлена на сервер и получена на сервер от клиента.
2.
Цитата
«0» - транзакция отправлена серверу, «1» - транзакция получена на сервер QUIK от клиента, «2» - ошибка при передаче транзакции в торговую систему, поскольку отсутствует подключение шлюза Московской Биржи, повторно транзакция не отправляется, «3» - транзакция выполнена, «4» - транзакция не выполнена торговой системой, код ошибки торговой системы будет указан в поле «DESCRIPTION», «5» - транзакция не прошла проверку сервера QUIK по каким-либо критериям. Например, проверку на наличие прав у пользователя на отправку транзакции данного типа, «6» - транзакция не прошла проверку лимитов сервера QUIK, «10» - транзакция не поддерживается торговой системой. К примеру, попытка отправить «ACTION = MOVE_ORDERS» на Московской Бирже, «11» - транзакция не прошла проверку правильности электронной подписи. К примеру, если ключи, зарегистрированные на сервере, не соответствуют подписи отправленной транзакции. «12» - не удалось дождаться ответа на транзакцию, т.к. истек таймаут ожидания. Может возникнуть при подаче транзакций из QPILE. «13» - транзакция отвергнута, т.к. ее выполнение могло привести к кросс-сделке (т.е. сделке с тем же самым клиентским счетом).
1) Чем отличается status = 0 от status = 1 для транзакций, поданных из QLua-скрипта? Если мы получили OnTransReply, не означает ли это автоматически, что транзакция, как минимум, получена сервером QUIK?
2) Значения статусов 0, 2, 12, 13 возможны для стоп-заявок, поданных из QLua?
Надо делать так, как надо. А как не надо - делать не надо.
1) Чем отличается status = 0 от status = 1 для транзакций, поданных из QLua-скрипта? Если мы получили OnTransReply, не означает ли это автоматически, что транзакция, как минимум, получена сервером QUIK? 2) Значения статусов 0, 2, 12, 13 возможны для стоп-заявок, поданных из QLua?
1. Если получили OnTransReply, то да, транзакция получена сервером. Проверили информацию, статусы 0 и 1 для транзакций поданных через LUA возвращаться не будут. Для Qpile будут.
Подытожим. Таким образом, OnTransReply с status = 3 (и только три) означает, что транзакция выполнена. Остальные значения статуса говорят о том, что транзакция не выполнена (и не будет выполнена). Так?
Приведите, пожалуйста, полный и исчерпывающий список возможных вариантов значений параметра status для колбэка OnTransReply. Из-за отсутствия этого списка для QLUA нам и вам (сотрудникам техподдержки) приходилось пользоваться аналогом этого списка для формата .tro-файла, что зачастую приводило к неверным рекомендациям с вашей стороны относительно параметра status.
Надо делать так, как надо. А как не надо - делать не надо.
Подытожим. Таким образом, OnTransReply с status = 3 (и только три) означает, что транзакция выполнена. Остальные значения статуса говорят о том, что транзакция не выполнена (и не будет выполнена). Так?
Да, верно.
Цитата
Приведите, пожалуйста, полный и исчерпывающий список возможных вариантов значений параметра status для колбэка OnTransReply. Из-за отсутствия этого списка для QLUA нам и вам (сотрудникам техподдержки) приходилось пользоваться аналогом этого списка для формата .tro-файла, что зачастую приводило к неверным рекомендациям с вашей стороны относительно параметра status.
Специально для LUA списка нет, выше представили весь список с возможными статусами. Мы зарегистрировали соответствующие пожелание от Вас. Список постараемся добавить в документацию на LUA.
Для транзакций "MOVE_ORDERS" всегда возвращается OnTransReply с пустой строкой в качестве параметров account и brokerref
Старатель, account и brokerref пустые потому, что MOVE_ORDERS может работать сразу с двумя заявками. Поэтому в документации и указали, что может иметь значение nill.
Старатель, account и brokerref пустые потому, что MOVE_ORDERS может работать сразу с двумя заявками.
Одной транзакцией можно переставить две заявки по разным счетам (читай: с разными account)? Сколько у вас приходит ответов OnTransReply при перестановке сразу двух заявок? У меня две? Смысл в двух абсолютно одинаковых OnTransReply?
Надо делать так, как надо. А как не надо - делать не надо.
1. nil я понимаю буквально, как nil. В программировании это выглядит так:
Код
if trans_reply.account == nil then
toLog('Без паники. В документации указано, что это допустимо.')
elseif trans_reply.account == '' then
toLog('Швах! Что-то здесь не так...')
end
Поэтому и уточнил:
Цитата
Тут точно nil ?
2. Ваш ответ #12 можно расценить, как дешёвую отмазку, чтобы не заниматься проблемой.
3. Подать одну транзакцию на перестановку двух заявок по разным счетам нельзя. Поручение для обеих заявок одно. А, значит, и параметры account и brokerref будут совпадать. Не вижу никаких причин, чтобы не заполнить эти параметры в OnTransReply.
4. При любом исходе ответ на транзакцию один: либо сразу обе заявки переставлены, либо нет. А, значит, нет необходимости дублировать OnTransReply.
Надо делать так, как надо. А как не надо - делать не надо.
>>3. Подать одну транзакцию на перестановку двух заявок по разным счетам нельзя. Поручение для обеих заявок одно. >>А, значит, и параметры account и brokerref будут совпадать. Взаимоисключающие параметры?
Как это можно подать одну транзакцию по разным заявкам, если у них разные счета?
3. Подать одну транзакцию на перестановку двух заявок по разным счетам нельзя. А, значит, и параметр account будет совпадать. Точка. Поручение (транзакция "MOVE_ORDERS" на перемещение) для обеих заявок одно. А, значит, и параметр brokerref будет совпадать.
Так понятно?
Надо делать так, как надо. А как не надо - делать не надо.
Одной транзакцией можно переставить две заявки по разным счетам (читай: с разными account)? Сколько у вас приходит ответов OnTransReply при перестановке сразу двух заявок? У меня две? Смысл в двух абсолютно одинаковых OnTransReply?
Здравствуйте,
Две. Два OnTransReply так как прошла перестановка двух заявок.
Добрый день. 1. В документации написано "значение поля может быть nil" 3. Подать транзакцию на перестановку заявок с разных счетов можно, если у вас прав достаточно. 4. на каждую переставленную заявку приходит отдельный ответ.
1. Еще раз - "значение может быть nil" - в некоторых случаях это поле может отсутствовать в ответе на транзакцию. Если есть и оно не заполнено значит нечем его заполнять. 3. Возможно это проверяет торговая система. В транзакции нет привязки номера заявки к счету. 4. отдельный ответ от сервера QUIK.
Специально для LUA списка нет, выше представили весь список с возможными статусами. Мы зарегистрировали соответствующие пожелание от Вас. Список постараемся добавить в документацию на LUA.
Добрый день.
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.