Rendimenti e rischio a pesi esponenziali
In questo esercizio, farai l’ottimizzazione di portafoglio con un modo leggermente diverso di stimare rischio e rendimento: darai più peso ai dati recenti nell’ottimizzazione.
È un approccio efficace per gestire dati azionari tipicamente non stazionari, cioè quando la distribuzione cambia nel tempo. L’implementazione si può fare rapidamente cambiando il modello di rischio che usi per calcolare Sigma e il calcolo dei rendimenti che usi per ottenere mu. Il dataset dei prezzi azionari è disponibile come stock_prices. Proviamo!
Questo esercizio fa parte del corso
Introduzione all'analisi di portafoglio in Python
Istruzioni dell'esercizio
- Usa la matrice di covarianza a pesi esponenziali da
risk_modelse la funzione dei rendimenti storici a pesi esponenziali daexpected_returnsper calcolareSigmaemu. Imposta lo span a 180 e la frequenza (cioè i giorni di trading) a 252. - Calcola la frontiera efficiente con i nuovi
mueSigma. - Calcola i pesi per il portafoglio a massimo rapporto di Sharpe.
- Ottieni il report delle performance.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Define exponentially weightedSigma and mu using stock_prices
Sigma = risk_models.____(____, span=____, frequency=____)
mu = expected_returns.____(____, frequency=____, span=____)
# Calculate the efficient frontier
ef = ____(____, ____)
# Calculate weights for the maximum sharpe ratio optimization
raw_weights_maxsharpe = ____.____()
# Show portfolio performance
ef.____(verbose=True)