quantlab.portfolio.predefined.black_litterman.RelativeFactorReturnView#

class quantlab.portfolio.predefined.black_litterman.RelativeFactorReturnView(config)[source]#

Bases: ReturnView

The user’s view on one risk-model factor’s return less another’s, for BlackLittermanOptimizer.

A ReturnView on f_outperformer - f_underperformer: “value earns 2% a year more than momentum”. Its row is +1 on outperformer and -1 on underperformer; a bar whose forecast lacks either leaves the view out.

Parameters:
configRelativeFactorReturnViewConfig

The two factors, the view’s value and its uncertainty.

Raises:
ValueError

If outperformer and underperformer are one factor, and as ReturnView.

Examples

>>> from quantlab.portfolio.config import RelativeFactorReturnViewConfig
>>> view = RelativeFactorReturnView(RelativeFactorReturnViewConfig(
...     outperformer="value", underperformer="momentum", annual_return=0.02, confidence=0.5,
... ))
>>> view.row(("market", "momentum", "value"), np.zeros(3))
array([ 0., -1.,  1.])
>>> view.risk_factors
('value', 'momentum')
config_cls#

alias of RelativeFactorReturnViewConfig

property risk_factors#

(outperformer, underperformer).

Examples

>>> view.risk_factors
('value', 'momentum')
row(factor_names, market_exposures)[source]#

Return +1 on outperformer and -1 on underperformer, None without either.

Examples

>>> view.row(("value", "momentum"), np.zeros(2))
array([ 1., -1.])