4.2.2.26 ошибка в OrderState
Atom
09.10.2014


Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно

Теги:


Спасибо:


1 2 3  >
esper

Фотография
Дата: 09.10.2014
Ответить


Как воспроизвести?
Спасибо:

devruss

Фотография
Дата: 09.10.2014
Ответить


esper Перейти
Как воспроизвести?


Ну уж это то вы должны сами проверять... Выставление ордеров и отслеживание изменения статуса - это одна из основополагающих состовляющих алго платформы. Можно на ваших же примерах смотреть

UPDATE:
1. Live - вроде все ок. Проблемы возникают на HistoryEmulation
2. Задержки с репортингом статусов исполения ордеров
При большом сайзе ордера и частичном исполнении возникают ситуации, когда ставится заявка по-рынку, статус OrderStates.Done, Balance = 0, но при этом задержка между трейдами на первую и вторую часть такая, что робот успевает еще 2 раза закрыть позицию, полагая, что приказы исполнились частично

3. На 2.20 все ок! Работающие стратегии начинают сходить с ума именно на .26
Спасибо:

RomSunZ

Фотография
Дата: 09.10.2014
Ответить


У меня в 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-коннектор.
Код

20:08:59.767|       |PS_LKZ4@FORTS_SPBFUT00756|Стратегия запущена. [0,-1]. Позиция 0.
20:09:16.630|       |PS_LKZ4@FORTS_SPBFUT00756|curPos=0 quoting vol=4 revers=False
20:09:16.630|       |PS_LKZ4@FORTS_SPBFUT00756|Начинаем котирование по LKZ4@FORTS направление покупка объем 4 реверс=False
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Переход из состояния Stopped в Started.
20:09:16.630|       |S_LKZ4@FORTS_SPBFUT00756|Стратегия запущена. [0,1]. Позиция 0.
20:09:16.630|       |S_LKZ4@FORTS_SPBFUT00756|Котирование на Buy объема 4.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Приостановка правил. _rulesSuspendCount 1.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Возобновление правил. _rulesSuspendCount 0.
20:09:16.630|       |S_LKZ4@FORTS_SPBFUT00756|Цена текущей NULL и лучшей 19585.
20:09:16.630|       |S_LKZ4@FORTS_SPBFUT00756|Лучший бид 19580 и лучший аск 19592.
20:09:16.630|       |S_LKZ4@FORTS_SPBFUT00756|Регистрация новой Limit (0x1AB7839) заявки на Buy с ценой 19585 и объемом 4. 
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки  72533791/ (0x1C6BB82)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/ (0x1E54885)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение  72533791/ (0x261AE0E)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение  72533791/ (0x1DAA204)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Все сделки заявки  72533791/ (0x3583362)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Отмена заявки  72533791/ (0x83A5F8)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/ (0x14FF46B)'. Подписалось на события.
20:09:16.630|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка снятия заявки  72533791/ (0x305AA9F)'. Подписалось на события.
20:09:16.937|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:16.937|Debug  |S_LKZ4@FORTS_SPBFUT00756|Заявка 72533791 (0x1AB7839) в процессе регистрации.
20:09:17.045|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:17.045|Debug  |S_LKZ4@FORTS_SPBFUT00756|Заявка 72533791 (0x1AB7839) в процессе регистрации.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки  72533791/2466496401 (0x1C6BB82)'. Активация.
20:09:17.261|       |S_LKZ4@FORTS_SPBFUT00756|Заявка 72533791 (0x1AB7839) принята биржей.
20:09:17.261|       |S_LKZ4@FORTS_SPBFUT00756|Сброс счетчика ошибок регистрации с 0 до нуля.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки  72533791/2466496401 (0x1C6BB82)'. Удаляется.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки  72533791/2466496401 (0x1C6BB82)'. Освободило ресурсы.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/2466496401 (0x1E54885)'. Удаляется.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/2466496401 (0x1E54885)'. Освободило ресурсы.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/2466496401 (0x1E54885)'. Удалено.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Регистрация заявки  72533791/2466496401 (0x1C6BB82)'. Удаление.
20:09:17.261|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Ошибка регистрации заявки  72533791/2466496401 (0x1E54885)'. Удаление.
20:09:17.427|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:17.680|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:20.640|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:20.888|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:21.777|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:24.092|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:25.491|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:27.278|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:27.799|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:28.315|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:30.114|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:30.362|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:31.154|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:34.302|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:34.811|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:36.703|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Активация.
20:09:40.139|       |PS_LKZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-LKZ4@FORTS=4.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-LKZ4@FORTS=4.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение позиции (0x4AA454)'. Активация.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Позиция изменилась на 4. Оставшийся объем 0.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Заканчиваем котирование.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Переход из состояния Started в Stopping.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Стратегия останавливается. [0,1]. Позиция 4.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'S_LKZ4@FORTS_SPBFUT00756 - останавливается (0x233CCD2)'. Активация.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'S_LKZ4@FORTS_SPBFUT00756 - останавливается (0x233CCD2)'. Удаляется.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'S_LKZ4@FORTS_SPBFUT00756 - останавливается (0x233CCD2)'. Освободило ресурсы.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'S_LKZ4@FORTS_SPBFUT00756 - останавливается (0x233CCD2)'. Удаление.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Попытка остановки. Осталось 2 правил. Правила Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки , Ошибка снятия заявки .
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Ожидание снятия всех активных заявок.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Отмена заявки 72533791 (0x1AB7839).
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Удаляется.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Освободило ресурсы.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Освободило ресурсы.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение стакана инструмента LKZ4@FORTS (0x2CD6BF9)'. Удалено.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение  72533791/2466496401 (0x261AE0E)'. Удаляется.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение  72533791/2466496401 (0x261AE0E)'. Освободило ресурсы.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Полное исполнение  72533791/2466496401 (0x261AE0E)'. Удалено.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Попытка остановки. Осталось 2 правил. Правила Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки , Ошибка снятия заявки .
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение позиции (0x4AA454)'. Удаляется.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение позиции (0x4AA454)'. Освободило ресурсы.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Правило 'Изменение позиции (0x4AA454)'. Удаление.
20:09:40.139|Debug  |S_LKZ4@FORTS_SPBFUT00756|Попытка остановки. Осталось 2 правил. Правила Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки , Ошибка снятия заявки .
20:09:40.139|       |PS_LKZ4@FORTS_SPBFUT00756|Новая Buy сделка 117792745 по цене 19585 на 1 заявки 72533791.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Новая Buy сделка 117792745 по цене 19585 на 1 заявки 72533791.
20:09:40.139|       |PS_LKZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-LKZ4@FORTS=1.
20:09:40.139|       |S_LKZ4@FORTS_SPBFUT00756|Новая позиция: SPBFUT00756-LKZ4@FORTS=1.
Спасибо: devruss

