4.1.2 ошибка при перерегистрации через Strategy.ReRegisterOrder
Atom Ответить
30.08.2012


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

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==)


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

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


Теги:


Спасибо:




3 Ответов
Alexander

Фотография
Дата: 30.08.2012
Ответить


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

PavelAd

Фотография
Дата: 30.08.2012
Ответить


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


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

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

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

Alexander

Фотография
Дата: 04.09.2012
Ответить


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy