Uno de los mayores problemas con el desarrollo de sistemas de trading es que muchas estrategias no son capaces de mantener un buen rendimiento en el futuro. Esto puede deberse a varias razones:
- El sistema no se basa en una premisa válida.
- Las condiciones del mercado han cambiado de una manera dramática de tal forma que invalidan las premisas teóricas sobre las que se desarrolló el sistema.
- El sistema no ha sido desarrollado y probado con una metodología sólida. Por ejemplo, (a) falta de robustez en el sistema debido a parámetros inadecuados, y (b) reglas inconsistentes y pruebas inadecuadas del sistema usando datos in-sample y out-of-sample.
Como vimos anteriormente, existen varios enfoques y metodologías diseñadas para evaluar la robustez de un sistema de trading y aumentar la probabilidad de que obtenga un desempeño positivo en la vida real, incluyendo:
- Número limitado de parámetros optimizables
- Gráficos de superficie 3D
- Análisis de Monte Carlo
- Análisis y optimización Walk-Forward
Una de las maneras más robustas de probar la fiabilidad de un sistema de trading y asegurarse que tendrá la mayor probabilidad de obtener un buen desempeño en el mercado es usar lo que se conoce como análisis y optimización Walk-Forward (WFO), un método descrito por primera vez en el libro “Design, Testing, and Optimization of Trading Systems” de Roberto Pardo.
¿Qué es el análisis Walk-Forward?
El análisis Walk-Forward es el proceso de optimización de un sistema de trading utilizando un conjunto limitado de parámetros y, a continuación, probar el mejor conjunto de parámetros optimizado en los datos out-of-sample. Este proceso es similar a cómo un operador utilizaría un sistema de trading automatizado para operar en vivo bajo condiciones reales del mercado. La ventana de tiempo in-sample se desplaza hacia adelante en el período cubierto por la prueba out-of-sample, y el proceso se repite. Al final de la prueba, todos los resultados registrados se utilizan para evaluar la estrategia de negociación.
En otras palabras, el análisis Walk-Forward realiza la optimización en un conjunto de parámetros de entrenamiento, posteriormente efectúa pruebas con los valores optimizados en un período después de la optimización de los parámetros y luego corre todo hacia adelante y repite el proceso. Al final del proceso tenemos múltiples periodos out-of-sample y observamos estos resultados combinados. El análisis Walk-Forward es una aplicación específica de una técnica conocida como validación cruzada. Significa tomar un segmento de datos para optimizar un sistema, y otro segmento de datos para validar.
Esto da un período out-of-sample más grande y permite al desarrollador del sistema ver cuán estable es el sistema a lo largo del tiempo.
La siguiente imagen ilustra el procedimiento de las pruebas Walk-Forward. Una optimización se realiza durante un período más largo (los datos in-sample) y, a continuación, el conjunto de parámetros optimizado se prueba durante un período más corto subsiguiente (los datos out-of-sample). Los periodos de optimización y de ensayo se desplazan hacia delante y el proceso se repite hasta que se alcanza un tamaño de muestra adecuado.

Con el fin de demostrar el concepto mediante un ejemplo vamos a presentar la optimización Walk-Forward de un sistema de trading de ruptura y volatilidad. Para la prueba usaremos los futuros del DAX 30, la plataforma NinjaTrader, los datos históricos de 1 minuto de CGQ, y vamos a asumir 3 puntos de deslizamiento para cada operación.
El proceso consta de tres pasos principales:
- Definir los periodos in-sample y out-of-sample
- Definir un área de parámetros robustos
- Ejecutar el análisis walk-forward
Definición de los periodos in-sample y out-of-sample
Elegiremos como periodo in-sample 1/1/2005 a 31/12/2013 para el diseño del sistema y la optimización in-sample y 1/1/2014 al 31/12/2016 como período out-of-sample para evaluar la robustez de la optimización in-sample y ejecutar la corrida hacia adelante. En este caso, utilizaremos una proporción 3:1 para la optimización Walk-Forward:
- Optimizar 2011 a 2013 y verificar el rendimiento out-of sample en 2014
- Optimizar 2012 a 2014 y verificar el rendimiento out-of sample en 2015
- Optimizar 2013 a 2015 y verificar el rendimiento out-of sample en 2016
Definición del área de parámetros robustos en el periodo in-sample
En esta sección vamos a definir el «área robusta» de los parámetros del sistema. Optimizaremos sólo 3 parámetros del sistema:
- Período de la media móvil más rápida
- Período de la media móvil más lenta
- Filtro de volatilidad
Otros parámetros del sistema que no optimizaremos son:
- Hora de inicio: 09:00 (GMT + 1)
- Hora de finalización: 22:00 (GMT + 1)
- Última operación: 18:00 (GMT + 1)
- Riesgo por operación: 2%
- Máximo de operaciones por día: 3
- Salir en el cierre: Verdadero
Definición del área de parámetros robustos para las medias móviles

A través de un gráfico de superficie 3D podemos identificar el área de parámetros más robustos para las medias móviles tal como sigue:
- Media móvil rápida: 12 a 30 minutos
- Media móvil lenta: 330 a 500 minutos
Definimos como área de parámetros “robustos” aquella que no tiene picos o valles importantes y generalmente tiene un buen rendimiento.
Definición del parámetro robusto para el filtro del sistema
Como podemos ver el área robusta para el filtro está entre 0.55 y 0.70, siendo está un área donde el desempeño del sistema está aumentando lentamente y no hay alzas ni caídas abruptas.
Ahora que hemos identificado el área de parámetros robustos, vale la pena realizar una optimización in-sample completa para ver cómo se habría comportado el sistema entre el 2005 y el 2013.

El sistema generó una ganancia neta de $120,000 entre 2005 y 2013 con un factor de ganancia de 1,56, realizando 756 operaciones con un promedio de 41% de operaciones rentables. El sistema exhibió ciertas características deseables tales como una alta relación de ganancias/pérdidas de 2,28.
Periodo | Beneficio acumulado (USD) | Drawdown máximo (USD) |
2005 | -506.50 | -5240 |
2006 | 17980 | -3743.50 |
2007 | 7425 | -4262.50 |
2008 | 4553.70 | -3068.50 |
2009 | 4350 | -3331.3 |
2010 | 23537.40 | -3681.10 |
2011 | 7787.50 | -6562.30 |
2012 | 45232 | -8575.60 |
2013 | 10231 | -6443.50 |
Aplicación del análisis Walk-Forward
Como se anticipó ahora procederemos con una optimización Walk-Forward:
Paso 1: Optimizaremos entre 2011-2013 y encontraremos los mejores parámetros.
Los mejores parámetros para el período 2011-2013 son:
- Media móvil rápida: 12
- Media móvil lenta: 410
- Filtro:55
Aplicamos estos parámetros al período out-of-sample en 2014 con los siguientes resultados:

- Beneficio neto: $12,300
- Drawdown: $9,000
- % de operaciones ganadoras: 43%
- Factor de beneficio:38
Paso 2: Optimizaremos entre 2012-2014 y encontraremos los mejores parámetros.
Los mejores parámetros para el período 2012-2014 son:
- Media móvil rápida: 20
- Media móvil lenta: 500
- Filtro:70
Aplicamos estos parámetros al período out-of-sample en 2015 con los siguientes resultados:

- Beneficio neto: $27900
- Drawdown: $7450
- % de operaciones ganadoras: 43%
- Factor de beneficio:61
Paso 3: Optimizaremos entre 2013-2015 y encontraremos los mejores parámetros.
Los mejores parámetros para el período 2013-2015 son:
- Media móvil rápida: 20
- Media móvil lenta: 420
- Filtro:55
Aplicamos estos parámetros al período out-of-sample en 2016 con los siguientes resultados:

- Beneficio neto: $17540
- Drawdown: $7300
- % de operaciones ganadoras: 41%
- Factor de beneficio:58
Observaciones
Después de realizar un análisis Wak-Forward el desarrollador puede que tenga la duda acerca de qué conjunto de parámetros debe utilizar en el sistema para sus operaciones reales. Las opciones que tiene son las siguientes:
- ¿Los parámetros del último período periodo adelantado (walk-forward period)?
- ¿Los parámetros que dieron los mejores resultados?
- ¿Los parámetros donde los resultados out-of simple fueron los mejores?
- ¿Los parámetros en los que los resultados out-of-sample estuvieron más cerca de los resultados de la muestra?
Algunos expertos recomiendan usar la optimización más reciente. En el futuro al final del período out-of-sample actual, se optimizaría de nuevo y se utilizarían los valores recién generados en el siguiente período out-of-sample.
Conclusiones
En esta sección hemos mostrado a nivel básico cómo realizar una optimización Walk-Forward en un sistema mecánico intradía. En este caso, los resultados del análisis Walk-Forward están en línea con los resultados del in-sample y esto genera confianza en la robustez de la estrategia.