Mikhail Sukhov

Фотография
Дата: 09.10.2014
Ответить


RomSunZ Перейти
что Вы опираетесь на поле заявки State, вместо Status


И правильно делает. Не смешивайте все в одну кучу. Один написал неправильное о своем. Второй написал неправильное о другом. В итоге получился рассказ Бэтмэн и Русалочка.
Спасибо:

devruss

Фотография
Дата: 09.10.2014
Ответить


Михаил Сухов Перейти
RomSunZ Перейти
что Вы опираетесь на поле заявки State, вместо Status


И правильно делает. Не смешивайте все в одну кучу. Один написал неправильное о своем. Второй написал неправильное о другом. В итоге получился рассказ Бэтмэн и Русалочка.


и так каждый раз... топик, что при переходе с версии .X на .X+1 стратегии сходят с ума из-за очередного факапа, встречается в штыки вот такими конструктивными комментариями...

Еще раз повторю: есть проблема с обработкой ордеров - выставлнием статусов и обработкой partial fills. И "неправильная" - это работа билда. Скоро баг репорты только в форме 5 стопного ямба будут приниматься, а все остальное игнорироваться. Михиаил, начни уже наконец пользоваться своим продуктом. Тогда, когда в очередной раз просадишь кучу бабла на неправильно обработанном ордере при переходе на свежий билд, тебе не будет казаться, что это какая-то мелочь
Спасибо:

RomSunZ

Фотография
Дата: 09.10.2014
Ответить


Михаил Сухов Перейти
RomSunZ Перейти
что Вы опираетесь на поле заявки State, вместо Status


И правильно делает. Не смешивайте все в одну кучу. Один написал неправильное о своем. Второй написал неправильное о другом. В итоге получился рассказ Бэтмэн и Русалочка.


Что я смешал в кучу?

1. "Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно "

2. "У меня в MarketQuotingStrategy такая-же байда с частичным исполнением заявок на версии 4.2.26."

Читайте внимательнее, я здесь не критикой занимаюсь, а пытаюсь помочь в выявлении критических ошибок с привидением доступных логов.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 09.10.2014
Ответить


RomSunZ Перейти

1. "Начиная с 4.2.2.26 появилась ошибка в выставлении статуса ордера: OrderStates.done присваивается не когда ордер полностью исполнился, а когда только поставился, также присваивается при частичном исполнении, что в корне неверно "


Как воспроизвести?
Спасибо:

RomSunZ

Фотография
Дата: 09.10.2014
Ответить


В моем случае воспроизводится в момент частичного (не полного) исполнения котируемой MarketQuotingStrategy заявки (логи выше).
Спасибо:

Andrii

Фотография
Дата: 09.10.2014
Ответить


RomSunZ Перейти
В моем случае воспроизводится в момент частичного (не полного) исполнения котируемой MarketQuotingStrategy заявки (логи выше).

можешь показать как создается MarketQuotingStrategy?
Спасибо:

RomSunZ

Фотография
Дата: 09.10.2014
Ответить


Также, как и в SampleSma
Код

            var quoting = new MarketQuotingStrategy(Side, vol)
            {
                Security = this.Security,
                Portfolio = this.Portfolio,
                WaitAllTrades = true,
                Connector = this.Connector,
                Volume = vol,
                PriceType = MarketPriceTypes.Following,
//                LogLevel = LogLevels.Debug,
                PriceOffset = v1,
                BestPriceOffset = v2,
            };

Спасибо:
1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy