#2225
Arbitraje estadístico con la creación de activo sintético o cesta de activos (Ibex35)
Habitualmente cuando hablamos de arbitraje estadístico hablamos de encontrar desviaciones del spread o diferencia entre dos activos que esperamos que en un futuro revierta a la media de modo que podamos detectar desviaciones de esa media con el fin de operarlas comprando y vendiendo los activos respectivamente. Mayoritariamente, este tipo de operativa se centra en buscar activos correlacionados o cointegrados que nos den las oportunidades de operar comentadas anteriormente. En este artículo, pero trataré una modalidad distinta, estudiada en menor medida en la literatura académica de este ámbito. Para esta modalidad no trataremos de confrontar activo vs. activo, sino que miraremos de encontrar una cesta de activos relacionados con un índice, de tal manera que las operaciones resultantes serán la compra/venta de la cesta de activos y la compra/venta del índice. Me gustaría dejar claro, que este post, lejos de querer dar cátedra del tema en cuestión, solo trata de expresar de forma muy simplificada y obviando explicaciones tediosas, un punto de vista destino sobre las posibilidades del arbitraje estadístico. Dicho esto pasemos a la acción.
Para nuestro ejemplo emplearemos como índice el Ibex35, como activos potenciales los 35 que conforman el índice, como periodo de entrenamiento de datos, 2 años de precios de cierre diarios (01-01-2021 / 01-01-2023) y como periodo de trading un año completo (01-01-2023 / 01/01/2024).
Paso 1: Encontrar los activos que conformen nuestra cartera o activo sintético.
Como método de selección para simplificar este proceso utilizaremos la Distancia Mínima Cuadrada también conocida como Distancia Mínima Euclidiana. Sin profundizar mucho en su cálculo, solo comentar que se trata de escalar los precios a 1 el primer día del periodo de entrenamiento (precio día 1 / precio día 1) = 1 y posteriormente (precio día N / precio día 1) y realizar la resta cuadrada entre el precio escalado del ibex y el precio escalado del activo que estemos analizando (precio escalado Ibex - precio escalado activo)^2. Esto nos dará la suma de las desviaciones entre los dos activos, buscando para nuestro ejemplo los 10 activos con una menor suma de desviaciones respecto al Ibex. Los 10 resultantes son los siguientes para el periodo mencionado: ENG, MAP, AENA, FER, AMS, RED, ACX, ITX, SAN, SCYR.
Paso 2: Formar el activo sintético y confrontarlo con el índice.
Las opciones en este paso pueden llegar a tener cierta complicación, ya que dentro de los 10 seleccionados una menor suma de desviaciones no garantiza un mejor desarrollo en el futuro. Por tanto, y para simplificar ponderaremos todos los activos por igual, 10% cada uno.
Así creamos nuestro activo sintético o cartera, ponderando al 10% el precio de todos los activos.
Para modelar el spread entre la cartera y el índice procedemos a restar sus precios escalados, esta vez sin el cuadrado, permitiendo así que el spread tenga valores positivos y negativos (esto solo en pro de la fácil visualización del spread). Es decir, el valor del spread en el tiempo 't' será: (precio esc. Ibex día 't' - precio esc. cesta día 't'). Y esto nos deja con el siguiente gráfico:
Ibex35 vs Cesta 2021-2023
Paso 3: Establecer los parámetros de entrada y salida de la operativa.
Llegados a este punto hemos de calcular la media y la desviación estándar de la serie para utilizar (media +- 1* desviación estándar) como trigger para nuestra operativa. Para el cálculo de dichas variables tenemos dos opciones, una calcularlas sobre el periodo de entrenamiento y utilizar los resultados para el periodo de trading y dos, actualizar día a día las variables añadiendo los datos que iremos obteniendo. Para este caso utilizaré la segunda. Y para cerrar la operación el ratio deberá volver a la media. También comentar que si el ratio cruza el trigger superior se deberá vender el activo A y comprar el activo B, en caso que el ratio cruce el trigger inferior se deberá comprar el activo A y vender el activo B.
Paso 4: Backtest o comportamiento de la estrategia.
Es muy importante ejecutar este paso con disciplina y pulcritud, ya que si no pueden darse falsas entradas o falsas operaciones como mostraré a continuación. Al final del periodo de trading el ratio de Ibex vs. Cesta luce así:
Para nuestro ejemplo emplearemos como índice el Ibex35, como activos potenciales los 35 que conforman el índice, como periodo de entrenamiento de datos, 2 años de precios de cierre diarios (01-01-2021 / 01-01-2023) y como periodo de trading un año completo (01-01-2023 / 01/01/2024).
Paso 1: Encontrar los activos que conformen nuestra cartera o activo sintético.
Como método de selección para simplificar este proceso utilizaremos la Distancia Mínima Cuadrada también conocida como Distancia Mínima Euclidiana. Sin profundizar mucho en su cálculo, solo comentar que se trata de escalar los precios a 1 el primer día del periodo de entrenamiento (precio día 1 / precio día 1) = 1 y posteriormente (precio día N / precio día 1) y realizar la resta cuadrada entre el precio escalado del ibex y el precio escalado del activo que estemos analizando (precio escalado Ibex - precio escalado activo)^2. Esto nos dará la suma de las desviaciones entre los dos activos, buscando para nuestro ejemplo los 10 activos con una menor suma de desviaciones respecto al Ibex. Los 10 resultantes son los siguientes para el periodo mencionado: ENG, MAP, AENA, FER, AMS, RED, ACX, ITX, SAN, SCYR.
Paso 2: Formar el activo sintético y confrontarlo con el índice.
Las opciones en este paso pueden llegar a tener cierta complicación, ya que dentro de los 10 seleccionados una menor suma de desviaciones no garantiza un mejor desarrollo en el futuro. Por tanto, y para simplificar ponderaremos todos los activos por igual, 10% cada uno.
Así creamos nuestro activo sintético o cartera, ponderando al 10% el precio de todos los activos.
Para modelar el spread entre la cartera y el índice procedemos a restar sus precios escalados, esta vez sin el cuadrado, permitiendo así que el spread tenga valores positivos y negativos (esto solo en pro de la fácil visualización del spread). Es decir, el valor del spread en el tiempo 't' será: (precio esc. Ibex día 't' - precio esc. cesta día 't'). Y esto nos deja con el siguiente gráfico:
Paso 3: Establecer los parámetros de entrada y salida de la operativa.
Llegados a este punto hemos de calcular la media y la desviación estándar de la serie para utilizar (media +- 1* desviación estándar) como trigger para nuestra operativa. Para el cálculo de dichas variables tenemos dos opciones, una calcularlas sobre el periodo de entrenamiento y utilizar los resultados para el periodo de trading y dos, actualizar día a día las variables añadiendo los datos que iremos obteniendo. Para este caso utilizaré la segunda. Y para cerrar la operación el ratio deberá volver a la media. También comentar que si el ratio cruza el trigger superior se deberá vender el activo A y comprar el activo B, en caso que el ratio cruce el trigger inferior se deberá comprar el activo A y vender el activo B.
Paso 4: Backtest o comportamiento de la estrategia.
Es muy importante ejecutar este paso con disciplina y pulcritud, ya que si no pueden darse falsas entradas o falsas operaciones como mostraré a continuación. Al final del periodo de trading el ratio de Ibex vs. Cesta luce así:
Pero si comprovamos el estado del ratio el dia que ocurren las supestas entradas alcistas vistas en el final del periodo nos encontramos con que realmente no hicieron saltar el trigger en su dia:
Así que al decidir actualizar la media y desviación estándar cada día con los nuevos datos, debemos tener cuidado de no tener falsas entradas ni de perder entradas válidas por el hecho de no visualizarlas con el gráfico del total del periodo. Si realizamos correctamente el backtest veremos que durante el periodo de trading se dan 3 operaciones:
En este ejemplo no indagaremos en detalles, pero quiero dejar constancia de que al actualizarse el ratio a final de mercado por utilizar precios de cierre, las entradas deben ser ejecutadas al precio de abertura del día siguiente. Así pues, la rentabilidad bruta de esta estrategia durante el periodo de trading de 1 año entero(2023) con 2 años de datos de entrenamiento (01-2021 / 01-2023) luce de este modo:
Espero que os haya gustado y os pueda servir de inspiración para futura investigación. Muchas gracias y hasta la próxima.
@Capm98