Se describen los elementos de una técnica más completa que el tradicional “Walk Fordward Analysis” con resultados más robustos

La evaluación de una estrategia de trading es un proceso mucho menos creativo que el diseño de la misma donde, en cambio, nos podemos beneficiar de la estandarización de la metodología.

En el tortuoso camino del ciclo de producción de sistemas, la evaluación de una estrategia tiene su equivalencia industrial en el proceso de validación de un proceso. En resumidas cuentas, se trata de comprobar (dentro de lo posible en un entorno de distribuciones no estacionarias) qué tipo de resultados podemos esperar de nuestra estrategia en trading real, qué limites de trabajo podemos establecer y qué criterios nos indicarán cuando nuestro sistema deja de funcionar. Esta cuestión no es baladí, dado que los errores en estos pasos son acumulativos o directamente pueden invalidar todo trabajo ulterior.

Una perspectiva global de todo el proceso de contrastación ayudará a visualizar esta metodología:

A continuación vamos a describir en este artículo los dos primeros puntos. Se puede comprobar cómo nuestra aproximación difiere de la convencional en la aplicación del “Walk Forward Analysis” e introducimos una técnica alternativa “Robust Walk Forward Optimization” (RWFO).

1.- PRUEBAS PRELIMINARES.

Al evaluar un sistema nuestro primer paso será confirmar que la lógica de la estrategia funciona en el mayor número de escenarios posibles. Es decir que las reglas de entrada y cierre de posiciones son estadísticamente robustas con independencia de:
a) Las combinaciones paramétricas elegidas.
b) La diversidad de mercados.
c) El time frame de cada activo.

1.1- Análisis de consistencia paramétrica.

La primera forma de confirmar la robustez y generalidad de la lógica empleada será asegurándonos de que nuestra estrategia es capaz de generar beneficios en un amplio rango de combinaciones paramétricas. Para ello procederemos a la realización de un muestreo aleatorio de los parámetros, seleccionando una ventana de valores lo más amplia posible y consistente con la arquitectura general del sistema. Un posible esquema a seguir será:

 

Procederemos a probar de manera ordenada la consistencia paramétrica de cada uno de estos elementos realizando una optimización aleatoria, genética o lineal (dependiendo del número de variables) y realizaremos una distribución de frecuencias tomando como ratio diana el net profit. Por ejemplo:

En el primer gráfico podemos apreciar cómo la técnica de entrada con valores paramétricos elegidos al azar consigue una determinada ventaja estadística (o edge), aunque por si sola es claramente insuficiente. En la segunda imagen, la combinación de la lógica de entrada y salida consigue un resultado satisfactorio en un amplio espectro de combinaciones paramétricas. Si bien, algunas curvas del equity terminan con pérdidas. Por último, al aplicar los filtros, empleando la misma metodología aleatoria, observamos un comportamiento mucho más estable del sistema: la estrategia no gana más (como consecuencia de la reducción del número de operaciones) pero los resultados están más agrupados y ya no hay soluciones perdedoras.

1.2.- Diversidad de mercados.

El siguiente paso será confirmar que la estrategia es aplicable a un conjunto amplio de mercados. No pretendemos construir un sistema que trabaje en cualquier serie imaginable de cotizaciones, pues ello es imposible, sino confirmar que la lógica desarrollada es independiente de la fuente de datos y soporta la mayor diversidad de activos y marcoépocas dentro de cada mercado. Por ejemplo, en el caso de los futuros, nos bastará con confirmar la validez del constructo en índices, materias primas, energía y renta fija. Mientras que en las carteras de acciones, será muy conveniente asegurar el funcionamiento de la estrategia en cestas de acciones de zonas geográficas distintas (Europa, Estados Unidos, Asia) y de númerosos sectores (construcción, banca, energía, Internet, etc.).

1.3.- Determinación del timing.

Hay quienes piensan que una estrategia robusta debe funcionar en cualquier tipo de compresión horaria, aludiendo a la naturaleza fractal de las formaciones de precios y a la invarianza de sus propiedades estadísticas en diferentes escalas. Sin embargo, esto no es del todo cierto y, en numerosas ocasiones, encontramos sistemas que funcionan muy bien en un determinado rango de time frames (Ej., 5, 10, 15 y 20 min.) y peor en otros (Ej., 45, 60 y 120 min.) Por tanto, antes de empezar con el proceso RWFO conviene establecer el rango de time frames más apropiado para el sistema. En la práctica la determinación del TF seguirá este esquema:

Por lo general no será necesario someter a distintos time frames todas las combinaciones paramétricas de la estrategia, bastará con seleccionar los parámetros clave de los subsistemas de apertura y cierre de posiciones dejando los filtros en una posición neutra. Posteriormente realizaremos una optimización de amplio espectro (es decir, sin demasiada granularidad) y procederemos a analizar los resultados.

En la imagen inferior podemos ver una hoja Excel empleada para la determinación del timing idóneo en un sistema intradiario:

Los resultados procedentes de la optimización se agrupan por time frames en dos tablas diferentes. Cada celda de las tablas contiene los promedios o los máximos de las combinaciones paramétricas para cada minutaje. Su representación gráfica nos permite responder a la pregunta de cuál es el time frame de rendimiento optimo para cada elemento del binomio sistema / mercado.

ROBUST WALK FORWARD OPTIMIZATION

El objetivo fundamental de cualquier Evaluación “Out of sample” (literalmente significa “fuera de muestra” y hace referencia al uso de datos no usados en el proceso anterior de optimización) es la de simular el resultado que habría ofrecido nuestra estrategia en trading real, de la manera más aproximada que podamos realizar.

Robert E.Pardo desarrolló la técnica “Walk Forward Analysis” en su recomendable libro Design,Testing and Optimization of Trading Systems. Esta metodología introducía cambios importantes en el testeo de los sistemas. Clasicamente se cogía el histórico, se dividía en 2 secciones: zona In sample (sobre la que se realiza la optimización) y zona out of sample (zona de validación). Se obtenía el conjunto paramétrico óptimo de la zona In sample y se aplicaba sobre la zona de validación.
El mayor problema que presenta esa visión clásica, es que presupone que la dinámica del mercado permanecerá inalterable y es, por tanto, rígida, los parámetros no se adaptan a las circunstancias, no se reoptimiza una vez que el sistema está en marcha.
El Walk Forward, en cambio adopta una postura mucho más flexible, divide el histórico en “ventanas” de trabajo, cada una de ellas con zona “In sample” y zona “Out of sample” (generalmente la proporción de histórico Out/In viene a ser de 10-30%). Se optimiza en la zona In y se aplica a la zona Out, posteriormente se desplaza temporalmente la ventana una cantidad idéntica al tamaño del periodo Out of sample y se realiza de nuevo el proceso. Pueden ver una representación gráfica a continuación.

Los resultados obtenidos mediante la fusión de los distintos periodos de Out of sample, representan unas condiciones realistas de trabajo para nuestra estrategia, que serán objeto de análisis. Sin embargo, este tipo de simulación genera algunos problemas que no se deben soslayar. La flexibilidad del método Walk Forward para la adaptación de los parámetros del sistema a las condiciones actuales del mercado puede originar que los parámetros de trabajo al finalizar un periodo no tengan nada que ver con los que usaríamos en el siguiente, de hecho pueden variar considerablemente. Tampoco las optimizaciones sobre periodos “In sample” cortos nos arrojan mucha luz sobre el comportamiento de la estrategia en distintas circunstancias del mercado, siendo perfectamente posible que el Walk Forward nos arroje conjuntos paramétricos inestables si éstos se aplican sobre un periodo con régimen de mercado distinto.

Por todo ello, proponemos una técnica derivada del Walk Forward, que pretende superar esas desventajas, “Robust Walk Forward Optimization”.

Esta técnica consiste en 2 pasos bien diferenciados: una optimización seguida de la aplicación de un Walk Forward. El primer paso tiene como objetivo tanto la selección de diseños “todoterreno” que funcionen relativamente bien en un conjunto amplio de escenarios, como la selección de una zona robusta de trabajo para el conjunto de parámetros de la estrategia. El segundo pretende implementar la flexibilidad del Walk Forward tradicional, con la particularidad de que las optimizaciones dentro de ese periodo Out of sample estén delimitadas por la zona robusta seleccionada en el paso previo. De esta manera permitimos al sistema cierta flexibilidad de adaptación pero dentro de unos intervalos que hayan acreditado robustez.

El método

Dado un histórico disponible, se divide en 2 zonas principales: In sample + Out of Sample.
La zona In sample debe estar constituida por la mayor cantidad de escenarios posibles del mercado, lo cual implica normalmente varios años.
La zona Out of sample, de un tamaño comprendido entre 10-35% del tamaño de la In sample. En cualquier caso este tamaño debe ser tal que la aplicación de la estrategia produzca un número significativo de trades (siempre>30).
Un ejemplo de esta selección de periodos puede ser el siguiente:
– Mercado: Futuro del Bund
– Histórico disponible: 1998-2011
– Zona In Sample: 1998-2007
– Zona Out of Sample:2008-2011

Una representación de la técnica puede observarse en el siguiente diagrama

 

1.- OPTIMIZACIÓN IN SAMPLE:

La optimización es el proceso que nos permitirá conocer cuáles son las combinaciones paramétricas que hubiesen obtenido los mejores resultados en datos históricos.
Así mismo, a través de este proceso también podremos evaluar, de forma general, los resultados de todas las combinaciones de parámetros con el objeto de determinar cuál es la zona robusta. Nuestro objetivo en este punto será localizar una zona paramétrica robusta sobre la que posteriormente realizaremos el Walk Forward.
Una buena manera de analizar los resultados de una optimización es construyendo mapas en 3 dimensiones y gráficos de contorno a través de Excel, para ello utilizaremos los resultados de todas las combinaciones paramétricas. Esto nos servirá para localizar visualmente la zona robusta de un modo práctico y eficaz. A este tipo de gráficos podremos recurrir siempre y cuando estemos realizando optimizaciones de dos parámetros.
A continuación se muestra el mapa en 3 D de una optimización hipotética de los dos parámetros de un sistema basado en cruces de medias móviles; SMA Lenta y SMA Rápida. Como ratio diana se ha utilizado el Net Profit (Beneficio Histórico Neto):


En el eje X e Y tenemos los diferentes periodos de la SMA Rápida y de la SMA lenta, y en el eje Z tenemos el Beneficio Neto que hubiese obtenido cada una de las combinaciones paramétricas. Los mapas de optimización en 3D comúnmente se analizan como si de un terreno montañoso se tratase, en el que tendremos picos, depresiones y mesetas:

  • Picos: representan aquellas combinaciones paramétricas que han obtenido valores extremos. Los parámetros situados en los picos no deben ser considerados robustos ya que tendrán muy pocas probabilidades de volver a repetir resultados similares en el futuro.
  • Depresiones: Muestran zonas de parámetros que hubiesen obtenido resultados muy pobres. Nuevamente las combinaciones de parámetros situadas en las depresiones no son robustas. En estas zonas tendremos los resultados más bajos obtenidos en todo el mapa de optimización.
  • Mesetas: Están formadas por combinaciones de parámetros que muestran estabilidad, es decir, que no muestran grandes variaciones entre los resultados de una combinación de parámetros y los resultados de las combinaciones de parámetros situadas a su alrededor. Los parámetros situados en las mesetas son considerados robustos, ya que no es necesario que vuelva a repetirse una combinación paramétrica concreta para que se obtengan unos resultados similares.

En nuestro mapa de optimización podemos observar los picos, identificados con la tonalidad de azul más clara, las depresiones, representadas de color rojo oscuro y azul oscuro, y por último las mesetas, que son visualizadas de color naranja. En dicha optimización nosotros consideramos que la zona robusta estaría situada en la mayor meseta dentro del paralelogramo amarillo, en concreto recogería los parámetros SMA Rápida (38-50) y SMA Lenta (65-75).

Una vez que hemos localizado la zona paramétrica robusta podremos empezar a realizar el Walk Forward, no sin antes registrar los resultados obtenidos en dicha optimización para contrastarlos finalmente con los resultados obtenidos en el Walk Forward.

2.- WALK FORWARD

Una vez delimitada la zona paramétrica robusta de nuestra estrategia sobre el periodo In Sample, procedemos a la aplicación de un Walk Forward sobre el periodo de validación (Out of sample), realizando las distintas optimizaciones de cada periodo del Walk forward dentro de los márgenes paramétricos de la zona robusta. El primer periodo del Walk Forward, cogería el último tramo de la zona In sample para realizar la primera optimización, como puede verse en el diagrama.

El resultado de la aplicación del Walk Forward se traduce en una serie de periodos “Out of Sample) (azul oscuro en el diagrama), generados por conjuntos paramétricos robustos de la estrategia.

Con esta técnica se cumplen varios objetivos:

  • El resultado es simulación realista del funcionamiento de la estrategia. Mediante su análisis y contraste con los resultados obtenidos durante la Optimización In sample (a través de criterios de aceptación) podemos comprobar la capacidad de la estrategia de reproducir los resultados obtenidos durante el Backtest.
  • El proceso de adaptación entre periodos se produce de manera “suave” al estar tanto el conjunto paramétrico nuevo como delimitados por la zona robusta.
  • Mediante el conjunto de trades generados en el Out of Sample, se constituye el llamado “Test Profile”, que es la caracterización estadística de la estrategia creada y es el resumen de nuestro juego.
  • Introduce una dinámica cíclica y programada de adaptación a las circunstancias del mercado.
  • Aporta el conjunto paramétrico con el que debemos comenzar a operar.