Elecciones en EEUU y Estructura de los Futuros de VIX

Dado el tamaño de su mercado las elecciones en EEUU son un evento financiero de primer orden a nivel global. Los mercados Estadounidenses ofrecen oportunidades diversificadas y atractivas para los inversores internacionales, es natural que el sector financiero mundial observe con mayor atención durante las épocas de cambio político. Esta publicación se inspira en esta otra sobre la estructura de futuros del VIX en el periodo de elecciones.


Los contratos de futuros del VIX dan una buena indicación de la volatilidad esperada generada por el resultado de las elecciones o la posibilidad de un resultado contencioso. Utilizando el ambiente de investigación de Quantconnet podemos obtener la historia de los futuros del VIX. Primero importamos los módulos necesarios y daremos formato a nuestras gráficas:

import seaborn as sns
import numpy as np
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
from datetime import time
from IPython.core.display import HTML

qb = QuantBook()
#Center the plots in Jupyter Notebook:
HTML("""<style>.output_png {display: table-cell;text-align: center;vertical-align: middle;}</style>""")

Las historias de los contratos de futuros se pueden extraer con el método "AddFuture", podemos de este modo obtener todos los contratos futuros que expiren en los próximos 500 días desde hoy junto con su historia, por ejemplo, para los 90 días pasados:

future = qb.AddFuture(Futures.Indices.VIX)
future.SetFilter(timedelta(0), timedelta(days=500))
start =  datetime.today() - timedelta(days=90) 
end = datetime.today()
future_history = qb.GetFutureHistory(future.Symbol, start, end)
history = future_history.GetAllData()[['close']]

Por defecto esta historia estará en resolución de minutos, y es posiblemente demasiado detalle para nuestro análisis, así que podemos eliminar los datos que no necesitemos separando la fecha de la hora dentro del índice de fechas y de expiraciones y quedarnos solo con los precios a las 23:00 horas de cada día, que actúan como si fueran el precio de cierre para ese dia.

close_prices = history.reset_index()
close_prices['hour'] = close_prices['time'].dt.time
close_prices['Expiry'] = close_prices['expiry'].dt.date
close_prices['date'] = close_prices['time'].dt.date
close_prices = close_prices[ close_prices['hour'] == time(23,0,0) ]
close_prices.drop(columns = ['time', 'expiry', 'symbol', 'hour'], inplace=True)
close_prices.set_index('Expiry', inplace = True)

El objeto dataframe que obtenemos después de este proceso es este, tenemos los precios de "cierre" en una serie diaria para cada una de las fechas de expiración del contrato:



A continuación generamos la historia de los precios de acuerdo a las fechas de expiración. Queremos saber cual es la última fecha disponible dentro de nuestros datos y luego servir los datos para esa fecha (T menos 0) y cada siete días ante esa (T menos 7 hasta T menos 21) de manera semanal:

last_date = close_prices['date'].iloc[-1]
past_days = [0, 7, 14, 21]
vix_futures_structure = {}

for past in past_days:
    req_dates = close_prices['date'] == (last_date - timedelta(days=past))
    vix_futures_structure[past] = close_prices[['close']][req_dates]
    vix_futures_structure[past].columns = ['T -'+str(past)]
all_dates = pd.concat(vix_futures_structure.values(), axis=1).dropna()

La estructura de precios de cierre para los futuros del VIX para las pasadas tres semanas y para todas las fechas de expiración son estos:


La estructura de precios se puede representar utilizando las herramientas embebidas en pandas (matplotlib), importamos los mapas de colores para hacer las líneas más visibles y reducir la dificultad de lectura de líneas superpuestas como estas:

from matplotlib import cm
plt.rcParams["figure.figsize"] = (14, 7)
plt.style.use('dark_background')
cmap = cm.get_cmap('Spectral')
all_dates.plot(cmap = cmap)
plt.ylabel('USD')
plt.xlabel('Expiration Date')
monthyearFmt = mdates.DateFormatter('%Y %B')
ax1.xaxis.set_major_formatter(monthyearFmt)
_ = plt.xticks(rotation=45)

Este código genera la siguiente representación de las estructuras de precios:


Según avanza el tiempo hacia el dia de las elecciones desde hace 3 semanas, en el momento T-21, el precio de los futuros declina consistentemente, con el pico moviéndose desde el final de Octubre de 2020 hacia Noviembre de 2020, y cayendo levemente en el proceso. Esto es a lo que se enfrenta el mercado a finales de Septiembre de 2020.


¿Cómo fueron estas estructuras durante periodos de elecciones pasados? Podemos cambiar la fecha de inicio de nuestro código para obtener los valores pasados y representarlos fácilmente:


La estructura en las elecciones de 2016 parece invertida. El precio de los futuros de volatilidad incrementaron desde T-21 días hasta el primero de Octubre de 2016, con un pico en T-14 y una ligera estabilidad. Luego los precios a medio plazo parecen indicar volatilidades esperadas ligeramente superiores. La estructura de precios de 2020 puede estar parcialmente condicionada por los efectos de la epidemia de COVID19 y las expectativas de una vacuna o un tratamiento eficaz coincidente con las elecciones en EEUU. La inversión en la forma de las estructuras en su componente temporal es más difícil de explicar.


Y antes de las elecciones de 2012:


Este periodo de elecciones de 2020 parece inusual en términos de cobertura de la volatilidad y expectativas de riesgo. Se esperan unos niveles de volatilidad similares a aquellos de las elecciones de 2012 al principio de 2021, en este caso un movimiento de tobogán de bajada, comparado con las expectativas de mayor volatilidad en 2012 y 2016 después de las elecciones.


Para finalizar, ¿qué es lo que realmente ocurrió con el valor del VIX en las dos elecciones pasadas y donde estamos ahora?


Este es un solape mes a mes del valor del VIX durante las dos pasadas elecciones y el año en curso hasta la fecha de publicación de este artículo. ¿Muestran los futuros signos de sobrerreacción? Es una posibilidad que la convergencia de las crisis del COVID19 junto con la incertidumbre de las elecciones esté dando lugar a percepciones del riesgo distorsionadas y que la situación a finales de 2020 y principios de 2021 este enmascarada.


En las dos elecciones anteriores los precios de los futuros del VIX un mes antes de las elecciones subestimaron la volatilidad del día de las elecciones desde la óptica del índice. Es una posibilidad, en efecto, que incluso con el presente valle de precios de los futuros la volatilidad conjunta del COVID19 y de las elecciones esté subestimada también y que se manifieste finalmente una volatilidad mayor a la esperada desde hoy hasta el dia de las elecciones.


Este periodo de elecciones genera incertidumbre adicional sobre los precios en los mercados financieros, hay demasiados efectos aditivos coexistiendo pero ninguno parece indicar una posible bajada de la volatilidad.


Por favor recuerde que las publicaciones en Ostirion.net no son consejos financieros. Ostirion.net no mantiene posiciones en ninguno de los instrumentos financieros que se mencionan en esta publicación en el momento de la publicación. Si necesita más información, apoyo con la gestión de activos financieros, desarrollo de estrategias de trading automatizados o despliegue táctico de estrategias existentes no dude en contactar con nosotros aquí.

5 views0 comments