Сработали правила на исполнение и отмену заяки
Стартегия поставила заявку, на эту заявку повелили правило на исполнение и отмену.
Заявка была исполнена и почему-то сработали оба правила.
Лог.
11:50:17.155 | | CRBR | Стратегия запущена.
11:50:17.156 | | CRBR | FirstActiveNewRegime 0
11:50:17.159 | | CRBR | CreateOrder OnStarting
11:50:17.214 | | CRBR | RegisterOrder 42375260
11:50:26.476 | | CRBR | Новая Sell сделка 22436851 по цене 158400 на 4 заявки 42375260.
11:50:26.477 | | CRBR | Правило 'Новые сделки заявки 0 (63366267)' активировано.
11:50:26.478 | | CRBR | IsMatched 42375260
11:50:26.490 | | CRBR | DeactiveRule
11:50:26.493 | | CRBR | Правило 'Новые сделки заявки 0 (63366267)' удалено.
11:50:27.488 | | CRBR | Новая позиция -4.
11:50:29.710 | | CRBR | Правило 'Отмена заявки 0 (57884658)' активировано.
11:50:29.752 | | CRBR | IsOrderCancelInClearing 05.04.2012 11:50:28 False
11:50:29.755 | | CRBR | order.GetMatchedVolume= 4
11:50:29.756 | | CRBR | CreateOrder OnOrderCanceled
11:50:30.215 | | CRBR | RegisterOrder 42375316
11:50:30.218 | | CRBR | Правило 'Отмена заявки 0 (57884658)' удалено.
Регистрация заявки
Код
private void CreateOrder(decimal price, decimal volume, string callingMethod)
{
WriteDiagnostics("CreateOrder " + callingMethod);
_order = new Order
{
Portfolio = this.Portfolio,
Volume = volume,
Price = Security.ShrinkPrice(price),
Security = this.Security,
Direction = this.Direction,
Trader = this.Trader,
};
this.When(_order.Canceled())
.Do(OnOrderCanceled)
.Once()
.Sync(syncRules);
this.When(_order.RegisterFailed())
.Do(OnRegisterFailed)
.Once();
CreateRuleNewTradesOrder(_order);
RegisterOrder(_order);
}
private StrategyRule<IEnumerable<MyTrade>> CreateRuleNewTradesOrder(Order order)
{
return (StrategyRule<IEnumerable<MyTrade>>)this.When(StrategyRuleHelper.NewTrades(order))
.Do(() => IsMatched(order, _ruleWaiting))
.Once()
.Sync(syncRules);
}