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


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

Теги:


Спасибо:


Jean

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


up
Спасибо:


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

loading
clippy