При перерегистрации заявок происходит такая ошибка
10:32:08.015 | Error | TS_RIU2@RTS_SPBFUT010Lt | System.ArgumentException: Следующая заявка 55107114 не может быть переписана новой 55107135. Имя параметра: value в StockSharp.Algo.Slippage.SlippageManager.#=q3_Wepp_3NsbykZtlIdWjiw==.#=q0YMeE3b1N8UJyVMaRs7qaw==(Order #=q8Ts5TstfIoIp0f7YV9LOcg==) в StockSharp.Algo.Slippage.SlippageManager.#=qzOhOrOml2PAgCG7rTCjWFdkFk0hEXlGkPqEWJKC4pWE=.#=qsQkBOM2aVRT3x$1jlLiHaYdTD$EzTvL3P5lWQvYIzOw=(CachedSynchronizedDictionary
2 #=qcBrNAZF0hCeKotpN1xMwSQ==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в StockSharp.Algo.Slippage.SlippageManager.ReRegister(Order oldOrder, Order newOrder) в StockSharp.Algo.Strategies.Strategy.ReRegisterSlippage(Order oldOrder, Order newOrder) в StockSharp.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Order newOrder) в TradeStrategy.TresureStrategy.StopOrderOnSignalBarFound(Order stopOrder, Candle signalCandle) в C:\Trade\TradeStrategy\TradeStrategy\TresureStrategy.cs:строка 1220 в TradeStrategy.TresureStrategy.<PrepareStopOrder>b__20(Order o) в C:\Trade\TradeStrategy\TradeStrategy\TresureStrategy.cs:строка 930 в StockSharp.Algo.MarketRule1.#=qFfqSDiZv8pWGm7y$Dbf0VPCU0lS5vwwvnkVCiCZmwb0=() в StockSharp.Algo.Strategies.Strategy.#=qshneewFN2NqSlxBzsEEkuTLXtkM38fuukfw8vHQKuLKzIzBDy8rZCwxJP2Oe4IGvTypy$toXLyLhdEawHDv2wA==(IMarketRule #=qWCYq0V3TPhSxXyGd6yq5UQ==, Func1 #=q0ZXPlFs3bJ4gclvtaaaDog==)
Пример приводящий к ошибке
// Первоначальная заявка - условная
var stopOrder = this.CreateOrder(stopDirection, stopPrice, volume);
stopOrder.Type = OrderTypes.Conditional;
stopOrder.StopCondition = new QuikStopCondition() {
Type = QuikStopConditionTypes.StopLimit,
StopPrice = activatePrice
};
stopOrder.WhenRegistered().Do(oldOrder => {
// Новая заявка - лимитная
var newOrder = oldOrder.Clone();
newOrder.Type = OrderTypes.Limit;
newOrder.Price = newOrder.Direction == OrderDirections.Buy ? Security.GetCurrentPrice().Value - 200 : Security.GetCurrentPrice().Value + 200;
ReRegisterOrder(oldOrder, newOrder);
}).Apply();
RegisterOrder(stopOrder);
Comentarios (3)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
На 4.1.3 или последней 4.1.4 из исходников воспроизводится?
На 4.1.3 и выше другая ошибка была, в стеке которой тоже присутствует SlipageManager, только в методе Register http://www.stocksharp.com/posts/m/21083/
возможно связано
Переход на 4.1.3 отложил до лучших времен, так как в ней много что отломалось по сравнению с 4.1.2 :(
Та ошибка исправлена, теперь проверьте эту на новых версиях