← Voltar

NullReferenceException в TimeFrameStrategy

Есть 2 стратегии, унаследованные от TimeFrameStrategy. Одна из них создает другую, передавая в конструкторе Trader, Security и Portfolio и затем вызывает ее как дочернюю через ChildStrategies.Add(). В Strategy2 переопределен метод OnStarting(), в конце которого вызывается базовый метод. Проблема в том, что наверное в половине случаев вызов базового OnStarting() кидает исключение NullReferenceException, и в отладчике видно, что свойство Trader равно null, хотя в конструкторе оно было проинициализировано. S# 4.0.3.

Este tópico foi útil?

Compartilhar tópico

Comentários (7)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

Alter
Alter Autor

Выяснилось, что это проделки вызываемого из другого потока Stop().

lesser
lesser

У меня тоже на base.OnStarting(); ругается NullReferenceException но уже в другой стратегии причем нигде в коде не делаю стоп для этой стратегии, может это все таки бага версии 4.0.3 ?

Mikhail Sukhov
Mikhail Sukhov

lesser: У меня тоже на base.OnStarting(); ругается NullReferenceException но уже в другой стратегии причем нигде в коде не делаю стоп для этой стратегии, может это все таки бага версии 4.0.3 ?

Trader обнуляется у стратегии в методе Dispose (вызывается при остановке у дочерней стратегии). У вас такая ситуация? Получается, вы перезапускаете ранее отработавшую стратегию, так?

lesser
lesser

Причем если эту стратегию я запускаю как чилдстратежи другой, ошибки нет

lesser
lesser

Нет я стартую стратегию первый раз , и трейдер у меня не нулевой , я пока что не понял от чего такая ошибка.

Mikhail Sukhov
Mikhail Sukhov

lesser: Нет я стартую стратегию первый раз , и трейдер у меня не нулевой , я пока что не понял от чего такая ошибка.

Стратегия дочерняя?

lesser
lesser

Если делаю ее дочерней тогда такой ошибки нет, если хочу стартануть ее как отдельную стратегию тогда возникает ошибка.