4.1.2 ошибка при перерегистрации через Strategy.ReRegisterOrder

4.1.2 ошибка при перерегистрации через Strategy.ReRegisterOrder
Atom
8/30/2012
PavelAd


При перерегистрации заявок происходит такая ошибка
Quote:

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, Action`1 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.MarketRule`1.#=qFfqSDiZv8pWGm7y$Dbf0VPCU0lS5vwwvnkVCiCZmwb0=()
в StockSharp.Algo.Strategies.Strategy.#=qshneewFN2NqSlxBzsEEkuTLXtkM38fuukfw8vHQKuLKzIzBDy8rZCwxJP2Oe4IGvTypy$toXLyLhdEawHDv2wA==(IMarketRule #=qWCYq0V3TPhSxXyGd6yq5UQ==, Func`1 #=q0ZXPlFs3bJ4gclvtaaaDog==)


Пример приводящий к ошибке
Code

  // Первоначальная заявка - условная 
  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);


Tags:


Thanks:


Alexander

Avatar
Date: 8/30/2012
Reply


На 4.1.3 или последней 4.1.4 из исходников воспроизводится?
Thanks:

PavelAd

Avatar
Date: 8/30/2012
Reply


Alexander Mukhanchikov
На 4.1.3 или последней 4.1.4 из исходников воспроизводится?


На 4.1.3 и выше другая ошибка была, в стеке которой тоже присутствует SlipageManager, только в методе Register
http://www.stocksharp.com/posts/m/21083/

возможно связано

Переход на 4.1.3 отложил до лучших времен, так как в ней много что отломалось по сравнению с 4.1.2 :(
Thanks:

Alexander

Avatar
Date: 9/4/2012
Reply


Та ошибка исправлена, теперь проверьте эту на новых версиях
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy