← Zurück

Проблема с CandleManager.Start

После перехода с 4.1.1 на 4.1.2, вдруг начало вылетать исключение ArgumentNull. При этом пишет следующее - Value cannot be null. Parameter name: securityId. В 4.1.1 все хороше работало. Код простейший:


 var timeFrame = TimeSpan.FromMinutes(1);
 CandleSeries series = new CandleSeries(typeof(TimeFrameCandle), Sec, timeFrame);
 candleManager.Start(series);

Sec.Id кончно-же есть.

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

StackTrace

Memory
Memory
Memory Autor

StackTrace


A first chance exception of type 'System.ArgumentNullException' occurred in StockSharp.Smart.dll
   at StockSharp.Smart.SmartComWrapper.RegisterTrades(String securityId)
   at StockSharp.Smart.SmartTrader.RegisterTrades(Security security, Boolean fromSessionStart)
   at StockSharp.Smart.SmartTrader.OnRegisterTrades(Security security)
   at StockSharp.Algo.BaseTrader.RegisterTrades(Security security)
   at StockSharp.Algo.Candles.Compression.TradeCandleBuilderSource.RegisterSecurity(Security security)
   at StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource`1.Start(CandleSeries series, DateTime from, DateTime to)
   at #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=q$2NsxmsMWV9Hmv0MpsCgbg==()
   at StockSharp.Algo.Candles.Compression.CandleBuilder`1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qoXpF9H4wsX4SvF7sjIpSLQ==()
   at StockSharp.Algo.Candles.Compression.CandleBuilder`1.Start(CandleSeries series, DateTime from, DateTime to)
   at StockSharp.Algo.Candles.Compression.TimeFrameCandleBuilder.Start(CandleSeries series, DateTime from, DateTime to)
   at #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=q$2NsxmsMWV9Hmv0MpsCgbg==()
   at StockSharp.Algo.Candles.CandleManager.Start(CandleSeries series, DateTime from, DateTime to)
   at StockSharp.Algo.Candles.CandleHelper.Start(ICandleManager manager, CandleSeries series)

Похоже я разобрался и не стоит уделять много времени. Вы судя по всему при сравнении (поиске) бумаг перешли от сравнения Security.Id к сравнению по паре Security.Code+Sequrity.Class. У меня 2 трейдера и я скармливал второму Security от первого. Code и Id одинаковые, Class разный. На ровном месте перестал работать следующий код


depths.FirstOrDefault(d => d.Security == Sec); 

Скормил нужную бумагу (с правильным Class) - заработало.

Sergey Masyura
Sergey Masyura

Memory: StackTrace

A first chance exception of type 'System.ArgumentNullException' occurred in StockSharp.Smart.dll at StockSharp.Smart.SmartComWrapper.RegisterTrades(String securityId) at StockSharp.Smart.SmartTrader.RegisterTrades(Security security, Boolean fromSessionStart) at StockSharp.Smart.SmartTrader.OnRegisterTrades(Security security) at StockSharp.Algo.BaseTrader.RegisterTrades(Security security) at StockSharp.Algo.Candles.Compression.TradeCandleBuilderSource.RegisterSecurity(Security security) at StockSharp.Algo.Candles.Compression.RealTimeCandleBuilderSource1.Start(CandleSeries series, DateTime from, DateTime to) at #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=q$2NsxmsMWV9Hmv0MpsCgbg==() at StockSharp.Algo.Candles.Compression.CandleBuilder1.#=qqLF1yNlv8Y1iCs8201gCqwEWTHqUPr6NOKAboLZN3gc=.#=qoXpF9H4wsX4SvF7sjIpSLQ==() at StockSharp.Algo.Candles.Compression.CandleBuilder`1.Start(CandleSeries series, DateTime from, DateTime to) at StockSharp.Algo.Candles.Compression.TimeFrameCandleBuilder.Start(CandleSeries series, DateTime from, DateTime to) at #=q3vR2Bk8Bc6GNOs_cwI75FftaJTW2Uwcp0EOp9C1J4kU29dUY7RAcSR22BtL12y0Nc0DdM0dVIBhEF3E8OckZaw==.#=q$2NsxmsMWV9Hmv0MpsCgbg==() at StockSharp.Algo.Candles.CandleManager.Start(CandleSeries series, DateTime from, DateTime to) at StockSharp.Algo.Candles.CandleHelper.Start(ICandleManager manager, CandleSeries series)

> 
> Похоже я разобрался и не стоит уделять много времени. Вы судя по всему при сравнении (поиске) бумаг перешли от сравнения Security.Id к сравнению по паре Security.Code+Sequrity.Class.
> У меня 2 трейдера и я скармливал второму Security от первого. Code и Id одинаковые, Class разный. На ровном месте перестал работать следующий код
> ```csharp

depths.FirstOrDefault(d => d.Security == Sec); 

Скормил нужную бумагу (с правильным Class) - заработало.

Поиск осуществляется по самому объекту Security.