Проблема с CandleManager.Start
Atom Ответить
19.07.2012


После перехода с 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 кончно-же есть.

Теги:


Спасибо:




3 Ответов
Alexander

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


StackTrace
Спасибо: Memory

Memory

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


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

Фотография
Автор статей
Дата: 19.07.2012
Ответить


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.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) - заработало.


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

Спасибо:


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

loading
clippy