Minimalizace CVaR
V tomto cvičení si procvičíš nástroje knihovny PyPortfolioOpt pro minimalizaci CVaR jako cíle řízení rizik.
Načteš modul pypfopt.efficient_frontier a získáš z něj třídu EfficientCVaR. Poté vytvoříš instanci této třídy s využitím aktiv investičních bank za období 2005–2010.
Následně použiješ metodu .min_cvar() dané instance, abys nalezl/a optimální váhy portfolia minimalizující CVaR.
Výnosy aktiv portfolia jsou uloženy ve vektoru returns – cvičení také využívá slovník names pro mapování vah portfolia na názvy bank.
Toto cvičení je součástí kurzu
Kvantitativní řízení rizik v Pythonu
Pokyny k cvičení
- Importuj třídu
EfficientCVaRz modulupypfopt.efficient_frontier. - Vytvoř instanci třídy
EfficientCVaRs názvemecs využitímreturns; všimni si, žeexpected_returnsnepotřebuješ, protože účelová funkce se liší od optimalizace střední hodnoty a rozptylu. - Nalezni optimální portfolio pomocí metody
.min_cvar()volaná naeca výsledek zobraz.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)