La Web de Bolsa Más Barata del Mundo

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

¿Qué es una WFO?

E-mail Imprimir PDF
optimization

Muchos novatos en el diseño de sistemas comenten el error de optimizar estos sistemas sobre un intervalo de tiempo enorme, y ponerlos a funcionar, pensando que han dado con los parámetros correctos. Craso error. Para evitar esta "sobre-optimización" contamos con una poderosa herramienta para realizar la "prueba externa": El "Walk-Forward Optimization", WFO para los amigos.

 Muchas veces me he encontrado con programadores defendiendo pruebas básicas de optimización simple para evaluar la valía de un sistema. Una optimización simple nos puede hacer una idea de si estamos ante un sistema sobre el que merezca la pena trabajar, pero en ningún caso nos da garantías de éxito en el futuro.

 Con estas pruebas de WFO pretendemos dos cosas: Probar la robustez real del sistema ante nuevas situaciones y ¡no acabar desplumados!

Voy a poner un ejemplo de cómo se haría una WFO manualmente (afortunadamente hoy contamos con herramientas como el Ninja Trader, que traen implementada esta función).

Como primera prueba:

- Optimizamos el sistema para los años 2005, 2006 y 2007. Anotamos la ganancia para cada año por separado. Esto es la "prueba interna"

- Si el sistema hace pocas operaciones, la prueba será menos fiable. En principio con menos de 150 operaciones/año yo ya lo hubiera desechado directamente. Pongamos que tenemos tramos largos de tres años de duración, del 2001 al 2004, optimizamos y, con los parámetros resultantes ya optimizados, aplicamos al 2005. Esto es la "prueba externa". Hacemos lo mismo optimizando 2003-2005 y aplicamos al 2006 y 2004-2006 y aplicamos al 2007.

Tenemos estos datos:

Prueba Interna:

  • 2005 +40%
  • 2006 +31%
  • 2007 +44%


Prueba Externa:

  • 2005 +25%
  • 2006 +19%
  • 2007 +31%

Podemos decir que en el 2005, hay un índice de robustez del (100/40)*25= 62,5% y, en consecuencia, un acoplamiento del resto, un 37,5%. Podemos fiarnos de que los resultados se repitan en un 67,5%

Hacemos la misma operación con el resto de los años:

          AÑO -  ROBUSTEZ

  • 2005 - 62,5%
  • 2006 - 61,2% (=100/31*19)
  • 2007 - 70,45% (=100/44*31)


Nos da una media de 64,75% de robustez y 35,25% de acoplamiento. Ahora ya sabemos lo que podemos esperar del sistema, un 64,75% de lo que sale en la optimización.

Para que esta prueba sea mejor, podemos seguir haciendo pruebas aleatorias con tramos temporales sesgados, y de diferente duración, saltándonos trozos, etc... Cuantas más hagamos, mejor. También recalcar que debemos tener una muestra de operaciones suficiente, 50 operaciones no son significativas... podría incluso provocar que el sistema se comportase mejor en la vida real que en la prueba externa...  Realmente, si hacemos un sistema intradiario, esperamos una serie de características propias de estos sistemas, como una media de una operacion diaria como mínimo (aunque pase días sin operar, 200 operaciones al año mínimo minimísimo!), si no, hacemos un sistema de señales de fin de día, y arriesgamos menos!

Tengo sistemas que realizan 100 operaciones al mes, y hago pruebas externas de 3 meses, no de 3 años. De esta forma tengo un campo histórico gigantesco para hacer mis pruebas.

Si el sistema pasa esta prueba de forma satisfactoria, le haremos un "Montecarlo"... y no es nada sexual! jajajaja!Pero eso será otro artículo.

 

El WFO del Ninja Trader

  Básicamente, lo que hace una WFO es automatizar el proceso que describo en este post, el quinto mensaje de la cuarta página.

Cuando le damos a realizar "un walk-fordward optimization", nos sale este panel:



Al principio tengo tres parametros, voy a testearlos:

El parametro "barras" puede valer de 2 a 6, saltando de 1 en 1
El parámetro "ganancia" de 0 a 75, de 25 en 25
etc...

Elijo el tamaño del intervalo : 15 minutos
El tamaño temporal de la muestra: 3 meses (del 15 de febrero hasta hoy)

Lo siguiente importante: La sección "Optimize":
Tal y como está ahora, optimizamos durante 28 días, y aplicamos los mejores parámetros (en función del Profit Factor) a los siguientes 7 días.

El resultado es el siguiente:



Tenemos nuestro periodo de 3 meses divididos en segmentos de 7 días (para los dos primeros, no hay datos, como veis). Los resultados de estos 7 días son los obtenidos aplicándoles los mejores parámetros sacados de un proceso de optimización de los 28 anteriores a ellos (en función del mejor "profit factor"), o sea, la prueba externa está hecha automáticamente, y con todos los datos desglosados por tramos semanales...

Más masticado, imposible... sólo tienes que pinchar en un tramo, y debajo te sale toda la información sobre los resultados obtenidos en esa semana: datos generales, grafico de barras, gráficos de resultados, número y detalle de todas las operaciones, desglose diario, semanal, etc...

A partir de estos datos, puedes ver cómo es de robusto tu sistema, si varían mucho los parámetros óptimos de un tramo a otro, si varían mucho los resultados obtenidos entre tramos, si hay tramos anormalmente malos, etc... etc... etc...

Una gozada.

 

Artículos Externos

fixed ratio Fixed Ratio

Un nuevo regalo de TradinSys.org

caza patron A la Caza del Patrón (I)

X-Trader en estado puro...

money as debt Money as debt

¿De donde viene el dinero?