Una estrategia popular que utiliza la autocorrelación
Una anomalía desconcertante de las acciones es que los inversores tienden a reaccionar exageradamente a las noticias. Tras grandes saltos, tanto al alza como a la baja, las cotizaciones bursátiles tienden a invertirse. Esto se describe como reversión a la media en los precios de las acciones: los precios tienden a rebotar, o revertir, hacia los niveles anteriores tras grandes movimientos, que se observan en horizontes temporales de aproximadamente una semana. Una forma más matemática de describir la reversión a la media es decir que los rendimientos de las acciones están autocorrelacionados negativamente.
Esta sencilla idea es en realidad la base de una popular estrategia de fondos de cobertura. Si tienes curiosidad por saber más sobre esta estrategia de fondos de cobertura (aunque no es una lectura necesaria para nada más adelante en el curso), consulta aquí.
Observarás la autocorrelación de los rendimientos semanales de la acción MSFT de 2012 a 2017. Empezarás con un DataFrame MSFT
de precios diarios. Debes utilizar el método .resample()
para obtener los precios semanales y luego calcular los rendimientos a partir de los precios. Utiliza el método de pandas .autocorr()
para obtener la autocorrelación y demuestra que la autocorrelación es negativa. Ten en cuenta que el método .autocorr()
sólo funciona en Series, no en DataFrames (incluso en DataFrames con una columna), por lo que tendrás que seleccionar la columna en el DataFrame.
Este ejercicio forma parte del curso
Análisis de Series Temporales en Python
Instrucciones del ejercicio
- Utiliza el método
.resample()
conrule='W'
seguido de la función.last()
para convertir los datos diarios en datos semanales. - Crea un nuevo DataFrame,
returns
, de cambios porcentuales en los precios semanales utilizando el método.pct_change()
. - Calcula la autocorrelación utilizando el método
.autocorr()
en la serie de precios de cierre de las acciones, que es la columna'Adj Close'
del DataFramereturns
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Convert the daily data to weekly data
MSFT = MSFT.resample(___).___
# Compute the percentage change of prices
returns = MSFT.___
# Compute and print the autocorrelation of returns
autocorrelation = returns[___].___
print("The autocorrelation of weekly returns is %4.2f" %(autocorrelation))