En empieza el próximo webinar Introducción a las inversiones online.

Cadenas de Markov: Cortesía de Jim Simons

5
Es posible que haya oído hablar de Jim Simons (debajo), un matemático que trabajó descifrando códigos para la agencia nacional de seguridad americana durante la guerra de Vietnam aparte de contribuir a la teoría de cuerdas y a muchas otras áreas de la física.

Aunque Jim Simons es más conocido por su gestora Renaissance, creada en 1988 y que opera el Medallion Fund, un fondo que casi nunca pierde dinero. De hecho, el peor resultado en periodos de 5 años ha sido de un -0.5%. Invertir 1.000 dólares cuando comenzó el fondo ahora serían 13.8 millones de dólares. Impresionante…


Pues gran parte de la operativa de Jim Simons está basada en Cadenas de Markov, aunque evidentemente a un nivel matemático muy avanzado. Hoy solamente rascaremos un poco en la superficie de este tema.

Una cadena de Markov es un proceso estadístico que establece cierta dependencia entre un estado y el estado anterior. Es decir, solo tiene memoria del estado precedente y lo demás no cuenta.

En finanzas esto es sencillo de entender. Supongamos que un estado significa retornos positivos. Y el otro estado, lógicamente, son retornos negativos. Así que una cadena de Markov podría decirnos cuál es la probabilidad de que hoy haya subidas si ayer hubo caídas. A continuación vamos a ver un ejemplo fuera de las finanzas que nos permitirá entenderlo:

El mercadona de VillaArriba sabe que el 20% de la gente que compra fregasuelos un mes no vuelve a comprarlo al mes siguiente. Y también saben que el 30% de los que no han comprado fregasuelos este mes sí que lo comprará el mes siguiente. A este Mercadona acuden 1000 personas este mes, y de esos 100 compraron fregasuelos. Cuántos lo compraran el mes próximo? Y dentro de dos meses?

Aquí vemos los estados y sus probabilidades:



Dicho de otra forma: El 80% de los que compran fregasuelos este mes repiten su compra al mes siguiente, y el 70% de los que no compran fregasuelos este mes tampoco lo compran al mes siguiente. En realidad es un ejemplo bastante realista. En una pareja que viven juntos suele
ser la misma persona la que compra este tipo de productos y la otra nunca o casi nunca se ocupa de ello.

Con la información aportada se puede construir la matriz de probabilidades


Que si la multiplicamos por la matriz de personas que acuden al Mercadona pues nos tiene que dar el número de personas que el mes siguiente compra (C) o no compra
(N). De la siguiente manera:



Para multiplicar estas matrices hay que recordarse del algebra, ya sabe, filas por columnas... Lo más sencillo es utilizar Excel.

En Excel usamos la función MMULT(), seleccionamos la fila y luego la matriz de probabilidades. El primer elemento sale 350. Si marcamos los dos elementos, pulsamos F2 y luego Ctrl+Shift+Enter pues nos sale el vector fila completo: (350, 650).


La solución por tanto es que el primer mes comprarán fregasuelos 350 personas y 650 no lo compraran.


Y el siguiente mes? Para ello hay que tener en cuenta que al igual que en probabilidades simples la probabilidad de una segunda ocurrencia de algo es la probabilidad inicial multiplicada por sí misma, así que para el segundo mes tenemos que calcular la matriz producto:


Para esto se puede hacer el mismo procedimiento en Excel pero ahora marcaríamos 4 casillas para tener el resultado anterior de 2x2.

De la misma manera calculamos el número de personas para el segundo mes:



Es decir, el segundo mes 475 personas comprarán fregasuelos y 525 no lo comprarán. Muy bien. Y cómo aplicamos todo esto a los mercados?


Pues como decía en la página segunda podemos pensar en algo muy sencillo con dos estados. Nos cogemos los retornos del SP500 desde 2001; es decir, 20 años, y con la función JERARQUIA de Excel hacemos un ranking por retornos, de menor a mayor. Si dividimos el número de ranking entre el total de datos (5088) entonces tenemos el percentil que ocupa y así podemos calcular su estado de los dos posibles:




En este punto es posible que vd piense que me estoy complicando demasiado, ya que solo serían retornos positivos o negativos, así que sobraría el ranking. Pero suceden dos cosas.
  • No tiene por qué haber simetría (el cero no tiene que dividir los resultados en dos partes iguales)
  • El método del ranking nos va a servir para aumentar el número de estados posteriormente Ahora con una función CONTAR.SI ya podemos obtener la matriz de ocurrencias



