← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (1)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Jean
Jean Autor

up