Minimera CVaR
I den här övningen får du träna på PyPortfolioOpts verktyg för CVaR-minimering som riskhanteringsmål.
Du laddar modulen pypfopt.efficient_frontier och hämtar klassen EfficientCVaR, sedan skapar du en instans av klassen med investeringsbankernas tillgångar för perioden 2005–2010.
Därefter använder du instansens metod min_cvar() för att hitta de optimala portföljvikter som minimerar CVaR.
Portföljens tillgångsavkastningar finns i vektorn returns – övningen använder också en ordbok names för att mappa portföljvikter till banknamn.
Den här övningen är en del av kursen
Kvantitativ riskhantering i Python
Övningsinstruktioner
- Importera klassen
EfficientCVaRfrånpypfopt.efficient_frontier. - Skapa instansen
ecav klassenEfficientCVaRmed hjälp avreturns. Observera att du inte behöverexpected_returns, eftersom målfunktionen skiljer sig från medelvärde–variansoptimering. - Ta fram och visa den optimala portföljen med hjälp av metoden
.min_cvar()påec.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Import the EfficientCVaR class
from pypfopt.____ import EfficientCVaR
# Create the efficient frontier for CVaR minimization
ec = ____(None, ____)
# Find the cVaR-minimizing portfolio weights at the default 95% confidence level
optimal_weights = ec.____()
# Map the values in optimal_weights to the bank names
optimal_weights = { names[i] : optimal_weights[i] for i in optimal_weights}
# Display the optimal weights
print(optimal_weights)