Quantitative Risk Management in Python
Jamsheed Shorish
Computational Economist


Recall: $f(x)$ = probability density function of portfolio loss
PyPortfolioOpt: select minimization of CVaR as new objective
EfficientCVaR object with asset returns returns.min_cvar() method
ec = pypfopt.efficient_frontier.EfficientCVaR(None, returns)optimal_weights = ec.min_cvar()
ef = EfficientFrontier(None, e_cov)min_vol_weights = ef.min_volatility()print(min_vol_weights)
{'Citibank': 0.0,
'Morgan Stanley': 5.0784330940519306e-18,
'Goldman Sachs': 0.6280157234640608,
'J.P. Morgan': 0.3719842765359393}
ec = pypfopt.efficient_frontier.EfficientCVaR(None, returns) min_cvar_weights = ec.min_cvar()print(min_cvar_weights)
{'Citibank': 0.0,
'Morgan Stanley': 0.0,
'Goldman Sachs': 0.669324359403484,
'J.P. Morgan': 0.3306756405965026}
Quantitative Risk Management in Python