The WFO experiment

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

The WFO experiment

Mensaje por INtrader »

O sea, “walk forward optimization”.

Imagen

Lo que quiero plantear en este hilo es la naturaleza de la optimización, y de la variante WFO en particular, como herramienta para verificar las bondades de una estrategia y/o como parte integrante de la estrategia.

Para que el experimento no sea exclusivamente teórico y se quede en comentarios más o menos razonados sobre las ventajas e inconvenientes de este tipo de herramientas, he recuperado un programita de mi cajón –Optomax- que permite generar, a partir de un sistema de cruce de medias, series de WFO de cualquier símbolo y generar un fichero de texto con los resultados para estudiarlos posteriormente con Excel.

La interfaz es bastante austera, pero la velocidad de proceso y el output obtenido creo que merecen la pena, al menos para nuestro experimento.

Instrucciones de uso de Optomax:

+ Descomprimir los archivos en una carpeta.
+ Ejecutar test.bat

Después de unos pocos minutos, obtenemos un fichero con los datos de las optimizaciones y de las pruebas externas con el siguiente formato:

Código: Seleccionar todo

20060201,-,20060428,n  3172, 1096,  9,177, 2.84, 775.5, -273.0,  502.5, 28,OPT
20060502,-,20060531,n  1144,    0,  9,177, 5.53, 578.0, -104.5,  473.5,  8,EXT
20060301,-,20060531,n  3276,  636,  6,197, 3.24,1126.5, -348.0,  778.5, 37,OPT
20060601,-,20060630,n  1232,    0,  6,197, 5.73, 567.0,  -99.0,  468.0, 10,EXT
20060403,-,20060630,n  3312,  479,  5,200, 4.11,1542.5, -375.5, 1167.0, 35,OPT
20060703,-,20060731,n  1176,    0,  5,200, 1.04, 391.0, -376.5,   14.5, 16,EXT
20060502,-,20060731,n  3552, 1220, 10,141, 2.97,1744.5, -586.5, 1158.0, 33,OPT
20060801,-,20060831,n  1288,    0, 10,141, 0.28, 160.0, -574.0, -414.0, 30,EXT

Descripción datos:

20060201,-,20060428 Periodo de optimización
n 3172 Número de barras leídas
1096 Indice interno
9 Selección parámetro 1
177 Selección parámetro 2
2.84 Profit factor
775.5 Ganancias brutas
-273.0 Perdidas brutas
502.5 Resultado bruto
28 Nº de operaciones
OPT/EXT OPT: optimización. EXT: prueba externa


Algunas limitaciones:

+ El fichero de entrada se extrae de VisualChart y se debe eliminar la cabecera.
+ Mejor incluir ficheros intradiarios de al menos 1 o 2 años.
+ La visualización de los resultados solo tiene 1 decimal.
+ Resultados en puntos, no se incluyen comisiones, ni slippages
+ Sólo se pueden parametrizar los periodos de optimización y prueba externa (en meses)
+ El periodo de optimización debe de ser siempre mayor o igual al periodo de prueba externa

Os ruego sepáis perdonar algunos bugs menores que podáis encontrar en el camino y en cualquier caso siempre me los podéis comunicar.


Si alguno/a tiene problemas para ponerlo en marcha o para entender algo que lo diga, que le echo una mano.

Un saludo.
INtrader
Adjuntos
Optomax.zip
Optomax para cruce de medias
(208.22 KiB) Descargado 97 veces
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Re: The WFO experiment

Mensaje por polxx »

Pero donde elejimos la estrategia y los parametros???

Y los slipages y comisiones deberiamos de poderlo incidar, para que cuando elija parámetros los elija mas acordes a la realidad.
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
elcctrro
Mensajes: 329
Registrado: 26 Nov 2008 11:09
Ubicación: Zona centro España

Re: The WFO experiment

Mensaje por elcctrro »

Hola INtrader muy buen trabajo el realizado, yo uso el soft de http://www.easyexpertforex.com/ que trabaja sobre la Metatrader 4, pero tiene el enorme inconveniente de la funcoin de optimización.

El gran problema del análisis WFO es la función de optimización, es decir los criterios para seleccionar los mejores parámetros con los que vamos a realizar al prueba externa.

Ante esta dificultad mayúcula, yo creo que nos podemos conformar con un análisis de robustez del sistema optimizado.

Esta prueba de robustez se realizaria solo con las mejores optimizaciones mediante MT4. A estas optimizaciones mejores se les tiene que sacar el informe completo de operaciones, que se obtiene tras realizar la prueba de estrategia, y ahora lo trabajamos.

Para sacar la robustez haríamos la media del informe de operaciones de 5 años pero tomado de tres en tres meses con incrementos de 1 mes. Es decir la primera estadistica tomaría las operaciones de los meses 1, 2, y 3 del primer año y la segunda estadistica los meses 2,3, y 4, al terminar la estadistica de los meses 10, 11 y 12 del quinto año sacamos la media aritmética de todas las anteriores y esta seria la resultante de robustez.

NOTA - Si alguna estadistica trimestral sale con beneficio negativo esta configuración debe ser eliminada, sin necesidad de continuar realizando más análisis.

Veamos que con este procedimiento se utilizar un soft como MT4 (seguro que hay más que sacan los informes en html), y se pueden filtrar las mejores optimizaciones mediante algorítmos genéticos si se desea, evitando el conflicto de intereses que representa la función de optimización.

Un saludo.
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

polxx escribió:Pero donde elejimos la estrategia y los parametros???

Y los slipages y comisiones deberiamos de poderlo incidar, para que cuando elija parámetros los elija mas acordes a la realidad.
Bueno Polxx, lo que intento con este experimento es validar precisamente el análisis del tipo WFO y no tener una herramienta multisistema, multiparámetro; para eso ya están las herramientas como las que nos muestra elcctrro en el post siguiente al tuyo.

Mi herramienta, entiendo, tiene mayor potencial para realizar series de tests sobre distintos gráficos sin necesidad de asistencia. Puedes crear un .bat con todas las pruebas que creas oportunas, lanzarlo, irte a dormir y al día siguiente tienes tantos WFO resultados como para entretenerte un buen rato.

La idea es validar precisamente este tipo de análisis. Para mi no está claro que los resultados obtenidos puedan ser trasladados directamente al trading. Tal vez me he perdido algo, pero ¿que certeza tenemos de que los resultados pasados vayan a reproducirse en el futuro? ¿Nos basta con tener la "certeza" estádistica? ¿Hay algún precepto matemático que sostenga el WFO? ...

elecctrro,

Primero gracias por tus comentarios. Después debo advertirte que todavía estoy intentando descifrarlos...
elcctrro escribió:El gran problema del análisis WFO es la función de optimización,
Estoy de acuerdo contigo, sobre todo, porque en cualquier caso, se realice la selección que se realice, siempre será arbitraria ¿Me equivoco? ¿Que propones como criterio de selección?

Luego hablas de obtener el informe trimestral de las operaciones ¿de las pruebas externas?, y que si algún trimestre sale negativo, desechamos ¿las pruebas? ¿el sistema? ¿el timeframe?

Gracias de nuevo.
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
elcctrro
Mensajes: 329
Registrado: 26 Nov 2008 11:09
Ubicación: Zona centro España

Re: The WFO experiment

Mensaje por elcctrro »

INtrader escribió:
polxx escribió: elecctrro,

Primero gracias por tus comentarios. Después debo advertirte que todavía estoy intentando descifrarlos...
elcctrro escribió:El gran problema del análisis WFO es la función de optimización,
Estoy de acuerdo contigo, sobre todo, porque en cualquier caso, se realice la selección que se realice, siempre será arbitraria ¿Me equivoco? ¿Que propones como criterio de selección?

Luego hablas de obtener el informe trimestral de las operaciones ¿de las pruebas externas?, y que si algún trimestre sale negativo, desechamos ¿las pruebas? ¿el sistema? ¿el timeframe?

Gracias de nuevo.
Si nos centramos en el WFO, la función de optimización seria la puerta que comunica el pasado con el futuro, ¿pero qué futuro?...cada análisis wfo tiene un segmento de datos futuros relacionados con los datos pasados mediante la función de optimización, es decir tengo tres meses de datos pasados (meses 1,2, y 3 ), uso una función de optimización (criterios para seleccionar de entre todas las combinaciones de parámetros la mejor, es decir la combinación de parámetros que sobre los datos futuros ( mes 4 de los datos) consigue mejores resultados**

Usando un simil de ecuaciones tendríamos: ResultadosFuturos = DatosPasados x FuncionOptimizacion

El trabajo real del WFO es, teniendo los datos del cuarto mes (DatosFuturos) y los de los meses 1,2 y 3 (DatosPasados), despejamos la Función de optimizacion, es decir, la buscamos. Una vez que tengamos la función de Optimización, podemos trabajar en tiempo real donde, ahora si serán de verdad ResultadosFuturos.

¿Qué tenemos que hacer para obtener la función de optimización?, pongamos como ejemplo un sistema de dos medias donde ambas medias pueden tomar valores entre 1 y 100.

Paso 1.- Sacar los resultados del comportamiento de los 10000 sistemas con parámetros diferentes, sobre los datos de los tres primeros meses.

Paso 2.- eliminamos los sistemas que tiene resultado negativo y los que tienen un resultado excepcionalmente bueno, con los restantes pasaremos al siguiente paso.

Paso 3.- con los parámetros de cada sistema en los tres primeros meses, obtenemos el resultado sobre el cuarto mes.

Paso 4.- Optimizamos la Función de optimización, para lo cual hemos tenido que definir previamente una serie de criterios o indices, que ahora combinándolos (optimizándolos) darán como resultado la FO que mejores resultados tiene en el 4º mes.

Los indices supongamos que hemos definido tres: el beneficio neto, el coeficiente de beneficio y el tiempo de recuperación. Tenemos tres indices y la optimización de la FO consiste en filtrar mediante todas estas combinaciones sin repetición (6) de estos tres indices los resultados netos de los sistemas en el cuarto trimestre.

Si hacemos esto para todos los grupos de tres meses y siguiente, sobre una base de datos de dos años obtenemos 21 pases de optimización de la FO (recordemos que teníamos 6 combinaciones) pues tomaremos como seleccionada la combinación que más exitos haya tenido en las 21 optimizaciones.

Espero haber aportado algo de claridad al tema y que te puede servir mi explicación para mejorar tu soft, que estaré encantado de probar en el verano.

Un saludo.

** Los mejores resultados de un experto no son los que simplemente mas beneficio aportan en un periodo, sino que hay que analizar que la distribución de las operaciones en el tiempo sea homogénea, y que la dispersión de ganancias y perdidas sea reducida y estable entre otros datos a analizar, en algunos libros más de 20.

Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

elcctrro escribió:Paso 4.- Optimizamos la Función de optimización, para lo cual hemos tenido que definir previamente una serie de criterios o indices, que ahora combinándolos (optimizándolos) darán como resultado la FO que mejores resultados tiene en el 4º mes.
Desde luego que esta vez lo tengo todo mucho más claro. No obstante, todavía no comulgo plenamente con tu idea de optimización de la FO. Me explico, la idea de utilizar los resultados de las pruebas externas para seleccionar el criterio que mejor me va para optimizar (retroalimentación) me parece un poco perversa y en todo caso da la impresión que nos conduce a una sobreoptimización. Tal vez deberíamos crear también en este caso dos macroperiodos: uno de selección del criterio de optimización, compuesto de diferentes periodos de backtest y prueba externa, y otro para probar, con la misma composición, en prueba externa, la eficacia de nuestra elección (un poco enredado, verdad)

En cualquier caso sí parece importante el criterio que utilicemos para seleccionar los mejores parámetros que trasladaremos a nuestras pruebas externas, que como bien dices debe de ofrecernos cierta homogeneidad de los resultados.

Repasando a Robert Pardo, no hace especial hincapie en este tema, pero si ofrece una idea de selección de resultados que tiene en cuenta hasta tres conceptos.

Le daré una vuelta y haré algunas pruebas para ver si encuentro algo que merezca la pena.

Hasta pronto.
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

Pruebas con optimizaciones sobre fdax en TF de 15m del 2006 al 2011.

Una con periodos de backtest de 2 meses y prueba externa de 2. Otra con periodos de 6 y 2.

Los resultados no son ninguna joya, pero se ven claramente las diferencias.
opt.dx15m.0906-0311.PNG
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
elcctrro
Mensajes: 329
Registrado: 26 Nov 2008 11:09
Ubicación: Zona centro España

Re: The WFO experiment

Mensaje por elcctrro »

Aqui muestras dos WFO con longitudes diferentes de datos, supongo que como FO se ha usado el criterio de máximo beneficio o mayor factor de beneficio.

pero ¿qué curvas tendrías con varias FO, manteniendo los parámetros de longitud de datos iguales en todas las wfo.?

¿Tendriamos los mismos resultados con unas FO que con otras?, si tenemos 5 curvas obtenidas con 5 FO diferentes ¿con cuál de ellas pondremos a trabajar nuestro sistema con datos reales? ¿no es este procedimiento una optimizción de la FO?

Un saludo.
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

elcctrro,

- Primero comentar que las dos líneas en el gráfico se corresponden al mismo periodo de tiempo.
- Efectivamente el criterio utilizado es el mayor Profit Factor.
- Está claro que con diferentes criterios de optimización (Profit Factor, fiabilidad, menores perdidas,…) obtendríamos resultados también diversos.
- Si seleccionamos el criterio de optimización que mejor resultados nos ofrece como criterio fijo de optimización para nuestras pruebas posteriores, estaremos sin duda optimizando el proceso de pruebas.
- Igualmente, si seleccionamos los periodos de backtest/prueba externa que mejor resultados nos ofrecen, también estaremos realizando una optimización de nuestro criterio de selección de pruebas.

Dicho esto, lo que me “preocupa” es el hecho de que estamos adulterando un proceso que en un principio había sido creado para validar una estrategia; y estamos convirtiéndolo en parte de la estrategia.

Me explico, en el caso de Optomax la estrategia que lleva incorporada es un simple cruce de medias. Sin embargo siguiendo el proceso de optimización referido anteriormente, estoy seguro que seriamos capaces de encontrar un modelo (gráfico, parámetros, función objetivo) que nos ofreciera unos resultados suficientemente apetecibles como para correr la estrategia.

Entonces,
¿Sería está estrategia suficientemente fiable como para ejecutarse en real?

¿Sería cualquier otra estrategia, superadas las mismas pruebas, suficientemente fiable como para ejecutarse en real?

¿Qué valida o invalida una estrategia una vez conocemos que las pruebas WFO son aceptables?

Saludos,
INtrader
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
elcctrro
Mensajes: 329
Registrado: 26 Nov 2008 11:09
Ubicación: Zona centro España

Re: The WFO experiment

Mensaje por elcctrro »

INtrader escribió: 1ª.- ¿Sería está estrategia suficientemente fiable como para ejecutarse en real?

2ª.- ¿Sería cualquier otra estrategia, superadas las mismas pruebas, suficientemente fiable como para ejecutarse en real?

3ª.- ¿Qué valida o invalida una estrategia una vez conocemos que las pruebas WFO son aceptables?

INtrader
Respecto a las 1ª y 2ª preguntas yo diría que hemos realizado todo lo que podemos, para que la estrategia de resultados positivos en el futuro, ¿ los dara?, pues habrá que comprobarlo de forma real.

Respecto a la 3ª pregunta, lo que valida cualquier estrategia de optimización o análisis son los resultados con datos reales futuros. Podemos usar un bloque de datos posteriores a los usados en el análisis wfo, pero al final hay que terminar en datos reales o pudiéramos ir directamente a datos reales.

De todas formas debemos tener en cuenta que ninguna estrategia de optimización o análisis reduce el riesgo de las operación a cero. De esta forma debemos conformarnos con hacer el máximo posible a sabiendas de que puede ser insuficiente.

Un saludo.
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

elcctrro escribió:
INtrader escribió: 1ª.- ¿Sería está estrategia suficientemente fiable como para ejecutarse en real?

2ª.- ¿Sería cualquier otra estrategia, superadas las mismas pruebas, suficientemente fiable como para ejecutarse en real?

3ª.- ¿Qué valida o invalida una estrategia una vez conocemos que las pruebas WFO son aceptables?

INtrader
Respecto a las 1ª y 2ª preguntas yo diría que hemos realizado todo lo que podemos, para que la estrategia de resultados positivos en el futuro, ¿ los dara?, pues habrá que comprobarlo de forma real.

Respecto a la 3ª pregunta, lo que valida cualquier estrategia de optimización o análisis son los resultados con datos reales futuros. Podemos usar un bloque de datos posteriores a los usados en el análisis wfo, pero al final hay que terminar en datos reales o pudiéramos ir directamente a datos reales.

De todas formas debemos tener en cuenta que ninguna estrategia de optimización o análisis reduce el riesgo de las operación a cero. De esta forma debemos conformarnos con hacer el máximo posible a sabiendas de que puede ser insuficiente.

Un saludo.
Tal vez yo sea demasiado exigente. Tal vez deba de conformarme con unos buenos resultados en prueba externa para poner en marcha un sistema, independientemente de que el sistema sea conceptualmente robusto o no.

Seguro que los datos reales me confirman certeramente la bondad de mi estrategia... en fin, creo que falta algo.

Un saludo.
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: The WFO experiment

Mensaje por cls »

Por si interesa, todo esto también se puede hacer con NinjaTrader ...

Busca los mejores valores en una ventana temporal (in sample. Pestaña Optimizer) y los aplica en otra (out of sample. Pestaña Walk Forward).

En este ejemplo se optimiza en 5 días y se aplica también en 5 días, pero se puede escoger cualquier cantidad para los dos. Como se ve, los parámetros que se aplican durante cinco días dados, vienen calculados con las barras de los cinco días anteriores.

Hay que buscar que los parámetros pivoten sobre un intervalo contenido de valores para tener mayor confianza en los resultados. En este caso el primer parámetro es siempre 1, el segundo oscila entre 4 y 8, y el tercero entre 90 y 100.

S2
Adjuntos
Walk Forward
Walk Forward
Optimizer
Optimizer
elcctrro
Mensajes: 329
Registrado: 26 Nov 2008 11:09
Ubicación: Zona centro España

Re: The WFO experiment

Mensaje por elcctrro »

Hola cls, ¡qué placer leerte! muy bien la NT pero ponte a llorar...

La MT5 puede optimizar todas las combinaciones de los parámetros o por reducción de algoritmo genético, hasta aquí nada diferente, pero también tiene el análisis wfo implementado:
1º.- podemos seleccionar la relación de datos delante atrás entre varios preconfigurados o uno definible por el usuario.
2º.- podemos elegir entre varias Funciones de Optimización o incluso una definible por el usuario.

Como vemos el quiz de la cuestión esta en la selección de la FO.
INtrader, ¿te animas a relizar un soft para buscar la FO optima según lo comentado en post anteriores?

Un saludo.
Adjuntos
MT5_wfo.JPG
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12793
Registrado: 06 Sep 2004 10:18
Contactar:

Re: The WFO experiment

Mensaje por X-Trader »

Coñe elcctrro, esa no me la sabia yo!!! Incluso estaría bien si pudieras dedicar un tiempo a escribir un articulillo ;)

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
INtrader
Mensajes: 419
Registrado: 05 Nov 2009 13:54
Contactar:

Re: The WFO experiment

Mensaje por INtrader »

cls escribió:Por si interesa, todo esto también se puede hacer con NinjaTrader ...

Busca los mejores valores en una ventana temporal (in sample. Pestaña Optimizer) y los aplica en otra (out of sample. Pestaña Walk Forward).

En este ejemplo se optimiza en 5 días y se aplica también en 5 días, pero se puede escoger cualquier cantidad para los dos. Como se ve, los parámetros que se aplican durante cinco días dados, vienen calculados con las barras de los cinco días anteriores.

Hay que buscar que los parámetros pivoten sobre un intervalo contenido de valores para tener mayor confianza en los resultados. En este caso el primer parámetro es siempre 1, el segundo oscila entre 4 y 8, y el tercero entre 90 y 100.

S2
Claro que interesa cls. Gracias por el aporte.

He estado echando un vistazo a un video del proceso WFO en Ninja y me he quedado gratamente sorprendido. Parece muy completo y ofrece toda clase de datos sobre las pruebas. Impresionante. En cuanto tenga un ratito lo pruebo yo mismo.

En cualquier caso, ya que nos obsequias con resultados de WFO, que además tienen muy buen aspecto, no puedo resistirme a preguntarte tu opinión sobre el WFO. En particular me gustaría saber:

- ¿Utilizas el WFO para validar tu estrategia o como parte de tu estrategia?
- Los periodos que indicas como ejemplo, 5/5, ¿Los utilizas habitualmente o tienes algún método o manía para determinar los periodos en cada caso?

Cualquier otro comentario al respecto será bienvenido.

Saludos.
I have not failed. I've just found 10,000 ways that won't work - Thomas A. Edison
Sigueme en Twitter: @INtrader_ :smt006
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”