Удаление правил, исключение
Есть следующий код:
order
.WhenCanceled()
.Do(o =>
{
...
})
.Once()
.Apply(this);
order
.WhenRegisterFailed()
.Do(fail =>
{
...
})
.Once()
.Apply(this);
order
.WhenMatched()
.Do(o => {
Rules.Remove(order.WhenRegisterFailed()); Тут выдается исключение
Rules.Remove(order.WhenCanceled());
})
.Once()
.Apply(this);
Выдается исключение при попытке удалить правило (на самом деле любых правил) Rules.Remove(order.WhenRegisterFailed()):
System.InvalidOperationException: Операция является недопустимой из-за текущего состояния объекта.
в #=qa_4zGoLcsro_feFbb0XM96ZE7LOy5hveNYH9wnxFE2w=.OnRemoving(IMarketRule #=qju3lJ7K286dxREWSpw8cmg==)
в Ecng.Collections.BaseCollection`2.Remove(TItem item)
в Ecng.Collections.SynchronizedCollection`2.Remove(TItem item)
в StockSharp.Algo.Strategies.DeltaHedgeStrategy.<>c__DisplayClassc.<ReHedge>b__8(Order o) в D:\work\PROG\Projects\StockSharp 4.1.3\Strategies\VolatilityTradingStrategy\DeltaHedgeStrategy.cs:строка 202
в StockSharp.Algo.MarketRule`2.#=q6_Dj$NpGFM71HHUqmQhQ0G5RZlYBsJ6Wee9kQg_qgVo=()
в StockSharp.Algo.MarketRuleHelper.#=qw7TgNQ_P_7uPcYTNTLttHg==(IMarketRuleContainer #=qTNAYzkNQSqZjn9BvAkH9cA==, IMarketRule #=quLfxru5uzbPCCVRiCLmC0g==, Func`1 #=q8YGWbkMa6AIbIV3KFFO5Xw==)
в StockSharp.Algo.Strategies.Strategy.#=q47pcTs$vhqCk7bcqb_pv_886glmmzTC1_raPs3xepsw5km_KDfufw3zJMTnb0$eVObikcyITlFlAUYx_AKAK_A==(IMarketRule #=qTJ4HwZuqQOv0fT2qFqxPLg==, Func`1 #=q8pW741NtpT_BaJV1HedsHw==)