Scomporre la crisi finanziaria
Nel video hai visto la frontiera efficiente per il portafoglio delle banche d'investimento sull'intero periodo 2005 - 2010, che include il periodo prima, durante e dopo la crisi finanziaria globale.
Qui scomporrai questo periodo in tre sotto-periodi, o epochs: 2005-2006 (before), 2007-2008 (during) e 2009-2010 (after). Per ciascun periodo calcolerai la matrice di covarianza efficiente e le confronterai tra loro.
I prices del portafoglio per il 2005 - 2010 sono disponibili nel tuo workspace, così come l'oggetto CovarianceShrinkage di PyPortfolioOpt.
Questo esercizio fa parte del corso
Gestione quantitativa del rischio in Python
Istruzioni dell'esercizio
- Crea un dizionario
epochs: le sue chiavi sono i sotto-periodi e i suoi valori sono dizionari con le date di 'start' e 'end'. - Per ognuna delle chiavi dei sotto-periodi in
epochs, impostasub_priceall'intervallo dipricesrelativo a quel sotto-periodo. - Usa
sub_pricee l'oggettoCovarianceShrinkageper trovare una matrice di covarianza efficiente per ciascun sotto-periodo. - Stampa e confronta le matrici di covarianza efficienti risultanti per tutti e tre i sotto-periodi.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create a dictionary of time periods (or 'epochs')
epochs = { 'before' : {'start': '1-1-2005', 'end': '31-12-2006'},
'during' : {____: '1-1-2007', 'end': '31-12-2008'},
'after' : {'start': '1-1-2009', ____: '31-12-2010'}
}
# Compute the efficient covariance for each epoch
e_cov = {}
for x in epochs.keys():
sub_price = prices.loc[epochs[x][____]:____[x]['end']]
e_cov[x] = CovarianceShrinkage(____).ledoit_wolf()
# Display the efficient covariance matrices for all epochs
print("Efficient Covariance Matrices\n", e_cov)