Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Itera sull'indice di returns_monthly.
  • Crea una maschera per returns_daily che utilizzi il mese e l'anno correnti da returns_monthly e li faccia corrispondere al mese e all'anno correnti da i nel ciclo.
  • Usa la maschera su returns_daily e 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])
Modifica ed esegui il codice