domingo, 3 de septiembre de 2017

Las falacias del Riesgo y el Drawdown

Las falacias del Riesgo y el Drawdown


Ser un trader ya no mola.

Ahora lo que mola es ser un Quant.

Tu ya no quieres ser un pringaillo de esos que entran aquí y salen allí, tu lo que quieres ser es un Quant, que sabe programar, sabes de estadística, y solo usas operativas sistematizadas. Hombre, por favor.

Ya no hablas de cuanto ganas, que eso es tela de cutre. Ahora hablas de la distribución gaussiana de tus resultados, de desviaciones típicas y de cisnes negros.

La proliferación de software de programación y herramientas de simulación de sistemas de inversión tipo Amibroker, NinjaTrader, MetaTrader, Multicharts, VisualChart, ProRealtime, entornos Matlab, R y Python, etc (perdón por los que me dejo), ha facilitado que todos nos hayamos convertido en una suerte de expertos frikis de la programación de sistemas.

Antes un gurú de la bolsa escribía un libro donde decía que se entraba después de que se rompiera la línea clavicular de un H-C-H y todos los que lo leíamos decíamos “oooohhhh, cuanto sabe este tío, que listo es”, y corríamos a nuestro graficador a testear a ojo si aquello funcionaba o no.

Sin embargo, ahora lo primero que hacemos tras leer el libro es ir a nuestro software, escribir un pequeño programa que realice la operativa propuesta y correr un back test desde el Pleistoceno hasta la actualidad, para ver si el sistemita de marras funciona y saber si habiendo invertido un Sextercio hace 2000 años ahora tendríamos suficiente para nuestra ansiada libertad financiera.

A todos nos encanta la estupidez esa de calcular cuanto dinero tendríamos ahora si hubiéramos invertido un Euro hace X años con tal o cual sistema.

A mi también, para qué negarlo.

Al final del backtest sacas un chorro de grafiquitas y de números con los que concluir que el sistema es una basura y que no funciona porque no se qué estadísticas son malas y no se cual ratio es menor que otro.

En fin, que lo hacemos todos. El que esté libre de pecado que tire la primera piedra. Es la nueva moda.



Los Resultados

Como, al final, al final, esto de la inversión va de ganar dinero, el primer resultado que solemos mirar todos, tras correr una simulación, es la Rentabilidad.

Lógico, si el sistema no gana dinero, ya ni seguimos mirando, ¿para qué?

Si por el contrario, el sistema gana dinero, el siguiente resultado de la simulación que solemos mirar es el Máximo Drawdown. Muy importante también, ya que nos dice cuanto estómago tenemos que tener para operar ese sistema y nos muestra el tamaño de las bajadas que vamos a tener que aguantar.

Y ya para finalizar, miramos otros muchos parámetros, entre los que están los que nos darán una idea sobre el Riesgo de operar dicho sistema.

Así, pues, el trio calavera suele ser: Rentabilidad, Drawdown y Riesgo.



El tema por el que escribo este post, es que, últimamente, he estado pensando sobre la manera esta que tenemos de evaluar las bondades o maldades de un sistema, atendiendo a las estadísticas y ratios que obtenemos al correr una simulación.

Y tras darle varias vueltas a la cosa, me he dado cuenta de que lo mismo no es lo mas adecuado y que los parámetros obtenidos, no solo no son correctos, sino que nos engañan y nos ocultan la verdadera realidad de la naturaleza de los sistemas que testeamos.

Voy a tratar de ilustrarlo con un ejemplo muy sencillo.



Sistema ejemplo

Supongamos un sistema muy simple sobre la acción de Apple:

1) Compramos cuando el precio supere la media de 10 meses.
2) Ponemos un stop inicial al 7% de distancia del punto de entrada.
3) Usamos como trailing stop la media de 10 meses menos un filtro del 7%.

Como vemos una cosita muy sencilla.Vamos a programarlo y a probar a ver que tal va.


Aquí tenéis el código.

// Sistema de Ejemplo para post del Blog
Filtro = 0.07;
M10M = MA(C,10);
// 1 ENTRADA
FiltroEntrada = (High >M10M);
PrecioEntrada = M10M+0.01;
// ENTRADA
Buy = FiltroEntrada;
BuyPrice = PrecioEntrada;// 2 SALIDA
// Stop inicial
StopI = PrecioEntrada*(1-Filtro);
// Trailing Stop
StopT = M10M*(1-Filtro);
// SALIDA
Salida1 =IIf(Low<StopI,1,0);
Salida2 =IIf(Low<StopT,1,0);
Sell = Salida1 OR Salida2;
SellPrice =IIf(Salida1, StopI-0.01, IIf(Salida2, StopT-0.01, 0));


A modo únicamente ilustrativo, vamos a probarlo solo sobre la acción de Apple y en el periodo de 2009 a 2012.

Elijo este valor y este periodo para que el sistema solo proporcione una señal y así quede mas claro lo que quiero contar.

Estos son los resultados que tradicionalmente nos arroja un programa de simulación al ejecutar dicho sistema (en este caso Amibroker, que es el que uso yo habitualmente).

Como he señalado, he elegido queriendo el periodo de tiempo para que el sistema genere una sola operación que, en este caso es la siguiente:









La entrada está marcada con una flecha verde y la salida con una roja.

La línea roja es la media de 10 meses y la verde nuestro trailing stop.


Lo siguiente que vemos son las curvas de capital y de drawdowns.





Y finalmente vemos la tablas de estadísticas y ratios del sistema.






Al haberse realizado solo una operación hay algunas estadísticas que no se muestran (N/A), ya que necesitan varias operaciones para poder calcularse. No nos importa.





La Rentabilidad y el Riesgo


Vamos a fijarnos, como hemos dicho, en el binomio rentabilidad-riesgo y en el drawdown.
En 31 meses ha obtenido un 390% de rentabilidad.


Pues muy bien, pero a mi, la rentabilidad de un sistema, a solas, no me dice nada. Hay que valorarla de acuerdo al riesgo que entrañe obtener esa rentabilidad.



Me explico.


A igualdad de drawdown, de numero de operaciones y de % de aciertos, ¿que sistema es mejor uno que tiene una rentabilidad del 10% o uno que la tiene del 30%?


Bajo mi punto de vista, depende.


Depende de un parámetro que nadie muestra nunca, que es el RIESGO TOTAL ASUMIDO para lograr esa rentabilidad.


Supongamos que tenemos un capital de 100.000€, luego el sistema 1 nos ha producido 10.000€ y el sistema 2, nos ha dado 30.000€.


Pongamos que han hecho 10 operaciones al año cada uno, pero el sistema 1 arriesgaba 500€ por operación mientras el sistema 2 arriesgaba 5000€, es posible que el sistema 2 haya sido mas rentable, pero también es mas peligroso.


El sistema 1 ha asumido un riesgo total de 10 x 500€ = 5000€ para conseguir ganar 10.000€ mientras el sistema 2 ha asumido un riesgo de 10 x 5000€ = 50.000€ para ganar 30.000€.


El sistema 1 es mejor, porque dobla el dinero QUE ARRIESGAS, que es lo verdaderamente importante. El sistema 2 gana menos de lo que arriesgas, así que para mi es peor.
Si quisiera ganar mas dinero, yo cogería el sistema 1 y me apalancaría, en lugar de usar el sistema 2.



Lo de medir sistemas por la rentabilidad deja de tener cierto sentido cuando el inversor no esta limitado por el el dinero que tiene, sino por el riesgo que puede asumir.


El dinero es infinito. Los CFDs, futuros, opciones y demás derivados te proporcionan todo el que necesites y no tengas. El broker te presta todo lo que te haga falta para operar.
Lo que no es infinito es el riesgo que puedes asumir. Eso si que tiene el limite del capital del que dispongas. El broker no te presta dinero para que lo arriesgues, solo te deja arriesgar el tuyo.


Por tanto, considero que el parámetro fundamental, o uno de ellos, de un sistema es el ratio GANANCIA TOTAL / RIESGO TOTAL ASUMIDO.


(No confundir con el profit/loss ratio, ya que las perdidas PRODUCIDAS pueden ser diferentes de las arriesgadas INICIALMENTE, porque puedo haber ido subiendo stops, además de que solo mide las perdidas producidas en operaciones perdedoras y no tiene en cuenta el riesgo que se asumió inicialmente en las que resultaron ganadoras).




Volviendo a nuestro sistema ejemplo.


Pues bien, nuestro sistema ejemplo compra al cruzar al alza la media de 10 meses y coloca un stop inicial un 7% por debajo del precio de entrada, así que el Riesgo asumido es del 7% por operación. Eso es lo máximo que puedo perder si mi operación sale mal y ese es mi riesgo. Me da igual lo que digan los resultados arrojados por la simulación y los mil y un ratios y estadísticas que podemos calcular. Mi riesgo máximo es de un 7%.


Mientras mi stop esté por debajo de mi precio de entrada, tengo riesgo en la operación y si mi stop está por encima de mi precio de entrada, mi riesgo en esa operación es cero.
Me da igual el valor que tenga la acción ahora, ya no puedo perder en esa operación, así que mi riesgo en esa posición es cero. No puedo perder, solo puedo ganar. Lo que esté haciendo el precio ahora me trae sin cuidado.


Mi riesgo actual no es función del valor actual de la acción, solo es función de mi precio de compra y de donde tengo ahora el stop.


Mi riesgo actual es la diferencia entre mi precio de entrada y mi stop actual. Eso es lo que puedo perder.



La cosa con una sola operación está clara.


Cuando tenemos una sola posición abierta, casi todo el mundo suele estar de acuerdo en que el riesgo que asumimos es la diferencia entre el valor al que abrimos la posición y el valor al que tenemos colocado el stop.


El problema aparece cuando en una cartera tenemos mas de una posición abierta a la vez.


Lo normal sería decir que el riesgo total de cartera que asumimos es la suma de los riesgos de las posiciones individuales que tenemos abiertas, pero no. Demasiado fácil, demasiado sencillo, demasiado entendible por todo el mundo. Demasiado poco Quant.


Los amigos de las matemáticas se han inventado varias teorías para, básicamente, decir que el riesgo de una cartera de X posiciones es menor que la suma de los X riesgos individuales.


Algunos hacen uso del coeficiente de correlación, que es la manera matemática de decir: “No hombre, no. ¿Como te van a saltar todos los stops a la vez? Eso nunca pasa”.


Pues bien, me alegro por ellos, pero yo creo que si que pasa. Los coeficientes de correlación no son constantes y cuando vienen mal dadas todos se "correlan" mas de la cuenta. Así que no lo uso.


Otros usan la volatilidad y unas fórmulas muy chulas para decir que cuanto mas pueda moverse el precio, mas peligroso es el asunto.


Para mi, el riesgo no es la volatilidad del precio. El riesgo es lo que pierdo si me sale mal la operación y me salta el stop. Lo que haga el precio mientras me trae absolutamente sin cuidado. Si mi stop está por encima de mi precio de compra, el precio, si quiere, puede bailar la Macarena que yo ya no puedo perder.


En resumen, si mi stop está por encima de mi precio de entrada, lo siento muchos chicos, pero mi riesgo en esa operación es cero, digan lo que digan vuestros ratios. Y si tengo abiertas varias operaciones a la vez, mi riesgo es la suma de los riesgos individuales (precio de apertura menos stops actuales) y me dan igual vuestros coeficientes de correlación y vuestras volatilidades.




El Drawdown


De acuerdo a la gráfica y los resultados obtenidos en la simulación, este sistema tendría varios drawdowns siendo el máximo de ellos del 16,19%.






Bueno, pues no estaría mal si no fuera por un detalle: no es verdad.


Veámoslo, y para ello, analicemos como funciona nuestro sistema.


En la gráfica siguiente vemos la entrada enmarcada en un rectángulo verde y el stop de entrada. La diferencia entre el precio de entrada y el stop inicial es el riesgo máximo de nuestra operación del que hemos hablado antes.





A continuación vemos la evolución de la operación y, en color verde, el trailing stop y, como finalmente, la salida se produce cuando el precio cruza a la baja dicho trailing stop.






La clave del asunto es que, en este sistema, la salida se produce únicamente por ruptura del trailing stop. Repito, la salida se produce SOLO al romperse el trailing stop.


Es decir, el precio potencial de venta de mi operación solo puede ser alguno de los precios marcados por el trailing stop en su recorrido, que es el que podemos ver en la gráfica siguiente.




Pues bien, yo creo que esta gráfica es la verdadera curva de Equity Real de mi sistema.



Esta curva define el único dinero real que yo he ido teniendo asegurado en cada momento a lo largo del tiempo. Esta curva define los precios potenciales de venta que mi sistema podría haber conseguido.


Si el precio se hubiera girado en algún momento y hubiera roto el trailing stop, ese sería el precio al que habría vendido y ese precio sería el que definiría mi rentabilidad y mi capital real final.


Lo que haya ido haciendo el precio durante todo este tiempo me da igual, los valores que haya alcanzado me dan igual, lo único importante es lo que haya ido haciendo mi trailing stop, ya que es este el que define cuanto dinero voy a realizar con mi operación.


Y lo que vemos es que mi Curva Real de Equity, definida por la curva del trailing stop, no tiene drawdown, ha sido siempre alcista.


¿De que vale engañarnos haciendo cálculos usando el precio actual de la acción, si ese es un precio al que nunca vamos a poder realizar la venta?


El Capital Actual de mi cuenta, que es el saldo que vemos en nuestra cuenta del broker, se compone de un Capital Asegurado por mi stop y de otro Capital Ruido que no está asegurado y que no nos pertenece. Es un capital que no es nuestro, que no vamos a poder realizar, es un engaño matemático.


Si el precio sube un X% pero mi stop no sube, a mi que me importa, tengo asegurado el mismo dinero, mi ganancia potencial es la misma. Si el precio baja un X% pero no rompe mi stop, tampoco me importa, mi ganancia potencial sigue siendo la misma, la que marca mi stop. Solo me importan los movimientos de mi stop que son los que definen cuanto voy a ganar, no los movimientos del precio.


Si sales por stop, da igual el precio al que cotice un activo.


Algún día se girará, romperá tu stop, y ese será el único precio que conseguirás. El bailecito que haya hecho el precio por el camino no debe importarte. Si el precio ha sido mas o menos volátil, si ha tenido un drawdown mas o menos grande, todo da igual. Lo único importante y digno de estudio y medición es la gráfica de tu stop, la gráfica de tu Equity Real Asegurada.


Otra cosa, para todos aquellos que incorporáis money management en vuestros sistemas.


Calcular los riesgos por trade y riesgos totales de cartera en función del Capital Actual de tu cartera es un error que induce a la sobre inversión y que en los momentos malos te va a pasar factura.


Eso lo dejo para un post futuro, pero baste decir que lo correcto es hacer los cálculos de riesgos usando únicamente el Capital Real Asegurado y no el Total.


Conclusión


La próxima vez que programes y simules un sistema y saques resultados y ratios sobre el Riesgo de operarlo, recuerda también calcular la curva de Riesgo Total Asumido, como sumatorio de los riesgos individuales de cada posición en cada momento a lo largo del tiempo.


Ese es tu riesgo real. Eso es lo que perderías si el mercado girara y te saltaran absolutamente todos los stops. Lo demás son matemáticas.


Y cuando te salga un drawdown del X%, duda de él y calcula tu curva de Equity Real Asegurado, atendiendo a tus stops, que te dará una mejor indicación de cuan bueno o malo es tu sistema y de como de llevadero será el operarlo.


Que la estadística te acompañe, mi querido Quant.

6 comentarios:

  1. Y existe algo que tampoco mencionas. Existe algo, yo lo he visto alguna vez, llamado stop asegurado, es decir un producto o metodo que un broker te vende para si o si liquidar tu precio al stop que tenias. Porque querido Antonio, tu bien sabes que el stop es como un cinturon de seguridad, te va a salvar la vida en el (Iba a poner 99% de veces pero realmente habria que calcular el porcentaje para no ir a engaños)... en cada correccion normal y natural, cotidiana y casi diriamos tediosa del precio, si si, pero yo he visto poner un stop en 10 y el primer precio de cruce ser 1... y te puedes ir metiendo las estadisticas por el recto... y no es tan rarisimo que estas cosas ocurran, yo no llevo ni veinte años en esto y lo he visto no menos de diez veces, y de esas diez, en cinco al menos en valores o activos enormes, bund o incluso indice mundial mundialisimo... resumiendo, riesgo total es lo que tienes en la cuenta. Un saludo.

    ResponderEliminar
    Respuestas
    1. Hombre Propug, cuanto tiempo.
      Lo que dices de los stops es verdad, es lo que tienen, que de vez en cuando, alguno te da un sustito.
      algunos brokers ofrecen los stops asegurados que comentas, pero los cobran caros.
      Hay que hacer números para ver si te conviene pagarlos siempre en todas tus operaciones o no te compensa y te aguantas con que te salte algún stop que otro mas lejos del precio que querías.

      Eliminar
  2. Gracias por el esperado artículo. Se te echaba de menos, la verdad.
    Me gustaría saber si este es el sistema que utilizas, para tu trading o usas más la escala semanal, mansfield, wmm 30...
    Saludos!

    ResponderEliminar
    Respuestas
    1. Ando muy, muy liado y cada vez me cuesta mas sacar tiempo para escribir cosas que merezcan la pena, y tampoco quiero llenar el blog de posts intrascendentes solo por llenarlo.
      Para mi trading utilizo solo sistemas trend following de largo plazo en escalas semanales y mensuales, con mis canales y mis cosas.

      Eliminar
  3. Se puede programar un sistema como el que comentas para operar en real? Es decir que se ejecuten las órdenes y el cambio del stop automáticamente? Saludos y gracias.

    ResponderEliminar
  4. Si, claro que se puede. Hay mucha gente que lo hace.
    Yo no, yo meto mis órdenes a mano, cada Domingo, a mercado cerrado

    ResponderEliminar