portfolio module

btQuant.portfolio.blackLitterman(covMatrix, pi, P, Q, tau=0.05)[source]

Black-Litterman model for portfolio optimization.

Parameters:
  • covMatrix – covariance matrix of returns

  • pi – equilibrium (market-implied) returns

  • P – views matrix (rows=views, cols=assets)

  • Q – view returns vector

  • tau – prior uncertainty (default 0.05)

Returns:

adjusted expected returns

btQuant.portfolio.efficientFrontier(expectedReturns, covMatrix, nPoints=50)[source]

Compute efficient frontier.

Parameters:
  • expectedReturns – expected returns

  • covMatrix – covariance matrix

  • nPoints – number of points on frontier

Returns:

list of dicts with returns, volatility, weights

btQuant.portfolio.equalWeight(nAssets)[source]

Equal weight portfolio.

Parameters:

nAssets – number of assets

Returns:

equal weight portfolio weights

btQuant.portfolio.hierarchicalRiskParity(covMatrix, returns)[source]

Hierarchical risk parity portfolio allocation.

Parameters:
  • covMatrix – covariance matrix

  • returns – historical returns (for correlation)

Returns:

HRP portfolio weights

btQuant.portfolio.maxDiversification(covMatrix)[source]

Maximum diversification portfolio.

Parameters:

covMatrix – covariance matrix

Returns:

maximum diversification portfolio weights

btQuant.portfolio.maxReturn(expectedReturns)[source]

Maximum return portfolio (100% in highest expected return asset).

Parameters:

expectedReturns – expected returns

Returns:

maximum return portfolio weights

btQuant.portfolio.maxSharpe(expectedReturns, covMatrix, riskFreeRate=0)[source]

Maximum Sharpe ratio portfolio (alias for tangency).

Parameters:
  • expectedReturns – expected returns

  • covMatrix – covariance matrix

  • riskFreeRate – risk-free rate

Returns:

maximum Sharpe portfolio weights

btQuant.portfolio.meanVariance(expectedReturns, covMatrix, riskAversion=0.5)[source]

Mean-variance optimization.

Parameters:
  • expectedReturns – expected returns for each asset

  • covMatrix – covariance matrix

  • riskAversion – risk aversion parameter (higher = more risk averse)

Returns:

optimal portfolio weights

btQuant.portfolio.minCvar(expectedReturns, returns, alpha=0.95)[source]

Minimum CVaR (Conditional Value at Risk) portfolio.

Parameters:
  • expectedReturns – expected returns

  • returns – historical returns matrix (nSamples x nAssets)

  • alpha – confidence level

Returns:

minimum CVaR portfolio weights

btQuant.portfolio.minVariance(covMatrix)[source]

Minimum variance portfolio.

Parameters:

covMatrix – covariance matrix

Returns:

minimum variance portfolio weights

btQuant.portfolio.riskParity(covMatrix)[source]

Risk parity portfolio optimization.

Parameters:

covMatrix – covariance matrix

Returns:

risk parity portfolio weights

btQuant.portfolio.tangency(expectedReturns, covMatrix, riskFreeRate=0)[source]

Tangency portfolio (maximum Sharpe ratio).

Parameters:
  • expectedReturns – expected returns

  • covMatrix – covariance matrix

  • riskFreeRate – risk-free rate

Returns:

tangency portfolio weights