El backtest es una manera de comprobar la eficacia de una estrategia en el pasado. ¿Realmente funciona esta herramienta?
Cuando uno empieza en el mundo del trading, una de las primeras cosas que aprende es el concepto de backtest. Es decir, antes de utilizar una estrategia es recomendable, si es que no imprescindible, comprobar los resultados de unas reglas en periodos anteriores. A estas reglas las llamamos sistema de trading o simplemente sistema. El concepto en sí, o al menos la idea, es muy buena. Ya que aunque ahora nos parezca obvio, no siempre lo ha sido. Es más, todavía hoy, existen traders o inversores que prefieren por error u omisión, confiar su capital al devenir del destino.
Evidentemente, cada cual especula con su capital como mejor le parece. Claro que, teniendo al alcance de un clic los medios para por lo menos intentar comprobar, y con relativa facilidad, los rendimientos que ha tenido una estrategia en el pasado, parece cuando menos absurdo no hacerlo.
Nota: Omitimos aquellas partes de un análisis no cuantificables. Algo que ocurre en todos los tipos de análisis. Siempre hay algo que omitimos.
Retornos pasados no garantizan retornos futuros
Algunos de los que se muestran reticentes a cuantificar sus estrategias, pueden alegar —y muy bien alegado— que rentabilidades pasadas no garantizan rentabilidades futuras. Pero, teniendo en cuenta que no les falta razón, siempre llego a la siguiente conclusión: si no puedes asegurar que lo que ha funcionado, seguirá funcionando, qué te hace pensar que lo que no funcionó, funcionará ahora. ¿Podría funcionar? Sí, pero parece más un acto de fé que de cualquier otra cosa.
La esperanza es lo último que se pierde porque, desde luego, antes de perderla lo que perderás con toda seguridad es tu capital.
El backtest tampoco sirve
Con la mente puesta en la idea de que es mejor un backtest que confiar en la astrología, debemos seguir afinando para no cometer los mismos errores que muchos traders han cometido, cometen y, desgraciadamente, seguirán cometiendo.
En este punto, debemos poner óleo sobre lienzo para afirmar que un backtest es mejor que confiar en la aleatoriedad del destino, pero está lejos de ser suficiente.
¿Por qué no es suficiente?
Un backtest es suficiente para comprobar si, de haber utilizado cierto sistema de trading en el pasado, hubiéramos generado determinados resultados. Pero la herramienta termina ahí. La propia palabra lo dice, ‘Back’ (pasado) y ‘test’ (Prueba). Extrapolar, sin analizar más, unos resultados no deja de ser —aunque en menor medida— otro acto de fé. Ya que por aleatoriedad podría seguir funcionando, y haber encontrado un sistema que funciona sin saber por qué o que funciona y no sabes hasta cuando. Esta forma de proceder de algunos analistas cuantitativos contrasta con su crítica incesante al análisis técnico. Es decir, critican algo que ellos mismos, de forma inconsciente, aplican diariamente.
¿Qué hay que analizar?
Suponiendo que un sistema tiene unos parámetros fijos, hay que comprobar la validez del mismo en diferentes entornos de mercado. Incluso, en entornos que no existen. Comprobar cómo hubiera funcionado un sistema en entornos de alta volatilidad, de baja volatilidad, antes y después de cambios estructurales, en mercados alcistas, bajistas y laterales. Y así, podríamos seguir casi indefinidamente.
Si el sistema tiene unos parámetros variables, cosa que suele ocurrir en la mayoría de los casos, haremos el mismo proceso, pero teniendo en cuenta que el sistema es modificable y, por ende, optimizable. Y, el mismo hecho de ser optimizable, lo hace susceptible de ser sobreoptimizado. Este punto es de importancia vital de cara a intentar obtener rendimientos estables en el futuro.
El paso habitual tras haber encontrado una estrategia que funcionó bien en el pasado, es tratar de optimizar el modelo. Craso error. Primero habría que ponerlo en tensión, o lo que lo llamo estresar el sistema. Ponerlo a funcionar en el peor entorno posible conocido para ese tipo de sistemas. Así, por ejemplo, si tenemos un sistema tendencias habrá que ponerlo a funcionar en periodos laterales prolongados para ver cómo se comporta cuando no existe un escenario propicio para la generación de rendimientos del sistema. La razón de ser de lo anterior recae en que no sabemos lo que ocurrirá en el futuro, por lo que ponernos en el peor escenario posible nos aleja lo máximo posible de la inevitable (y deseable) aleatoriedad.
¿Qué hacer además de estresarlo?
Los conceptos que lo cambian todo son el de forward test (test a futuro) y el de test out of sample (test fuera de muestra). Pero, si no conocemos el futuro, ¿cómo vamos a testear algo sobre una cosa que no conocemos? Tenemos dos opciones, que enseguida veremos. Por otra parte, tenemos el concepto de out of sample (fuera de muestra). La elección de esta muestra —que recomiendo que sean bastantes (no solo una) y con distribuciones de probabilidad que presenten características dispares— es esencial para conseguir un sistema que funcione. La idea es que el backtest y la optimización se realicen en periodos diferentes. Así, quedarán muestras libres. Aunque esto es a gusto del analista. Se puede hacer de otra forma pero podemos caer en errores estadísticos que no son objetivo de este artículo.
- La primera forma de realizar el proceso es la que llamaremos tradicional: Realizamos un sistema, lo optimizamos y tras mirar algunas métricas lo ponemos a funcionar con dinero ficticio o con poco dinero real. Si todo sale bien, lo ponemos a funcionar en real.
- La segunda forma de realizar el proceso es la que llamaremos ‘nueva’, aunque en realidad de nueva tiene poco: Realizamos un sistema, lo optimizamos, comprobamos la estabilidad de los parámetros en el tiempo, realizamos pruebas out of sample, forward test artificiales y lo ponemos a funcionar con un forward test real. Si todo sale bien, lo ponemos a funcionar en real.
La segunda forma de proceder, respecto a la primera se basa en dos conceptos: estabilidad de los parámetros en el tiempo y forward test artificiales. Los forward test artificiales no son un tipo de pruebas fuera de muestra que tratan de simular un forward test real. Pensemos lo siguiente:
Hemos realizado un proceso para un sistema para el último año. Ponerlo a funcionar desde este mes (julio) hasta final de año (diciembre) es prácticamente lo mismo que adelantar todo 6 meses y simular el forward test desde enero a julio. No es lo mismo, porque las condiciones reales siempre nos ofrecen situaciones difíciles de inventar, pero avanzamos más y conseguimos mejores resultados. Y tras esos ‘inventos’ porque en realidad son inventos, realizamos el forward test en tiempo real. Eso es a lo que me refiero con forward test artificiales. A algunos no les gustará esta manera, pero pensar lo contrario es un sesgo mental. Si hubieras descubierto esta estrategia 6 meses antes hubieras hecho lo mismo.
De otro lado, tenemos la estabilidad de los parámetros del sistema en el tiempo. Para mí, esta es la métrica más importante y nos indica si el sistema está sobreoptimizado. Si los parámetros se mantienen estables en el tiempo tras optimizaciones cada X periodos, querrá decir que los parámetros son menos susceptibles de haber sido sobreoptimizados que otros que varían más. Si a esto le añadimos que para cada una de las optimizaciones realizamos un forward test artificial y lo resultados se mantienen también estables estamos ante un sistema con probabilidades de ser realmente rentable.
Todo esto se puede enrevesar mucho más. Aunque parezca complejo no lo es. Es pesado, pero es más simple que el mecanismo de un botijo. Como siempre, cada uno tiene su forma de hacer las cosas, esta no es la única, pero lo que quería dejar claro es que un backtest sin compañeros de viaje es inútil e inservible. Al menos, claro está, en el mundo del trading.