Discusión sobre el artículo "Arbitraje estadístico mediante acciones cointegradas (Parte 2): Asesor Experto, pruebas retrospectivas y optimización"

 

Artículo publicado Arbitraje estadístico mediante acciones cointegradas (Parte 2): Asesor Experto, pruebas retrospectivas y optimización:

Este artículo presenta un ejemplo de implementación de un asesor experto para operar con una cesta de cuatro acciones del Nasdaq. Las acciones se filtraron inicialmente a partir de pruebas de correlación de Pearson. A continuación, se evaluó la cointegración del grupo filtrado mediante pruebas de Johansen. Por último, se verificó la estacionariedad del spread cointegrado mediante las pruebas ADF y KPSS. A continuación veremos algunas notas sobre este proceso y los resultados de las pruebas retrospectivas tras una pequeña optimización.

El borracho, el perro y el paseo aleatorio*

Al investigar la cointegración, es muy común toparse con una analogía que explica bastante bien la característica fundamental de las series temporales cointegradas, o de los precios de las acciones cointegrados, en este caso. La analogía dice que dos series temporales no cointegradas son como un hombre borracho caminando con su perro. Sus trayectorias se separan de forma aleatoria, sin lógica intrínseca, percibida o medible. El hombre y el perro pueden incluso llegar a casa por caminos diferentes, o el perro puede perderse para siempre.

Pero dos series temporales cointegradas serían como si el perro fuera llevado con un collar, es decir, el hombre sigue borracho, sus pasos siguen tambaleándose, pero siguen avanzando juntos, pase lo que pase. Las acciones cointegradas son como si sus precios estuvieran ligados por un collar "invisible". A la larga, suelen llegar a casa juntos. El hogar es la media común, es decir, la media del spread.

Arbitraje estadístico mediante acciones cointegradas (Parte 2): Asesor Experto, pruebas retrospectivas y optimización


Autor: Jocimar Lopes

 

¿A qué se deben todas estas complicaciones?

dollarExposures[i] = MathAbs(weights_arr[i]) * price * baseLotSize;
...
double ratio = dollarExposures[i] / totalDollarExposure;
double targetDollarExposure = ratio * totalDollarExposure;
...
double lots = targetDollarExposure / price;

Esto da como resultado:

lots -> ratio * totalDollarExposure / price -> dollarExposures[i] / totalDollarExposure * totalDollarExposure / price -> dollarExposures[i] / price -> MathAbs(weights_arr[i]) * baseLotSize

Además, tus cálculos no son compatibles con cotizaciones expresadas en una divisa distinta a la de la cuenta.

 
Stanislav Korotky #:

¿A qué se deben todas estas complicaciones?

Esto da como resultado:

Además, tus cálculos no son compatibles con cotizaciones expresadas en una divisa distinta a la de la cuenta.

¡Gracias, Stanislav!