Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно
Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно
Kommentare (22)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Как воспроизвести?
Ну уж это то вы должны сами проверять... Выставление ордеров и отслеживание изменения статуса - это одна из основополагающих состовляющих алго платформы. Можно на ваших же примерах смотреть
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?
Только тем, что это дополнительные проверки, когда можно пользовать предоставляюемую информацию Квика. Хотя если это влияет на скорость передачи, то наверное можно и обойтись.