Errores al Hacer un Backtest

Como seguramente ya sepáis, un backtest es una simulación de los resultados de una estrategia de trading que utilizamos para evaluar cuál habría sido la efectividad de la misma si la hubiéramos operado en el histórico. Sin realizar un backtest, sería imposible decidir qué estrategias funcionan y cuáles no.    

Lo malo es que muchas veces una estrategia que promete ganar mucho dinero en el backtest falla después miserablemente al ejecutarla en real. En ocasiones, las pérdidas pueden deberse simplemente a la mala suerte (por ejemplo, un cambio en la forma de moverse el mercado) pero lo habitual es que la estrategia no funcione cuando la pongamos en marcha porque hayamos cometido nosotros errores al realizar el backtest.

Para que a vosotros no os pillen, a continuación, vamos a ver los errores más habituales que se cometen cuando realizamos un backtest.  

1. Realizar backtests y optimizaciones con la misma muestra

Puede parecer mentira, pero aún hay gente que desarrolla una estrategia de trading sobre una determinada muestra y a continuación utilizan la misma muestra para evaluar los resultados y optimizar los parámetros. Sin lugar a duda, con esa estrategia seguro que fracasaremos estrepitosamente en cuanto los pongamos en real por cuanto estará sobreoptimizados a la muestra utilizada, pero seremos incapaces de saber si fuera de muestra funcionan correctamente. Simplemente trabajar de esta manera es hacerse trampas al solitario.

Recomendación: desarrolla tus estrategias de trading usando una parte del histórico, realizando posteriormente análisis walk-forward con el resto.

2. Usar datos que presentan sesgo de supervivencia

Imagínense que les digo que tengo una medicina que cura la diabetes y que la he probado siguiendo este protocolo:

  • Selecciono aleatoriamente 500 individuos.
  • Les doy la medicina cada día durante un mes.
  • Mido sus niveles de glucosa cada día.

Al comienzo del estudio los niveles de azúcar en sangre eran de 150 mg/dl de media, mientras que al término del estudio esa media ha bajado hasta los 90 mg/dl. Sin duda un excelente resultado que confirma que la medicina funciona, ¿verdad?

¿Y si os dijera que de esos 500 individuos han muerto 50 de ellos a lo largo del mes? Es más, ¿y si los que se han muerto eran los que tenían niveles más elevados de azúcar en sangre? Sin lugar a duda el estudio estaría sesgado ya que solo nos habríamos centrado en los resultados obtenidos por los pacientes que han sobrevivido.

Ok, traslademos esto al trading, en particular de acciones: imaginemos que realizamos nuestros backtests tomando únicamente el histórico de los componentes actuales de un índice (por ejemplo, el S&P500 o el Ibex 35). ¿Qué estaremos haciendo en la práctica? Tomar solo aquellos valores que han sobrevivido a períodos de crisis, sesgando así nuestros resultados. Sin embargo, no es nada raro que en un período de tiempo más o menos amplio haya empresas que desaparezcan, ya sea porque quiebren o porque se fusionen con otras.

Ignorar este hecho puede hacer que sesguemos al alza los resultados de nuestras estrategias.

Recomendación: usar siempre bases de datos históricos que incluyan todos los miembros históricos de los índices, asegurándonos siempre de seleccionar datos tanto para empresas que siguen existiendo como para las que no.

3. Víctima del sesgo de anticipación

Un error muy común es creer que podemos observar el cierre del mercado para calcular el valor de un indicador y, adicionalmente, creer que podemos operar a ese precio de cierre.

Este es un ejemplo particular de lo que se conoce como sesgo de anticipación, mediante el que nos creemos que una estrategia puede mirar ligeramente hacia delante en el tiempo.  

Otro ejemplo de este sesgo tiene que ver con el registro incorrecto de datos tales como publicaciones de resultados de empresas o datos macroeconómicos. Así, en ocasiones suponemos erróneamente que podemos operar el mismo día que una empresa presenta sus cuentas cuando realmente no será hasta la apertura del día siguiente cuándo podremos abrir posiciones.

Recomendación: Nunca pensemos que podemos operar al cierre, es mejor que la estrategia abra posiciones en la apertura de la siguiente vela.

4. Ignorar el Impacto en el Mercado

El mero hecho de abrir una posición en el mercado tiene impacto en el precio. Siempre hay que tener en cuenta que los datos históricos no recogen las operaciones que hubiéramos realizado por lo que los precios negociados no son una representación totalmente precisa del histórico que hubiéramos tenido si realmente se hubieran cruzado nuestras órdenes.

