Calcular covarianzas para la volatilidad
En la MPT, cuantificamos el riesgo mediante la volatilidad. Las matemáticas para calcular la volatilidad de una cartera son complejas y requieren las covarianzas de los rendimientos diarios. Ahora vamos a iterar por cada mes en el DataFrame returns_monthly y a calcular la covarianza de los rendimientos diarios.
Con índices datetime de pandas, podemos acceder al mes y al año con df.index.month y df.index.year. Usaremos esto para crear una máscara para returns_daily que nos dé los rendimientos diarios del mes y año actuales en el bucle. Luego usamos la máscara para filtrar el DataFrame así: df[mask]. Esto obtiene las entradas en el DataFrame returns_daily que corresponden al mes y año actuales en cada iteración del bucle. Por último, usaremos el método .cov() de pandas para obtener la covarianza de los rendimientos diarios.
Este ejercicio forma parte del curso
Machine Learning para finanzas con Python
Instrucciones del ejercicio
- Itera por el índice de
returns_monthly. - Crea una máscara para
returns_dailyque utilice el mes y el año actuales dereturns_monthly, y que coincida con el mes y el año actuales deien el bucle. - Usa la máscara sobre
returns_dailyy calcula las covarianzas con.cov().
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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])