Como medimos la robustez de nuestros sistemas por Sersan Sistemas

Está siendo un año complicado para nuestras estrategias. No está siendo un año nefasto, pero sí que está costando coger buenas rachas. Cuando parece que empieza una buena viene otra serie mala y nos quedamos en el mismo sitio. Varias veces en el año hemos visto esos momentos en que parece que el mercado se empeña en hacer justo lo contrario a lo que queremos que haga. Lógicamente cuando nos pasa esto siempre tratamos de analizar qué podemos hacer para mejorar, pero no creemos que nunca podamos evitarlo del todo. It’s The Market, Stupid! Que diría Clinton.

Y es que todo esto es algo muy normal, es muy complicado hacerlo bien en todo tipo de mercados. Es sin duda nuestro objetivo y casi obsesión el encontrar soluciones, pero sabemos que es imposible lograrlo totalmente. Llevamos muchos años en esto y sabemos que esto es así. Nos ha pasado antes y nos volverá a pasar en en el futuro. Es quizá una de las principales diferencias entre el trader o inversor profesional o el menos experto, tanto del trader que opera directamente en el mercado como del inversor que invierte en vehículos como, por ejemplo, los que se proveen de nuestros desarrollos como pueden ser SYO o Esfera Sersan Algorithmic.

Los traders o inversores menos experimentados se ponen nerviosos ante cualquier mala racha, sufren, cambian su operativa o salen de las inversiones, cuando probablemente deberían aprovechar para comprar más, …en definitiva, se equivocan. Obviamente todos nos equivocamos, pero hay que hacerlo lo menos posible. No diremos que a nosotros nos de igual perder y que no nos afectan las pérdidas. Lógicamente nos afectan, no nos gusta perder o no ganar, pero no nos afectan en sobremanera y, sobre todo, no nos afectan en nuestras decisiones. Seguimos trabajando, aprovechando la nueva y útil información que nos da el mercado para tratar de mejorar los sistemas, pero dentro de un proceso totalmente normalizado y probado. Las pérdidas forman parte del negocio e incluso son necesarias en el trading y nos ayudan a mejorar.

Y de esto queremos hablaros hoy, de nuestro trabajo. Este año estamos haciendo revisiones más profundas de lo habitual, ya que estamos estudiando cambios en el código, no solo en los inputs. En especial en NEMESIS que, si bien no lo consideramos roto, sí que lleva demasiado tiempo en lateral sin acabar de ganar de forma consistente. Es un tendencial y esto es típico en ellos, pero hasta cierto punto. Una nueva versión está ya lista 😉

En estos casos, es necesario volver a hacer las pruebas de robustez de una y otra versión, compararlas entre sí y con las anteriores y finalmente fijar parámetros o inputs. Los resultados están siendo muy satisfactorios y queremos compartirlos con vosotros.

La herramienta que más nos ayuda a evaluar la robustez de un sistema es el Walk-Forward Optimizer (WFO) de TradeStation. Es una herramienta que trata de responder preguntas del estilo:

  • ¿Los resultados de mi optimización son fiables?
  • ¿Cómo de probable es que mi sistema será capaz de hacer en el futuro lo mismo que en el backtest?
  • ¿Cada cuánto tiempo debemos re-optimizar nuestro sistema?

Es un software muy potente que es capaz de resumir una enorme cantidad de información que nos ayuda a evaluar la robustez de un sistema.

De forma resumida funciona así: Optimizamos un trozo del histórico (los llamamos datos In-Sample: INS) y recogemos los resultados en otro trozo del histórico contiguo que no ha sido optimizado (los llamamos datos Out-of-Sample: OOS). Así emulamos la ejecución en live, pues estos últimos resultados no han sido optimizados. Realizamos este proceso de forma reiterada, desplazando la ventana de tiempo de datos INS y OOS un número de veces predeterminada (lo que llamamos runs, hasta cubrir todo el histórico. Veámoslo gráficamente:

En este ejemplo, con 1 año de cotizaciones históricas, haríamos 8 optimizaciones INS en periodos de tiempo distintos de 4 meses y recogeríamos los datos del mes posterior, que serían los datos OOS. Nótese como en la última fila de la imagen como obtendríamos así 8 meses de resultados OOS sobre todo el histórico que son 12 meses. Un porcentaje notable.

En esta imagen también podemos ver como este proceso walk forward depende de dos variables.

  1. El porcentaje de datos que dejamos fuera de nuestra (OOS)
    1. En el ejemplo el periodo OOS es del 20% (1 mes sobre 5)
  2. El número de optimizaciones que realizamos en el mismo histórico, que lo llamamos runs.
    1. En el ejemplo hay 8 runs.

Variando estas dos variables podemos hacer multitud de optimizaciones distintas siempre siguiendo el concepto explicado.

En la siguiente imagen podemos ver el resultado de una optimización reciente hecha a uno de nuestros sistemas que está operando actualmente en el mercado, APOLO:

Imagen 1: Matriz de resultados resumen de WFO de APOLO

Al variar el porcentaje OOS y el número de runs, los cortes en el histórico también varían, con lo que cada clúster (es la casilla que combina el periodo OOS con el número de runs) contendrá datos OOS distintos. Esta es la auténtica potencia de este software, el poder evaluar una optimización de un único histórico, pero con datos OOS distintos en cada clúster. Si el sistema es capaz de dar buenos resultados en la mayoría de las zonas podremos decir que es robusto. En la imagen anterior se puede ver como hay clústeres marcados con PASS y otros marcados con FALSE.

¿Cómo evaluamos si los resultados son buenos o malos? El programa realiza 5 test a cada uno de los clústeres. Si pasa los 5 test, entonces obtiene un PASS y, además, si obtiene notas extraordinarias en dos de ellos puede aparecer también un asterisco.

En la imagen siguiente podemos ver el resultado de una de las pruebas que hace en un clúster que ha obtenido PASS, concretamente el que corresponde a 10% OOS y 6 runs:

Imagen 2: Resultados de las pruebas de clúster 10%/6runs de WFO de APOLO

Es decir, las pruebas realizadas a los segmentos OOS son las siguientes:

  1. Overall Profitability: Los datos OOS deben sumar más de 0, es decir, debe ganar dinero sumando todos los segmentos OOS.
  2. Walk-Forward Efficency: El beneficio anualizado obtenido en los segmentos OOS debe ser al menos el 50% del obtenido en datos INS.
  3. Consistency of Profits: Al menos el 50% de los segmentos OOS deben tener ganancias.
  4. Distribution of Profits: Ningún segmento OOS puede contribuir con más del 50% del beneficio total obtenido OOS.
  5. Maximum DrawDown: Ningún segmento puede tener un DD mayor del 40%.

Si las 5 pruebas obtienen PASS entonces el clúster es PASS. Solo que falle una, el clúster es FAILED.

Estas pruebas pueden configurarse si se desea, esta es la configuración por defecto que es válida para la mayoría de los sistemas. Los tendenciales puros suelen sufrir para pasar la prueba 4 de distribución, ya que son sistemas de colas largas en los que el beneficio depende de pocas operaciones, por lo que es normal que concentren las rachas buenas con las malas.

El programa tiene muchas más opciones y permite ver mucha más información de cada clúster. De hecho, se puede ver estadísticos de cada segmento dentro de cada clúster, realizar pruebas adicionales de Montecarlo, ver la curva y el performance report de todos los datos OOS, mapas, pruebas de sensibilidad y muchas cosas más.

Volviendo al inicio del artículo, las pruebas y mejoras que estamos realizando este año sobre nuestros sistemas, las imágenes anteriores corresponden a una prueba real y reciente de APOLO.

APOLO es un sistema extraordinariamente robusto y nunca ha tenido demasiados problemas para pasar esta dura prueba. De nuevo lo ha conseguido esta vez en que hemos hecho un cambio menor de selección de parámetros que está ya lista para salir al mercado en el Nasdaq.

NEMESIS, en cambio, muchas veces no ha sido capaz de pasarla. Hemos acabado las pruebas de una nueva versión NEMESIS que incluye algunos cambios no menores para mejorar su comportamiento en los laterales. Reamente estamos muy satisfechos ya que ha pasado perfectamente WFO y además en varias pruebas, con varios fitness y diferentes condiciones. También está listo para salir a operar ya en el oro.

Aquí tentéis las mismas pantallas anteriores, pero de un WFO reciente de NEMESIS:

Imagen 3: Matriz de resultados resumen de WFO de NEMESIS

Imagen 4: Resultados de las pruebas de clúster 10%/6runs de WFO de NEMESIS

Y de propina los datos de todos los segmentos OOS de uno de los clústeres de NEMESIS:

Imagen 5: Resultados de los segmentos OOS de un clúster del WFO de NEMESIS

Nótese la gran cantidad información que obtenemos de cada segmento y también de forma resumida debajo de todos ellos.

Todo esto es solo una parte de nuestro trabajo. De hecho, es la última parte, cuando acabamos esta prueba con éxito es porque el sistema ya ha pasado las pruebas previas y se somete a la más dura para ya salir al mercado a operar en caso de aprobarla.

De momento el mercado sigue poniendo las cosas difíciles sin tomar direcciones claras, pero estas nuevas versiones son claramente mejores que las anteriores por lo que estamos seguros de que en los próximos meses los resultados serán mejores haga lo que haga el mercado.

 

Sersan Sistemas