jueves, 14 de mayo de 2015

Cadenas de Markov en Forex

Volviendo al tema de si es posible predecir la evolución futura de un símbolo en Forex basándonos en datos pasados (tema que ya hemos tratado ampliamente en este blog, como por ejemplo aquí, aquí o aquí), en esta ocasión lo que vamos a probar es la viabilidad de utilizar Cadenas de Markov de orden k. Básicamente la idea de una cadena de Markov es dadas las k últimas barras, tratar de predecir el valor de siguiente barra. Para simplificar el problema, lo que vamos a hacer es en vez de trabajar con barras completas (apertura, cierre, máximo y mínimo), trabajar con valores booleanos (1 ó 0) que nos indican si en la barra anterior el símbolo cerró al alza (cierre > apertura), o a la baja (apertura > cierre). En este caso lo que queremos predecir es si la siguiente barra cerrará al alza o a la baja.

El problema de las cadenas de Markov es que dadas k barras, es necesario calcular 2^k parámetros de ajuste. Dado el elevado número de parámetros ajustables existe un elevado riesgo de sobreoptimización del sistema. Es decir, que acabemos con un modelo que describe a la perfección el pasado, pero que tiene capacidad nula de predicción. Para evitar las sobreoptimización vamos a utilizar una técnica llamada el principio de la longitud de descripción mínima, en la que el objetivo de la optimización no es encontrar el mejor modelo que describa los datos, sino encontrar el modelo más pequeño que mejor describa los datos.

Utilizando datos de 3 años del par EUR/USD en barras de 1 hora, obtenemos los siguientes resultados:

K    Predicción
1    0 %
2    0 %
3    0 %
4    0 %
5    -0.01 %
6    -0.04 %
7    -0.09 %
8    -0.18 %


Es decir, que utilizando hasta las cuatro barras anteriores no es posible predecir si la barra actual cerrará al alza o a la baja; y a partir de la 5 barra, el modelo no sólo no tiene capacidad de predicción, sino que también empieza a pecar del problema de la sobreoptimización.

Otra aproximación al problema sería en vez de utilizar todas las barras, utilizar el número de barras al alza vs. en número de barras a la baja. Esta es la idea que subyace a algunos de los indicadores técnicos más populares, como el RSI. Además, esta técnica reduciría considerablemente el riesgo de sobreoptimización, permiténdonos utilizar como entrada al modelo un mayor número de barras pasadas.

Aplicando estas ideas, obendríamos los siguientes resultados:

K    Predicción
1    0 %
2    0 %
3    0 %
4    0 %

5    0 %
6    0 %
7    0 %
8    0 %
9    0 %
10   0 %
11   0 %
12   0 %
13   0 %
14   0 %
15   0 %

Como podemos ver, la capacidad de predicción es nula, incluso utilizando un elevado número de barras. Lo cual nos lleva a poner seriamente en duda la utilidad de algunos de los indicadores más utilizados en el análisis técnico.

lunes, 11 de mayo de 2015

¿Cómo de Aleatorios son los Mercados?

La hipóstesis del mercado eficiente afirma que el mercado lo descuenta todo, y por tanto, la variación del precio de un activo es completamente aleatoria, resultando completamente imposible predecir valores futuros dada la serie temporal de valores pasados.

Sin embargo el concepto de aleatoriedad no es tan categórico como esta hipótesis defiende, es decir, no se trata de blanco o negro, todo o nada, sino que existen distintos grados de aleatoriead. Así, la pregunta de ¿es el mercado aleatorio? no tiene demasiado sentido. Quizás, una pregunta más acertada sería ¿cómo de aleatorio es el mercado?

Si definimos que una cadena es aleatoria en la medida que no presenta patrones repetitivos, es decir, que no puede ser comprimida (de acuerdo con la definición aportada por la complejidad de Kolmogorov), podríamos utilizar la Teoría de la Información de Shannon para calcular la aleatoriead del mercado.

Por ejemplo, supongamos que tenemos los datos correspondientes al par EUR/USD para los años 2011, 2012, y 2013, en barras de un día. De las 934 barras, tenemos 746 valores diferentes. Es decir, 188 veces el par repitió un precio que ya se había observado. ¿Podemos utilizar este hecho para comprimir los datos? Es decir, ¿podemos aprender de los valores pasados para predecir valores futuros? Si suponemos una distribución uniforme para todos los posibles precios observados (mercado totalmente aleatorio), tendríamos una entropía de 9,543 bits, pero si basándonos en las frecuencias intentamos comprimir algo más, por ejemplo utilizando códigos de Huffman, podríamos llegar a tener una longitud media por símbolo de hasta 9,427 bits. Es decir, seríamos capaces de comprimir los datos un 1,22%. No parece demasiado.

Podemos repetir el experimento para otras logitudes de barra, y obtendríamos un gráfico como el siguiente:


Como vemos, cuanto más pequeña es la longitud de barra, mayor es nuestra capacidad de compresión de los datos, y por tanto, nuestra capacidad de encontar un modelo que nos permita inferir valores futuros y, potencialmente, obtener beneficos de nuestra operativa de trading.

Sin embargo, hay dos elementos a tener en cuenta. El primero de ellos es que no se gana demasiado al disminuir la longitud de barra más allá de 1 hora, al menos en terminos de capacidad de aprendizaje, que no necesariamente en términos de pérdidas y ganancias, ya que también habría que tener en cuenta el número de entradas y salidas del mercado. El segundo es que con una capacidad de aprendizaje del orden del 4%, y teniendo en cuenta las comisiones que nos cobran los brokers, resulta bastante complicado poder obtener beneficios basándonos en técnicas de arbitraje estadístico.