Minimizzare il CVaR
Questo esercizio ti permette di fare pratica con gli strumenti di PyPortfolioOpt per la minimizzazione del CVaR come obiettivo di gestione del rischio.
Caricherai il modulo pypfopt.efficient_frontier e recupererai la classe EfficientCVaR, creando un'istanza della classe usando gli asset delle investment bank nel periodo 2005 - 2010.
Userai poi il metodo min_cvar() dell'istanza per trovare i pesi di portafoglio ottimali che minimizzano il CVaR.
I rendimenti degli asset di portafoglio sono nel vettore returns—questo esercizio usa anche un dizionario names per mappare i pesi del portafoglio ai nomi delle banche.
Questo esercizio fa parte del corso
Gestione quantitativa del rischio in Python
Istruzioni dell'esercizio
- Importa la classe
EfficientCVaRdapypfopt.efficient_frontier. - Crea l'istanza
ecdella classeEfficientCVaRusandoreturns; nota che non ti serveexpected_returns, perché la funzione obiettivo è diversa dall'ottimizzazione media-varianza. - Trova e visualizza il portafoglio ottimale usando il metodo
.min_cvar()diec.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)