Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно
Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно
Комментарии (22)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Как воспроизвести?
Ну уж это то вы должны сами проверять... Выставление ордеров и отслеживание изменения статуса - это одна из основополагающих состовляющих алго платформы. Можно на ваших же примерах смотреть
UPDATE:
Live - вроде все ок. Проблемы возникают на HistoryEmulation
Задержки с репортингом статусов исполения ордеров При большом сайзе ордера и частичном исполнении возникают ситуации, когда ставится заявка по-рынку, статус OrderStates.Done, Balance = 0, но при этом задержка между трейдами на первую и вторую часть такая, что робот успевает еще 2 раза закрыть позицию, полагая, что приказы исполнились частично
На 2.20 все ок! Работающие стратегии начинают сходить с ума именно на .26
У меня в MarketQuotingStrategy такая-же байда с частичным исполнением заявок на версии 4.2.26. Как видно из логов, как только появилась сделка по заявке, MQS снимает остаток, и считает, что все выполнено ("|S_LKZ4@FORTS_SPBFUT00756|Стратегия останавливается. [0,1]. Позиция 4."). Но реальное исполнение было только на 1шт, что и подтверждается в родительской стратегии ("|PS_LKZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-LKZ4@FORTS=1."). В таблице "заявки" в квике этот ордер имеет состояние="Снята", Кол-во=4, Остаток=3. Связано это судя по-всему с тем, что Вы опираетесь на поле заявки State, вместо Status, о чем я писал в ветке про новый Lua-коннектор.
И правильно делает. Не смешивайте все в одну кучу. Один написал неправильное о своем. Второй написал неправильное о другом. В итоге получился рассказ Бэтмэн и Русалочка.
и так каждый раз... топик, что при переходе с версии .X на .X+1 стратегии сходят с ума из-за очередного факапа, встречается в штыки вот такими конструктивными комментариями...
Еще раз повторю: есть проблема с обработкой ордеров - выставлнием статусов и обработкой partial fills. И "неправильная" - это работа билда. Скоро баг репорты только в форме 5 стопного ямба будут приниматься, а все остальное игнорироваться. Михиаил, начни уже наконец пользоваться своим продуктом. Тогда, когда в очередной раз просадишь кучу бабла на неправильно обработанном ордере при переходе на свежий билд, тебе не будет казаться, что это какая-то мелочь
Что я смешал в кучу?
"Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно "
"У меня в MarketQuotingStrategy такая-же байда с частичным исполнением заявок на версии 4.2.26."
Читайте внимательнее, я здесь не критикой занимаюсь, а пытаюсь помочь в выявлении критических ошибок с привидением доступных логов.
Как воспроизвести?
В моем случае, можешь хоть в SampleSMA поставить побольше сайз для ордеров, а далее в дебаггере отследить как и в какой момент меняется статус ордера
Тоесть проблема с коннектором Quik? С другими такой нет проблемы?
У меня это вылезло вначале на Транзаке, а потом все повторилось в тестах на HistoryEmulator
Так понятно. Нужно подтверждение от другого.
В моем случае воспроизводится в момент частичного (не полного) исполнения котируемой MarketQuotingStrategy заявки (логи выше).
Также, как и в SampleSma
Я тестировал на Lua , через эмулятор не гонял.
Котировался LKZ4 на 5шт, исполнено 3.
Сделайте еще заполнение поля Status у заявки пожалуйста тоже.
Чем не подходит комбинация State и Balance?
Только тем, что это дополнительные проверки, когда можно пользовать предоставляюемую информацию Квика. Хотя если это влияет на скорость передачи, то наверное можно и обойтись.