Si queremos las probabilidades solo hay que dividir entre el total de datos. Si el mercado fuera 100% aleatorio entonces esperaríamos 5088/4 = 1272 ocurrencias de cada estado. Sin embargo vemos que es ligeramente más probable pasar del estado 1 al 2 (y viceversa) que de permanecer en el mismo estado.

En informes anteriores hemos visto que el mercado tiene una cierta tendencia a girarse al lado contrario del cierre anterior. Si se recuerda, el sistema 00:00 publicado en el informe del 9 de marzo estaba basado en esto.

En la tabla de la página anterior vemos como el primer día de trading de 2001 se sube un 4.87% (estado 2) y al día siguiente se tiene un retorno negativo perteneciente al estado 1. Este día muy alcista está prácticamente en lo más alto de los percentiles, con un 99.37%.

Y luego tenemos el 5 de enero que se cae un 3.44%, es el percentil 1.55% y por tanto el estado 1. Al día siguiente hay un cambio al estado 2.

Tal y como comentaba esto no está necesariamente centrado en el cero así que mirando entre los datos veo que el percentil del 50% es un retorno del 0.08%. Retornos mayores son el estado 2; y retornos menores, aunque sean positivos, son el estado 1.

Ahora que he explicado el procedimiento ya se puede extender a más estados, y no hace falta ni siquiera saber cuáles son los umbrales entre un estado y el siguiente ya que como acabo de explicar esto depende del total de los datos. El resultado para 4 estados es el siguiente:



Que nos dice que es muy probable que después de un día muy bajista (estado 1) venga un día muy alcista (estado 4 con 428 ocurrencias). Y será raro que venga un día intermedio-bajista (estado 2 con solo 218 ocurrencias).

Así que para terminar me voy a construir un sistema de trading muy sencillo: Si hoy es estado 1 entonces mañana compro el SP500; es decir, del cierre de hoy al cierre de
mañana. En la página siguiente vemos mi sistema de trading hecho en Excel. Si ayer hubo estado 1 entonces hoy se anota la ganancia del día pues se asume que es lo que se gana al hacer la compra (no se incluyen comisiones y se asume que operamos justo por el nominal).

Por ejemplo, el 4 de enero hay un estado 1 y al día siguiente se anota una pérdida del 3.44% en el día. Ese mismo día también es estado 1 así que se repite la compra al día siguiente, esta vez con retorno del 0.41%. Aquí cada operación dura un día solo.




Y ahora ya puedo acumular los resultados de la columna que tiene la estrategia. Comienzo con 100.000 dólares y resulta la siguiente curva de capital:

  1. en respuesta a Emilio Tena
    #5
    08/04/21 05:25
    Sí, me resulta familiar. Pero es difícil rentabilizar algo así. Es mejor buscar patrones menos frecuentes pero más fiables.
  2. en respuesta a Klondike
    #4
    08/04/21 05:21
    Cierto.  Este es solo un ejemplo de cómo utilizar las cadenas de Markov para localizar patrones que a priori podrían tener ventaja estadística. Efectivamente si uno quisiera construir una estrategia completa de trading tendría que tener muchas cosas más en cuenta. Hay una segunda parte de este artículo en la zona de clientes de Onda4 donde se desarrolla una estrategia más realista y más elaborada, que incluye más variables aparte del precio y que se muestra con código Amibroker incluido.
  3. #3
    07/04/21 06:29
    Me parece muy interesante que alguien hable aqui de las cadenas de markov. Yo (y esto es una opinion personal de alguien que antes de ser frikii de la bolsa es friki de las matematicas) las considero la frontera triple entre lo caotico, lo gaussiano  y lo analiticamente predecible. Y ademas me interesa especialmente porque yo simulé en su momento una estrategia muy parecida que no llegué a aplicar porque me generaba pérdidas. El caso es que por un lado a) yo tenía en cuenta las comisiones, y eso lastra mucho cuando sales y entras todos los dias. b) simulé vs el mercado continuo español, que es un poco peor. 
    Creo que sería importante que tuvieras en cuentas las comisiones. Tengo una coleccion de unas 130 estrategias que yo llamo de viabilidad bruta, esto es, que son viables sin comisiones. Cuando se aplican las comisiones, sobreviven 6. 
  4. #2
    07/04/21 05:13
    Hace tiempo leí una estadística que indicaba lo siguiente:

    Si un día ha sido bajista, existe el 51% de probabilidad que el día siguiente sea alcista.
    Si un día a sido alcista existe un 49% de probabilidad que el siguiente sea bajista

    ¿Sabes algo de ella ?

  5. #1
    07/04/21 01:24
    Buen articulo amigo, algo he aprendido.