Cointegración II

Seguramente recuerden que hace algunos meses, a raíz del tema que presenté en la última kedada de Barcelona, tratamos el tema de la cointegración aplicada al trading de spreads. Unas semanas más tarde, CDS posteaba en el Foro un enlace a una interesantísima herramienta publicada en el blog de Aris David, Matlaber, que automatizaba todo el trabajo de buscar pares cointegrados, descargando directamente los datos de Yahoo Finance. En este artículo se explica como trabajar con ella, si bien para poder usarla deberán contar con una versión reciente de Matlab.

Una vez tengamos instalado dicho programa, deberemos descargar el archivo Cointegration.zip desde el siguiente enlace, en el cual se incluyen todos los archivos necesarios para trabajar con la herramienta:

http://dfiles.eu/files/1stdgwdj4

Una vez descargado lo primero que debemos hacer es instalar MATLAB Compiler Runtime ejecutando el fichero MCRInstaller.exe que viene incluido en el ZIP. Gracias a esta librería podremos ejecutar aplicaciones desarrolladas en Matlab sin necesidad de recurrir a su interface gráfica.

Seguidamente deberemos añadir al Path de Matlab la ruta donde hemos instalado el Compiler. Para ello abrimos Matlab y vamos al menú File->Set Path…. Allí pulsamos Add Folder e introducimos la siguiente ruta:

C:Program FilesMATLABMATLAB Compiler Runtimev710runtimewin32

 Hacemos click en Save y cerramos Matlab.

Una vez hecho esto ya podemos ejecutar el programa CointegrationStandAlone.exe. Si todo va bien debería aparecer una ventana como ésta:

 

En el apartado Input podemos elegir el mercado que nos interese (actualmente vienen los componentes de los índices FTSE100, Dow Jones, CAC, DAX, EuroStoxx, Strait Times y Hang Seng.

Por su parte en Data podemos seleccionar el valor de parámetros tales como la periodicidad de los datos (diaria, semanal, mensual), el campo con el que queremos trabajar (Apertura, Máximo, Mínimo, Cierre o Cierre Ajustado) y las fechas para las que solicitamos el histórico. Automáticamente el programa se conecta a Yahoo!, descarga todas las cotizaciones y obtiene todos los pares de valores cointegrados.

Si cogemos por ejemplo los cierres diarios de los componentes del Eurostoxx50 en el periodo comprendido entre Enero de 2008 y Diciembre de 2009 obtenemos los siguientes resultados:

El significado de las columnas es el siguiente:

  • Ticker A y Ticker B son los valores cointegrados con los que podemos crear un spread.
  • Half-Life es una estimación de cuánto tiempo debemos esperar que el spread se mantenga lejos de cero. Dicho valor se obtiene suponiendo que el spread sigue un proceso de Ornstein-Uhlenbeck, de tal forma que a partir de una regresión lineal de la tasa de variación del spread vs. el propio spread podemos obtener dicha estimación. En caso de que abramos una posición en el spread y transcurran más de 2-3 veces el tiempo estimado, será conveniente cerrar la posición porque podría haber producido un cambio de régimen por lo que nuestra cobertura podría haber dejado de ser válida (en términos matemáticos, la media de largo plazo del spread podría haber cambiado).
  • Hedge Ratio es el número de acciones del Ticker B que debemos comprar o vender por cada acción del Ticker A.
  • Zscore es el valor del spread, el cual se obtiene como Ticker A – HedgeRatio*TickerB. Un alto valor positivo indica que el spread está sobrecomprado, debiéndose vender la acción A y comprar la acción B; del mismo modo, si Zscore muestra un valor muy negativo, el spread estará sobrevendido debiéndose comprar A y vender B

El programa permite asimismo representar gráficamente la evolución de cada una de las acciones y del spread en sí. Para ello basta con introducir el número de la fila en la que aparece el spread que nos interese en la casilla Select Pair ID y hacer click en Plot:

Ahora es su turno: si bien la herramienta ahorra muchísimo tiempo a la hora de hacer combinaciones buscando spreads de valores cointegrados, después hay que hacer los deberes analizando los resultados obtenidos, la estabilidad a lo largo del tiempo del spread, si los valores pertenecen o no a un mismo sector, etc. Por supuesto, no dude en compartir los resultados obtenidos en el Foro.

Saludos,
X-Trader

COMPARTIR EN: