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


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

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

Теги:


Спасибо:




4 Ответов
Sergey Sokolov

Фотография
Программист
Дата: 04.07.2012
Ответить


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

Alexander

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


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

paveld

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


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


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

Alexander

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


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


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


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


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

loading
clippy