Minimizarea CVaR
Acest exercițiu îți oferă ocazia să exersezi instrumentele PyPortfolioOpt pentru minimizarea CVaR ca obiectiv de gestionare a riscului.
Vei încărca modulul pypfopt.efficient_frontier și vei prelua clasa EfficientCVaR, creând o instanță a acesteia pe baza activelor băncilor de investiții din perioada 2005–2010.
Vei folosi apoi metoda min_cvar() a instanței pentru a găsi ponderile optime ale portofoliului care minimizează CVaR-ul.
Randamentele activelor din portofoliu se află în vectorul returns — exercițiul folosește și un dicționar names pentru a asocia ponderile portofoliului cu numele băncilor.
Acest exercițiu face parte din cursul
Managementul Cantitativ al Riscului în Python
Instrucțiuni pentru exercițiu
- Importă clasa
EfficientCVaRdinpypfopt.efficient_frontier. - Creează instanța
eca claseiEfficientCVaRfolosindreturns; reține că nu ai nevoie deexpected_returns, deoarece funcția obiectiv diferă de optimizarea medie-varianță. - Găsește și afișează portofoliul optim folosind metoda
.min_cvar()a luiec.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)