Calcola le covarianze per la volatilità
In MPT, quantifichiamo il rischio tramite la volatilità. La matematica per calcolare la volatilità di portafoglio è complessa e richiede le covarianze dei rendimenti giornalieri. Ora itereremo su ogni mese nel DataFrame returns_monthly e calcoleremo la covarianza dei rendimenti giornalieri.
Con gli indici datetime di pandas, possiamo accedere al mese e all'anno con df.index.month e df.index.year. Useremo questo per creare una maschera per returns_daily che ci dia i rendimenti giornalieri per il mese e l'anno correnti nel ciclo. Poi usiamo la maschera per sotto-selezionare il DataFrame così: df[mask]. Questo recupera le voci nel DataFrame returns_daily che appartengono al mese e anno correnti in ciascuna iterazione del ciclo. Infine, useremo il metodo .cov() di pandas per ottenere la covarianza dei rendimenti giornalieri.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Itera sull'indice di
returns_monthly. - Crea una maschera per
returns_dailyche utilizzi il mese e l'anno correnti dareturns_monthlye li faccia corrispondere al mese e all'anno correnti dainel ciclo. - Usa la maschera su
returns_dailye calcola le covarianze usando.cov().
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Daily covariance of stocks (for each monthly period)
covariances = {}
rtd_idx = returns_daily.index
for i in returns_monthly.____:
# Mask daily returns for each month and year, and calculate covariance
mask = (rtd_idx.month == i.month) & (rtd_idx.____ == i.____)
# Use the mask to get daily returns for the current month and year of monthy returns index
covariances[i] = returns_daily[____].cov()
print(covariances[i])