← Voltar

Правило для заявки WhenNewTrades удаляется раньше времени

Подписываюсь на правило собственных трейдов по заявке так:


order.WhenNewTrades().Do(OrderNewTrades).Apply(this).Periodical(order.IsMatched);

Лог работы:

21:57:00.455 | | QuikTrader | RegisterOrder: TransactionId=9837769, Id=0, Price=140625, Balance=5, Security=RIU2@RTS, State=None 21:57:00.937 | | QuikTrader | New order: TransactionId=9837769, Id=1658571773, Price=140625, Balance=5, Security=RIU2@RTS, State=Active 21:57:00.941 | | | Новая Sell сделка 70191794 по цене 140625 на 1 заявки 9837769. 21:57:00.966 | | | Правило 'Регистрация заявки 0 (5365516)' удалено. 21:57:00.967 | | | Правило 'Новые сделки заявки 0 (10491563)' активировано. 21:57:00.968 | | | Правило 'Полное исполнение 0 (2544033)' активировано. 21:57:00.968 | | | Подготовлена 'STOP' заявка по цене 140855, V=1 для заявки с Id=1658571773, активации по цене 140735 21:57:00.969 | | | Новая позиция -5. 21:57:00.971 | | | Правило 'Полное исполнение 0 (2544033)' активировано. 21:57:00.972 | | | Правило 'Полное исполнение 0 (2544033)' удалено. 21:57:00.972 | | | Правило 'Новые сделки заявки 0 (10491563)' удалено. 21:57:00.973 | | QuikTrader | Order changed: TransactionId=9837769, Id=1658571773, Price=140625, Balance=0, Security=RIU2@RTS, State=Done 21:57:00.974 | | | Новая Sell сделка 70191795 по цене 140625 на 4 заявки 9837769.

Когда проходит собственная сделка на 1 заявки 9837769, правило активируется, и выставляется защитная стоп заявка (о чем пишется запись в лог). Когда проходит собственная сделка на 4 заявки 9837769, правило уже оказывается удалено. и защитная заявка не выставляется. Объясните, пожалуйста, почему так происходит?

Este tópico foi útil?

Compartilhar tópico

Comentários (4)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

Sergey Sokolov
Sergey Sokolov

Между приходом сделок всего 33мс, то есть вполне возможно, что уже при обработке первого трейда заявка находится в завершенном состоянии, так как она вполне могла обновиться до вызова обработчика правила, например в другом потоке. Если получится воспроизвести, попробуйте в OrderNewTrades вывести остаток заявки.

Sergey Masyura
Alexander
Alexander

Сделки по заявке приходят в другом потоке. Обновление по заявке - в двух других потоках. Это нормальное состояние когда вначале мы поняли что заявка исполнилась полностью (послали по рынку, сразу исполнилась), и лишь потом пришли сделки по заявке в другом потоке.

paveld
paveld Autor

Alexander Mukhanchikov: Сделки по заявке приходят в другом потоке. Обновление по заявке - в двух других потоках. Это нормальное состояние когда вначале мы поняли что заявка исполнилась полностью (послали по рынку, сразу исполнилась), и лишь потом пришли сделки по заявке в другом потоке.

Я правильно понял что условие Periodical(order.IsMatched) нельзя добавлять? Почему так указанно в примере?

Alexander
Alexander

paveld:

Alexander Mukhanchikov: Сделки по заявке приходят в другом потоке. Обновление по заявке - в двух других потоках. Это нормальное состояние когда вначале мы поняли что заявка исполнилась полностью (послали по рынку, сразу исполнилась), и лишь потом пришли сделки по заявке в другом потоке.

Я правильно понял что условие Periodical(order.IsMatched) нельзя добавлять? Почему так указанно в примере?

Удалил это из доки, спасибо.