IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa la classe EfficientCVaR da pypfopt.efficient_frontier.
  • Crea l'istanza ec della classe EfficientCVaR usando returns; nota che non ti serve expected_returns, perché la funzione obiettivo è diversa dall'ottimizzazione media-varianza.
  • Trova e visualizza il portafoglio ottimale usando il metodo .min_cvar() di ec.

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)
Modifica ed esegui il codice