← Zurück

NullReferenceException в TimeFrameStrategy

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

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

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