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

Проблема с CandleManager.Start
Atom
7/19/2012
Memory


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

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

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

Tags:


Thanks:


Alexander

Avatar
Date: 7/19/2012
Reply


StackTrace
Thanks: Memory

Memory

Avatar
Date: 7/19/2012
Reply


StackTrace
Code

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 разный. На ровном месте перестал работать следующий код
Code

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

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

Sergey Masyura

Avatar
Date: 7/19/2012
Reply


Memory
StackTrace
Code

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 разный. На ровном месте перестал работать следующий код
Code

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

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


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

Thanks:


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

loading
clippy