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

Правило для заявки WhenNewTrades удаляется раньше времени
Atom
7/3/2012
paveld


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

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


Лог работы:
Quote:

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, правило уже оказывается удалено. и защитная заявка не выставляется.
Объясните, пожалуйста, почему так происходит?

Tags:


Thanks:


Sergey Sokolov

Avatar
Date: 7/4/2012
Reply


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

Alexander

Avatar
Date: 7/4/2012
Reply


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

paveld

Avatar
Date: 7/4/2012
Reply


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


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

Alexander

Avatar
Date: 7/5/2012
Reply


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


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


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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy