Soy relativamente nuevo en este campo y me gustaría hacer un par de preguntas.
Estoy haciendo un análisis y me gustaría comparar/trazar el VIX frente a la volatilidad histórica del SPX. Tengo datos diarios del VIX y del SPX. Así que lo primero que traté de hacer fue calcular la volatilidad histórica, se me ocurrió la siguiente función
from numpy import sqrt,mean,log,diff
def get_historical_volatility(df, days):
close = df['Close']
r = diff(log(close))
volatility = []
for index in range(days, len(r)):
range_r = r[index-days:days+index]
r_mean = mean(range_r)
diff_square = [(range_r[i]-r_mean)**2 for i in range(0,len(range_r))]
std = sqrt(sum(diff_square)*(1.0/(len(range_r)-1)))
volatility.append(std*sqrt(252)*100)
return volatility
¿Se ve bien esta función?
¿Cuántos días debo utilizar para el cálculo de la volatilidad histórica para compararla con el VIX? ¿30 o 21 (promedio de días de negociación por mes)?
Este es el gráfico actual que obtengo al graficar el VIX contra la volatilidad histórica de 30 días.
¿Hay alguna herramienta/proveedor de datos donde pueda obtener la volatilidad histórica del SPX para poder compararla con los resultados que he obtenido?