← Back

Portfolio.GetPnL()

Этот метод, по идее, должен возвращать текущие прибыли/убытки по всему портфелю ( у меня одновременно несколько стратегий работают по разным инструментам). Но возвращает начальный депозит даже не на начало сессии, а вообще начальный. Счёт тестовый если что. Почему не работает? Как иначе получить текущие PnL по всему портфелю?

Comments (2)

Login or Create account, Log in or register to leave a comment

Alexander
Alexander

romanick: Этот метод, по идее, должен возвращать текущие прибыли/убытки по всему портфелю ( у меня одновременно несколько стратегий работают по разным инструментам). Но возвращает начальный депозит даже не на начало сессии, а вообще начальный. Счёт тестовый если что. Почему не работает? Как иначе получить текущие PnL по всему портфелю?

данный метод возвращает

portfolio.CurrentAmount - portfolio.BeginAmount

Регистрировали ли Portfolio, есть ли подписка на сделки?

romanick
romanick Author

Alexander:

romanick: Этот метод, по идее, должен возвращать текущие прибыли/убытки по всему портфелю ( у меня одновременно несколько стратегий работают по разным инструментам). Но возвращает начальный депозит даже не на начало сессии, а вообще начальный. Счёт тестовый если что. Почему не работает? Как иначе получить текущие PnL по всему портфелю?

данный метод возвращает

portfolio.CurrentAmount - portfolio.BeginAmount

> 
> Регистрировали ли Portfolio, есть ли подписка на сделки?

Вроде бы всё есть:

_strategy = new RobotStrategy(tradeData);
				_manager.Register(_strategy, portfolio, security);
_trader.RegisterSecurity(security);
_trader.RegisterQuotes(security);
_trader.RegisterTrades(security);
_trader.RegisterPortfolio(portfolio);

Что интересно, что Strategy.GetPnL работает верно и можно в принципе брать нужное значение от туда, но почему не работает Portfolio.GetPnL()? Им-то пользоваться намного удобнее, тем более у меня несколько работающих стратегий в одном портфеле...