Skip to content

Portfolio & Risk

Portfolio construction

result = asr.portfolio.optimize(
    returns,
    method="minimum_variance",
)
print(result.weights)
print(result.summary)

Supported canonical optimization methods include minimum variance, maximum Sharpe, equal risk contribution, maximum diversification and hierarchical risk parity.

Risk report

risk = asr.risk.portfolio_risk_report(
    returns.tail(252),
    result.weights,
    level=0.95,
)
print(risk.summary)

The risk namespace also exposes historical/Gaussian/Cornish-Fisher VaR, Expected Shortfall, rolling VaR, covariance risk contributions, ES contributions and scenario P&L.

Research rule

Do not report only aggregate volatility or Sharpe. Inspect concentration, exposures and risk contribution so that portfolio behaviour is attributable rather than opaque.