domingo, mayo 10, 2015

Sell in May and go away (2/2)


Los mercados financieros, por sus características son algo escurridizos para los análisis estadísticos, tanto a nivel de estadística descriptiva como por supuesto a nivel de estadística inferencial. Aquellos que hayáis tenido contacto con la econometria a cierto nivel sabéis del grado de complejidad que puede llegar a tener el análisis de las variable económicas cuando nos metemos con series temporales. 

Y es que el precio de un activo, por definición es una serie temporal, un "proceso estocástico", en el que cada observación va referida a un momento en el tiempo. Todo esto hace que lo que viene después sea algo más complicado. En un análisis estadístico básico tenemos una variable aleatoria, en un proceso estocástico tenemos una "colección" de variables aleatorias cada una referida a un momento t en la linea de tiempo.



Además, como en la mayoria de las series temporales en economía, se trata de procesos estocásticos "no estacionarios" (no confundir con estacionales), ya que normalmente tienen distribuciones de probabilidad distintas para rangos ( espacios de tiempo) diferentes, al menos distintas en la media y la varianza. 

Algunas estrategias de inversión buscan patrones de "estacionariedad" en el precio de algunos activos, más concretamente en la diferencia de precio de dos activos ya que la estacionariedad en el precio es algo muy muy raro de ver. Se conocen como estrategias de Cointegración (hablaremos más adelante de ellas), básicamente consite en ponerse corto en un activo y largo en el otro si la diferencia de los precios se aleja de su media hasta determinado punto, ya que la diferencia debería volver a la media tarde o temprano, ganando dinero con el resultado neto de las dos operaciones.


Tratar de analizar la estrategía "Sell in May and go away..." con estadísticas de los meses de mayo me parece algo arriesgado.  En definitiva tratamos de detectar cierto comportamiento estacional en el precio, como si se tratase de la venta de helados, que nos confirme que los meses de verano el precio tiende a bajar mientras que en otoño e invierno tiende a subir.  Encontrar y cuantificar este efecto con herramientas econométricas requiere tiempo y conocimientos matemáticos avanzados, quizás más adelante...

Tengo que decir además que, normalmente y tal como me enseñaron hace tiempo en mi primera clase de econometría, va primero la idea, luego los datos y luego el modelo matemático o las conclusiones estadísticas que confirman la idea. Es decir, en primer lugar deberíamos tener un razonamiento lógico, económico que tenga sentido para nuestro efecto calendario... y en "Sell in May and go away..."  no acabo de encontrarlo. Lo más sensato que he leído tiene que ver con los periodos de grandes compras, de consumo,  que se producen especialmente en otoño, pero he llegado ha ver algún estudio que lo relaciona con las horas de luz solar.... 

Y es que el mes natural en sí no lo veo con suficiente entidad como para determinar comportamientos de los inversores. Otros efectos como el ciclo presidencial, vencimientos de futuros, presentaciones de resultados, ruedas de prensa de Draghi, etc. si podríamos encontrar una lógica que luego contrastar con el análisis de los datos...

Aún recuerdo el ejemplo que mi profesor de econometria puso para advertirnos de sobre esta, por otro lado más frecuente de lo que parece, peligrosa costumbre de, primero buscar los datos y luego sacar conclusiones a la ligera.... En un estudio realizado en EE.UU. se econtró una relación directa y muy significativa entre el número de prostitutas y de sacerdotes en las ciudades estadounidenses, lo que arrojaba conclusiones que dejaban en mal lugar a los sacerdotes... Cuando en realidad es consecuencia simplemente de que ambas variables están directamente relacionadas con el número de habitantes, como lo está el número de panaderos, fontaneros, administrativos, etc... 

De este modo, y aunque los datos estadísticos muestren un peor comportamiento de los indices en los meses de mayo y junio, debería tener algo más... 


Bueno, vamos a ver algunos números.... vamos a simular varias estrategias a lo largo de los últimos años y para varios indices... y compararla con la estrategia (no muy buena) de buy and hold....



Tengo que reconocer que este gráfico que elaboré trasteando con los datos de la versión inglesa de "Sell in May..." me ha hecho pensar.... ¿Es realmente buena la estrategia en el largo plazo? ¿Funciona en espacios temporales más cortos? ¿ Para todos los indices por igual? ¿En mercados bajistas y bajistas? ¿Y si lo comparamos con otras estrategias más activas?

En un periodo de 20 años las diferencias se hacen más llamativas, lo que podría llevarnos a una falsa impresión de que en el corto plazo podríamos obtener una diferencia considerable aplicando esta estrategia. Además ¿Funcionó igual en periodos más cortos a lo largo de eso 20 años? No siempre.

El gráfico a continuación muestra las diferencias entre las estrategias de mantenerse en liquidez un mes concreto todos los años frente a Buy and hold haciendo la primera compra en 1 de enero de 1995, para distintos indices. De modo que deberíamos evitar los mese que quedan por encima del 0 y en ningún caso estar en liquidez los mese que quedan por debajo.



Otros periodos...






Mi conclusión, poco científica, es que un inversor en indices, que considerase la estrategia de "Buy and Hold" con un horizonte de inversión amplio, por encima de los 5 años, no estaría mal que considerase este efecto de mayo y junio... pero sobre todo, no estar en liquidez los meses de noviembre y diciembre.



____________________________________________________________________________

Aqui os dejo unas líneas de código en R por si queréis probar algunas alternativas, podéis cambiar el indice, fechas y meses a analizar. Si tengo tiempo intentaré subir el código para hacer lo mismo con Matlab y Python.



require (quantmod)       #Paquete con funciones financieras.


# Variables 
ticker = "^FTSE"         #Ticker como aparece en Yahoo Finance.
desde = "1995-01-01"     # Periodod a analizar con
hasta = "2015-04-30"     # formato "YYYY-MM-DD"
estrategia = c(11,12)    # Meses que queremos estar en liquidez

# Capturamos datos... objeto Time Series.

datos = getSymbols (ticker,from=desde,to=hasta, auto.assign =FALSE)
datos = Cl(datos)        # Solo nos quedamos con el precio de cierre.

ret_dia = dailyReturn(datos) # Retornos diarios.

# A efectos de simplificar, vamos a eliminar los d?as del los meses
# considerados, lo que hace que no suframos la ganancia o perdida
# de esos d?as. Para hacer un backtest m?s elaborado no lo har?amos
# as?, tendriamos en cuenta d?as, precios de apertura, etc. pero 
# para hacer un ejemplo r?pido puede valer...
# En la primera linea encontramos las d?as de la serie temporal cuyo
# mes coincide con los de la estrategia, y los marcamos como 0 (FALSE)
# dejando el resto de d?as como 1 (TRUE), lo que vamos a estar largos.

vector_estrategia = !(as.numeric(format(index(ret_dia),"%m")) %in% estrategia)
ret_estrategia = vector_estrategia*ret_dia # Rentabilidades diarias de estrategia.

# Dibujamos el gráfico.

cum_ret_dia =(cumprod(ret_dia+1))-1
cum_ret_estrategia = (cumprod(ret_estrategia+1))-1
ymax =  max(cum_ret_dia,cum_ret_estrategia)
ymin = min(cum_ret_dia,cum_ret_estrategia)

plot (cum_ret_dia, main=ticker,ylab="Rentabilidad",ylim=c(ymin,ymax))
lines (cum_ret_estrategia,col="red")
abline(h=0,col="navy")





Un saludo.



En la vida hay tres tipos de personas, los que saben contar y los que no"
Homer Simpson.

0 comentarios: