Fiabilidad de los resultados de backtest

En estos tiempos que corren en que muchos sistemas están fallando, es natural preguntarse si los resultados de backtest reportados por los desarrolladores son fiables. Como saben los lectores, hay varios tipos de resultados pasados. Resultados de backtest (en los que solo interviene el desarrollador del sistema), resultados auditados (cuyo reporting corresponde a un tercero independiente pero que no proviene de ejecuciones reales en cuenta) y resultados reales. De artículos pasados saben que personalmente pienso que los resultados auditados y reales tienen la misma validez a la hora de analizar. No así los de backtest.

En mi opinión los resultados de backtest pueden tener dos defectos importantes que hay que intentar identificar:

  • La sobreoptimización. Consiste en hacer que el sistema se adapte al mercado que existió en el pasado. Es, con mucha diferencia, el error más habitual. El desarrollador dedica tanto tiempo al desarrollo de las reglas (entradas y salidas) que consigue un sistema que se adapta como un guante al mercado anterior. Lamentablemente en ocasiones esto se consigue a base de utilizar reglas que solo sirven para el mercado pasado. Por ejemplo un stop loss grande. En SL grande funcionará muy bien en sistemas continuos y en mercados con tendencia fuerte. Si al desarrollar el sistema utilizo este tipo de mercados únicamente, llegaré a la conclusión de que mi sistema necesita stop loss grande o incluso no necesita stop loss. La realidad podría ser distinta cuando el mercado cambie.
  • La infravaloración de los costes de operación. Hay (básicamente) dos tipos de costes de operación de un sistema automático que el desarrollador debe considerar. Las comisiones y los deslizamientos. Las primeras suelen estar correctamente consideradas salvo casos excepcionales en los que cambian en algún momento del tiempo u otros eventos atípicos. Los deslizamientos (que recordemos que son la diferencia entre el precio de entrada teórico del sistema y el real del mercado) sin embargo, no son tan fáciles de incluir y es de lo que quiero hablar hoy.

A modo de ejemplo vamos a utilizar este sistema que les presento. Se trata de un sistema automático que opera sobre el FESX (futuro del eurostoxx50) y es intradiario. Requiere unas garantías de 600€ únicamente. Lleva operando en real desde el enero de 2009 y por lo tanto los datos anteriores son de backtest y reportados exclusivamente por el desarrollador. En este sistema, en mi opinión, no ha habido problemas de sobreoptimización. Es fácil decirlo a toro pasado dados los resultados que ha obtenido desde que está operando en real. No han sido excepcionales pero tampoco demuestran que el sistema haya entrado en un Drawdown severo nunca visto durante el backtest. Hasta el 2009 había tenido un DD máximo de 1600€ que ciertamente ha superado con posterioridad pero hubo que esperar hasta julio de 2012 (3.5 años). Con lo cual podemos concluir que el sistema perdió como consecuencia del entorno de mercado de aquel momento y no como producto de una potencial sobreoptimización.

La zona azul indica el momento a partir del cual el sistema comienza a operar en real.

image

Pero veamos si el desarrollador contempló, a la hora de hacer el sistema, correctamente los deslizamientos. Los deslizamientos que el sistema tiene y ha tenido son los que se ven en este gráfico (otra vez en azul la parte de operativa real).

image

Es fácil apreciar la diferencia entre los deslizamientos de backtest y los de operativa real. La volatilidad es evidente. También se puede ver como, aparentemente, los deslizamientos que el desarrollador contempló no son muy distintos de los que se están obteniendo en la operativa real. Naturalmente depende del momento que se elija para comparar, pero en términos generales son correctos. De hecho el deslizamiento promedio que se tuvo en cuenta en el desarrollo del sistema (backtest) es de 2.5€ por contrato y el que se ha obtenido en promedio desde que se opera en real es de 3€. En este momento, por ejemplo, el sistema está teniendo un deslizamiento en real de 1.2€ en promedio. De hecho se está ejecutando mejor que nunca prácticamente.

De tal manera que de este análisis simple podríamos concluir que tampoco existe para este sistema un problema de infravaloración de costes de operación en el momento del desarrollo. Así que en mi opinión, se puede considerar un sistema fiable en lo que a desarrollo se refiere.

Si recalculáramos la curva de saldos que nos presenta el desarrollador para el backtest con los deslizamientos promedio que estamos obteniendo ahora, no habría grandes diferencias. Tal es así que ni siquiera se aprecia en el gráfico y por eso no la subo. Ojo que esto NO QUIERE DECIR que el sistema vaya a seguir funcionando bien en el futuro (obviamente), pero si nos da ciertas garantías de que no hay fallos importantes en su desarrollo.

¿Y el rendimiento no nos dice nada?

Desde el punto de vista de rendimiento, como se ve, está plano desde hace bastante tiempo. Esto podría hacer sospechar que está comportándose distinto a como se desarrolló, y de hecho a mi me parece que es evidente que así es. Sin embargo, el último máximo de la curva de saldos lo tuvo más de 2 años y medio después de haber comenzado a operar en real. Es cierto que es claro como la curva pierde pendiente, pero también es cierto que las condiciones de mercado no son las mismas que cuando el sistema se desarrollo. De hecho este año está ganando casi 800€ (que para 600€ de garantías que requiere no está mal) con 5 de los 7 meses en positivo. El año pasado perdió casi 500€ y se tiró 6 meses sin operar por baja volatilidad. En mi opinión, cuando la volatilidad suba este sistema empezará a ganar nuevamente. Hasta entonces parece un buen refugio.

De hecho, si se fijan, la comparación del sistema con el mercado (medido a valor nominal) habla por si sola:

image

El sistema ha doblado el capital (prácticamente) en el mismo periodo que el eurosotxx50 ha perdido 40%. Puede apreciarse como se transforma en una suerte de cobertura que, cuando las bolsas bajan (2001 – 2003 y 2007 – 2008) gana más que en otros momentos. Obviamente si comparamos la evolución del sistema desde los mínimos del mercado de 2009 (cuando el Eurostoxx-50 estaba en 1800 aproximadamente) la historia sería distinta (nuevamente a valor nominal):

image

Mientras que el sistema ha ganado un escaso 7%, el mercado ha hecho casi un 74% en el mismo periodo. Claro que la forma en la que ambos lo han hecho es, evidentemente, distinta. Y así podríamos seguir hasta el infinito y más allá (como decía Buzz Lightyear). Si comparásemos el periodo 2009-2011, el sistema nuevamente habría sido ganador y en el periodo 2011 a la fecha pues el mercado habría ganado otra vez.

Esto no hace más que demostrar que los SAT, una vez analizados correctamente y estando seguros de donde nos metemos, no son más que un asset class más y que como tal hay que tratarlos.

Saludos y suerte en el trading,

Horace

Sobre la recuperación en España y Europa

Colaboración revista Hispatrading nº 19

Colaboración revista Hispatrading nº 19