2014-02-26 15:52:07,988 [30] ERROR - 15:52:07.722 | MMQS_RIH4@FORTS_C000000 | System.InvalidOperationException: Правило Отмена заявки OR Полное исполнение OR Все сделки заявки OR Ошибка регистрации заявки не зарегистрировано в контейнере MMQS_RIH4@FORTS_C000000.
at #=qp3zGpbG2i9SNLszeVqQkh5gr0jJzhz8gssj8Z_YsC1I=.OnRemoving(IMarketRule #=qcXUGxUvZVFIjUqYOd67LyA==)
at Ecng.Collections.BaseCollection`2.Remove(TItem item)
at Ecng.Collections.SynchronizedCollection`2.Remove(TItem item)
at StockSharp.Algo.MarketRuleHelper.TryRemoveRule(IMarketRuleContainer container, IMarketRule rule, Boolean checkCanFinish)
at StockSharp.Algo.MarketRuleHelper.#=q3EeiaeijfmQbeIQRGvTsjg==(IMarketRuleContainer #=qbRQ$Y3dVhOpDKdqtmvmjcg==, IMarketRule #=qYXorncce4w_la5GM_6wnQw==, Func`1 #=qd4LLFDhF4BCGlnf9hEnzEw==)
at StockSharp.Algo.Strategies.Strategy.#=qu2TAw4TnR$myDdVQl8exKApC0CwzKAsZGUj1n9060PATEpRxTSLTm$kIXYz7FZNc89hH4tRu1n_mlYoap_JHyg==(IMarketRule #=qiOWsnM6F7jmhMMncF0Kz_Q==, Func`1 #=q6AJzFxiDQNtGQg2Zz_OD1w==)
var quotingStrategy = new MyMarketQuotingStrategy(direction, absVolume)
{
DisposeOnStop = true,
WaitAllTrades = true,
Volume = absVolume,
BestPriceOffset = new Unit(3, UnitTypes.Step, Security),
};
quotingStrategy.WhenStarted().Do(() => Log.InfoFormat("Мое котирование {0} запущено Started", quotingStrategy.Guid)).Once().Sync(_syncObject).Apply(quotingStrategy);
quotingStrategy.WhenStopped().Do(() => Log.InfoFormat("Мое котирование {0} остановлено Stopped", quotingStrategy.Guid)).Once().Sync(_syncObject).Apply(quotingStrategy);
quotingStrategy.WhenNewMyTrades().Do(trades =>
{
foreach (var myTrade in trades)
quotingStrategy.TradesVolume += myTrade.Trade.Volume;
if (quotingStrategy.TradesVolume == quotingStrategy.Volume)
{
var volumeSum = 0m;
var volumedPriceSum = 0m;
foreach (var theTrade in quotingStrategy.MyTrades.Select(myTrade => myTrade.Trade))
{
volumeSum += theTrade.Volume;
volumedPriceSum += theTrade.Volume * theTrade.Price;
}
var transactionAveragePrice = volumedPriceSum / volumeSum;
Log.InfoFormat("Мое котирование {0} остановлено по сделкам", quotingStrategy.Guid);
}
}).Sync(_syncObject).Apply(quotingStrategy);
quotingStrategy.WhenOrderChanged().Do(order =>
{
Log.DebugFormat("Мое котирование {0}. OnOrderChanged State: {1}, Order: {2}",
quotingStrategy.Guid, order.State, order);
if (order.State == OrderStates.Done || order.State == OrderStates.Failed)
{
Log.InfoFormat("Мое котирование {0}. Заявка {1} исполнена", quotingStrategy.Guid, order);
}
}).Sync(_syncObject).Apply(quotingStrategy);
ChildStrategies.Add(quotingStrategy);
Comments (3)
Login or Create account, Log in or register to leave a comment
.Apply(quotingStrategy)