Есть 2 стратегии, унаследованные от TimeFrameStrategy. Одна из них создает другую, передавая в конструкторе Trader, Security и Portfolio и затем вызывает ее как дочернюю через ChildStrategies.Add(). В Strategy2 переопределен метод OnStarting(), в конце которого вызывается базовый метод. Проблема в том, что наверное в половине случаев вызов базового OnStarting() кидает исключение NullReferenceException, и в отладчике видно, что свойство Trader равно null, хотя в конструкторе оно было проинициализировано. S# 4.0.3.
Comentários (7)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Выяснилось, что это проделки вызываемого из другого потока Stop().
У меня тоже на base.OnStarting(); ругается NullReferenceException но уже в другой стратегии причем нигде в коде не делаю стоп для этой стратегии, может это все таки бага версии 4.0.3 ?
Trader обнуляется у стратегии в методе Dispose (вызывается при остановке у дочерней стратегии). У вас такая ситуация? Получается, вы перезапускаете ранее отработавшую стратегию, так?
Причем если эту стратегию я запускаю как чилдстратежи другой, ошибки нет
Нет я стартую стратегию первый раз , и трейдер у меня не нулевой , я пока что не понял от чего такая ошибка.
Стратегия дочерняя?
Если делаю ее дочерней тогда такой ошибки нет, если хочу стартануть ее как отдельную стратегию тогда возникает ошибка.