Si bien es cierto que esto puede parecer que solo afecta a los grandes operadores que pueden mover el precio en contra de sus órdenes, lo cierto es que nadie está exento de ser víctima de deslizamientos, aperturas de horquillas o súbitos aumentos de volatilidad. Sin duda, factores que no viene recogidos en ninguna base de datos históricos y que puede afectar al desempeño de nuestras estrategias.

Recomendación: cuando realicemos un backtest deberemos pensar que el precio se moverá en contra de nuestras operaciones cuando operemos la estrategia en real. Por ello es una buena idea añadir penalizaciones a las operaciones que obtengamos en el backtest, cuya cuantía deberá variar en función de la liquidez del activo que estemos operando (no es lo mismo operar en el mini S&P 500 que en las acciones de Miquel y Costas).  

5. Comprar más acciones o contratos de los que existen

Otro error común, sobre todo en estrategias en las que se usa gestión monetaria y escalan acciones o contratos, es creer que el mercado es capaz de absorber cualquier tamaño de posición.

Imaginemos por ejemplo que una estrategia que opera en acciones llega al punto de meter 10 millones de dólares en una compañía cuyo free float no supera el millón de dólares. Sencillamente esta estrategia sería inoperable en la práctica.  

Recomendación: Cuando hagas un backtest limita el tamaño máximo de las posiciones que utiliza a un porcentaje del volumen medio diario negociado en el valor para evitar estos problemas. Alternativamente también podemos filtrar los activos que utilizamos para nuestros backtests exigiendo un volumen de negociación mínimo.

6. Overfitting

Posiblemente uno de los errores más graves y, por desgracia, muy común. Una estrategia que presenta overfitting o sobreajuste a los datos es aquel que predice a la perfección el comportamiento de los datos dentro de la muestra analizada.

Más técnicamente, podemos decir que el overfitting se produce cuando, a medida que aumentamos los grados de libertad del modelo (entendidos como número de factores o parámetros del mismo), el error dentro de muestra disminuye a la par que el error fuera de muestra aumenta.

Recomendación: no ajuste ni mejore continuamente las estrategias con datos dentro de muestra. Compare siempre el error dentro y fuera de muestra.

7. Confiar en modelos complejos

Los modelos complejos generalmente tienden a ser generalmente modelos que sobreajustan en el mercado, cayendo en el overfitting. Generalmente los enfoques sencillos basados en ideas simples que tengan una interpretación intuitiva suelen conducir a obtener modelos de trading que funcionan.

Una estrategia construida sobre la base de unos pocos factores combinados con reglas simples es mucho más probable que sea robusta y menos sensible al overfitting que un modelo muy complejo que utilice muchos factores.

Recomendación: Limita el número de factores del modelo, usa lógicas simples cuando los combines.

8. Confiar en la suerte de la estrategia

En muchas ocasiones nos encontramos con estrategias cuyos resultados dependen en buena medida del día en que empezaron a funcionar. Ya sea por la forma de abrir las posiciones o porque hay una sola operación que explica los buenos resultados obtenidos, el momento del tiempo en el que la estrategia empieza a operar marca claramente la diferencia en los backtests.

Recomendación: debemos probar a iniciar los backtests de una estrategia en diferentes fechas. Si vemos que existen diferencias notables cuando comparamos resultados, entonces deberíamos descartar la estrategia.

9. ¿Y si fuera casualidad?

Incluso aunque hayamos evitado todos los errores que acabamos de ver, es probable que si analizamos cientos de estrategias encontremos alguna cuyo backtest tenga muy buena pinta. Sin embargo, quizás no sea posible diferencias la calidad de la estrategia de una operativa aleatoria.

Si bien contamos con diferentes herramientas tales como el análisis walk-forward, las simulaciones de Monte Carlo o las pruebas en otros mercados, lo cierto es que podemos encontrarnos con estrategias que superen todas las pruebas y aun así funcionen mal en real.

Recomendación: siempre hay que probar la estrategia en mercado (ya sea en demo o en real) antes de poner capital para operarla.

Conclusión

Debemos considerar el backtest como un método para rechazar estrategias más que para validarlas. Es evidente que, si una estrategia no funciona en backtest, tampoco lo hará en real. Sin embargo, lo contrario no siempre es cierto: por el mero hecho de obtener un excelente backtest no significa que vaya a funcionar del mismo modo en real.

En todo caso, si evitamos los errores que hemos comentado a lo largo de este artículo, nuestros backtests tendrán mayores posibilidades de representar de forma precisa el comportamiento futuro de nuestra estrategia.

Saludos,
X-Trader

COMPARTIR EN: