NullReferenceException при вызове Strategy.Security.BestAsk.Price


NullReferenceException при вызове Strategy.Security.BestAsk.Price
Atom
28.05.2012


В версии 4.0.23 при вызове Strategy.Security.BestAsk.Price получал нужную цену.
Скачал самую последнюю версию 17334, с dev-ветки.
Теперь Strategy.Security.BestAsk равно null и вылетает NullReferenceException

Теги:


Спасибо:


1 2  >
Alexander

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


Какой шлюз? Экспорт стакана запускается?
Спасибо:

Кот Матроскин

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


Alexander Mukhanchikov Перейти
Какой шлюз? Экспорт стакана запускается?

Тестирую в EmulationTrader
Экспорт стакана не запускал ни в 4.0.23, ни в текущей
Спасибо:

esper

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


Кот Матроскин Перейти
Тестирую в EmulationTrader
Экспорт стакана не запускал ни в 4.0.23, ни в текущей

Если нет сохраненных стаканов, то у EmulationTrader надо выставить UseMarketDepth = false
Спасибо: Кот Матроскин Yury Smykalov

Кот Матроскин

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


esper Перейти
Кот Матроскин Перейти
Тестирую в EmulationTrader
Экспорт стакана не запускал ни в 4.0.23, ни в текущей

Если нет сохраненных стаканов, то у EmulationTrader надо выставить UseMarketDepth = false

Спасибо, помогло, NullReferenceException больше не вылетает. В 4.0.23 не было такого свойства.
А то, что мы создаем генератор стаканов:
_trader.DepthGenerators[_security] = new TrendMarketDepthGenerator(_security)
это что-то другое?
Спасибо:

esper

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


Если UseMarketDepth = false, то стаканы как раз генерируются, иначе читаются из БД.
Спасибо: Кот Матроскин

Кот Матроскин

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


esper Перейти
Если UseMarketDepth = false, то стаканы как раз генерируются, иначе читаются из БД.

Спасибо, теперь полностью разобрался)))
Спасибо:

Кот Матроскин

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


Все-таки еще иногда вылазит NullReferenceException. Но не всегда:
Цитата:
Метка 3-1 MarketTime:2012.03.07 18:30:01, BestAsk = 97,42000, H = 97,56000, L = 97,36000
Метка 3-1 MarketTime:2012.03.07 18:40:00, BestAsk = 97,25000, H = 97,65000, L = 97,21000
Метка 3-1 MarketTime:2012.03.11 09:59:59, NullReferenceException
Метка 3-1 MarketTime:2012.03.11 10:00:00, BestAsk = 99,60000, H = 99,60000, L = 99,60000
Метка 3-1 MarketTime:2012.03.11 10:10:00, BestAsk = 99,44000, H = 99,80000, L = 99,39000
Метка 3-1 MarketTime:2012.03.11 10:20:00, BestAsk = 99,51000, H = 99,57000, L = 99,35000

Сначала думал, что из-за корявого времени свечи, но в других случаях все нормально

Цитата:
Метка 3-1 MarketTime:2012.03.15 18:30:00, BestAsk = 100,86000, H = 100,89000, L = 100,65000
Метка 3-1 MarketTime:2012.03.15 18:40:00, BestAsk = 100,69000, H = 100,88000, L = 100,54000
Метка 3-1 MarketTime:2012.03.16 09:59:59, BestAsk = 100,67000, H = 100,70000, L = 100,54000
Метка 3-1 MarketTime:2012.03.16 10:00:00, BestAsk = 100,99000, H = 100,99000, L = 100,99000
Метка 3-1 MarketTime:2012.03.16 10:10:00, BestAsk = 100,75000, H = 100,97000, L = 100,35000

Спасибо:

Кот Матроскин

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


Опять полезло NullReferenceException при вызове Strategy.Security.BestBid.Price
при этом UseMarketDepth = false
Цитата:
10:00:00.000 | Error | FDS_SBER@EQBR_test account | System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в SampleHistoryTesting.FDStrategy.OnCandlesFinished(Candle candle) в F:\S#\4.1.0\StockSharp_4.1\Samples\Testing\HistoryTesting\Strategy\FDStrategy.cs:строка 334
в SampleHistoryTesting.FDStrategy.<OnStarting>b__6(Candle newCandles) в F:\S#\4.1.0\StockSharp_4.1\Samples\Testing\HistoryTesting\Strategy\FDStrategy.cs:строка 96
в StockSharp.Algo.Strategies.StrategyRule`1.#=qbKPfZP$sHNKewBoWTxOVIZWKc2RxMGQkOvMNrefS8FE=()
в StockSharp.Algo.Strategies.Strategy.#=qYja9YukY0RAy8kUzPEwBAg==(IStrategyRule #=quLfxru5uzbPCCVRiCLmC0g==, Func`1 #=qyw4EbBr3D$tMVupgMHmy2Q==, Object #=qayY1ai3QioJ7b725$BZRPA==, Boolean #=qUT7qwl2456HPh4xYvHuyMA==)

Причем вылезает постоянно
Версия stocksharp-17830 trunk
Спасибо:

pyhta4og

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


Вообще-то вы в своей стратегии случай BestBid=null должны сами обрабатывать отдельно потому что
это вполне норм ситуация - в стакане нет бидов.

Почему так получается в вашем случае с генерироваными стаканами сложно сразу понять, но есть гипотеза
Поставьте Emulator.Settings.DepthExpirationTime=TimeSpan.MaxValue

Дело в том, что эмулятор очищает стаканы которые старше чем 1 сутки.

Дйте знать, изменится ли поведение.
Спасибо:

Кот Матроскин

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


pyhta4og Перейти
Вообще-то вы в своей стратегии случай BestBid=null должны сами обрабатывать отдельно потому что
это вполне норм ситуация - в стакане нет бидов.

Мне кажется, что для Сбербанка отсутствие в стакане бидов все же не есть норма
pyhta4og Перейти
Почему так получается в вашем случае с генерироваными стаканами сложно сразу понять, но есть гипотеза
Поставьте Emulator.Settings.DepthExpirationTime=TimeSpan.MaxValue

Дело в том, что эмулятор очищает стаканы которые старше чем 1 сутки.

Дйте знать, изменится ли поведение.

Поставил
_trader.MarketEmulator.Settings.DepthExpirationTime = TimeSpan.MaxValue;
Результат то же
Спасибо:
1 2  >

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

loading
clippy