← 返回

Вопрос новичка Ошибка "Элемент с тем же ключом уже был добавлен"

Заранее прошу прощения за глупый вопрос. при работе переодически вылетает Элемент с тем же ключом уже был добавлен.


case 1: 
if (_myOrder2.IsCanceled())
{
_myOrder2.State = OrderStates.None;
_myOrder2.Id = 0;
_myOrder2.TransactionId = 0;
_myOrder2.Portfolio = _portfolio;
_myOrder2.Volume = _myBalance;
_myOrder2.Security = _instr2;
_myOrder2.Direction = OrderDirections.Buy;
                            
if (CountPriceBuy() > _instr2.BestAsk.Price)
{
_myOrder2.Price = _instr2.BestAsk.Price;
}
else 
{
_myOrder2.Price = CountPriceBuy();
}
                            
RegisterOrder(_myOrder2);
};
};
break;


в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) в Ecng.Collections.SynchronizedDictionary2.Add(TKey key, TValue value) в #=qWMUJ8VFi7s_NRMcOr2G25Lud5glU2HEm99j$x89uGic=.#=qaCcRbv_fr$xDdvikdSCqGg==(Order #=qUZSZAiMIYi3WElGh94uLfA==, ITrader #=qcNmU6oPxwH8zjtgE8ynUBg==, TransactionIdGenerator #=qhfDqCZgql58PzNnZPMsnD3DR55WtCTtXzWIhtNCP4g8=) в StockSharp.Algo.BaseTrader.InitNewOrder(Order order) в StockSharp.Algo.BaseTrader.RegisterOrder(Order order) в StockSharp.Algo.Strategies.Strategy.RegisterOrder(Order order) в Arbitrager.MySrateg.ProcessArbitrg() в C:\Users\Макс\Desktop\Новая папка\MySrateg.cs:строка 192 в StockSharp.Algo.Strategies.StrategyRule1.#=qt7G9WNnTsBYaxgKvlNYQniCU4s4o1t44muOiJGakdBU=.#=qA0K6YqwIY3AkmKwC19laZA==(#=qOWyYey63NngbbzQ785leOg== #=qIb_9kspFdqZzOW1VQD8TMg==) в StockSharp.Algo.Strategies.StrategyRule1.#=qFkFgVVIMTT8xPEiHWxPMf0i8djuOZUlx7ArPFU_22B8=() в StockSharp.Algo.Strategies.Strategy.#=qiHGpQkyoonelQb2OCBZLCA==(IStrategyRule #=q6_MU3lGTq_vWng2LcpPB8A==, Func1 #=q0B$mQml1E6sJluJirrQMXg==, Object #=qoEqHfM1FSu3Kq74v9ys9dg==, Boolean #=quQbSH_yD$5GqB8OrhsttMg==)

本主题对您有帮助吗?

分享主题

评论 (5)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

Регистрируете уже ранее зарегистрированную заявку.

maxws
maxws 作者

тогда вопрос я часто перерегистрирую заявки чтобы не использовать каждый раз new Order беру старую и обнуляю TransactionId и ID минут 20 (по разному) данный вариант работает потом кидает эту ошибку, возможно надо чтотоеще обнулять или же по другому действовать.

OvcharenkoVI
OvcharenkoVI

Непонятно, почему вы не хотите использовать new Order() ??

Andrii
Andrii

OvcharenkoVI: Непонятно, почему вы не хотите использовать new Order() ?? как синхронизировать создание заявок например создаю заявку в событии изменения SecurityChanged... но если оно возникает часто, то может быть зарегистрировано 2 одинаковых заявки, как можно синхронизировать, чтобы приостановить все пока она не попадет на сервер?

maxws
maxws 作者

Тема закрыта, сам разобрался.