Проблема синхронизации событий

Проблема синхронизации событий
Atom
10/8/2013


Здравствуйте,реализовываю элементарную стратегию:1.При отсутствии позиций – начать котировать от покупки по цене лучший бид -10 (минус 10 пунктов).
2. При наличии позиции +1 – начать котировать от продажи по цене лучший аск +10 (плюс 10 пунктов).
Если при котировании происходит сделка – начинать котирование с противоположной стороны стакана (после сделки на покупку - начать котирование от продажи, после сделки на продажу – начать котирование от покупки).
Для его реализации я использую два события MarketDepth.WhenChanged - в нем я меняю Price и Order.WhenMatched - в нем я создаю заявку противоположную по направлению (OrderDirections)к предыдущей. Но я не могу их синхронизировать, даже если я использую Sync у обоих этих правил,то все время отрабатывает правило MarketDepth.WhenChanged и вследствие этого программа не заходит в метод обработки события Order.WhenMatched.
Если убрать синхронизацию правил, то будут отрабатывать оба обработчика, но некоректно. Если я убираю у правил Sync, то из под дебагера я вижу, как алгоритм заходит в оба обработчика правил, но тогда возникает ситуация, когда в одном методе отрабатывает несколько инструкций, перескакивает на метод другого правила, потом снова возваращается и вследствие этого падает множество ошибок. Например, когда в стратегии отменяется заявка для выставления нового Price у этой же заявки, но она уже на самом деле выполнилась и этой заявки, которая отменяется, уже нет, а новая не создалась, так как не отработало правило для события Order.WhenMatched.

Tags:


Thanks:


Jean

Avatar
Date: 10/15/2013
Reply


up
Thanks:


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

loading
clippy