← 返回

Portfolio.GetPnL()

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

本主题对您有帮助吗?

分享主题

评论 (2)

登录创建账户, 登录或注册以发表评论

Alexander
Alexander

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

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

portfolio.CurrentAmount - portfolio.BeginAmount

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

romanick
romanick 作者

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()? Им-то пользоваться намного удобнее, тем более у меня несколько работающих стратегий в одном портфеле...