Qué problema intenta resolver el Walk-Forward Analysis
Supongamos que tienes un sistema basado en dos medias móviles y quieres decidir qué periodos utilizar.
Pruebas cientos de combinaciones entre 2015 y 2025 y descubres que una EMA de 18 periodos combinada con otra de 117 produce la curva más bonita.
El resultado puede parecer impresionante.
Pero tienes un problema: esos parámetros fueron elegidos precisamente porque sabes cómo terminó 2015-2025.
No estás preguntando:
¿Qué parámetros habría elegido en 2018 con la información disponible en 2018?
Estás preguntando:
¿Qué parámetros explican mejor todo lo que sé que ocurrió hasta 2025?
Son preguntas completamente distintas.
Y aquí es donde la optimización puede convertirse en una máquina de fabricar falsas certezas. Cuantas más combinaciones pruebas, más posibilidades tienes de encontrar alguna que encaje extraordinariamente bien con el ruido particular de esa muestra.
El Walk-Forward Analysis introduce una disciplina temporal.
Cuando llega el momento de evaluar enero-junio de 2021, por ejemplo, el sistema solo puede utilizar información anterior a enero de 2021 para elegir sus parámetros. Los parámetros se congelan y el resultado del siguiente periodo se acepta tal como salga.
Eso se parece mucho más a la situación que realmente enfrenta un trader.
No conoces mañana cuando decides hoy.
Cómo funciona un Walk-Forward Analysis paso a paso
El mecanismo tiene seis pasos:
- Defines una ventana in-sample. Es el periodo que puedes utilizar para desarrollar u optimizar los parámetros del sistema.
- Eliges los parámetros utilizando exclusivamente ese periodo. La función que decide qué combinación gana debe estar definida de antemano.
- Congelas esos parámetros. No puedes modificarlos porque veas lo que sucede después.
- Los ejecutas sobre el siguiente bloque out-of-sample. Ese resultado se registra sin volver atrás para arreglarlo.
- Haces avanzar las ventanas. Incorporas únicamente información que, en ese punto temporal, ya habría sido conocida y vuelves a optimizar.
- Repites el proceso y unes todos los segmentos out-of-sample. Esa secuencia es la parte que realmente quieres analizar.
Hay un matiz que me parece especialmente importante: la reoptimización también forma parte de las reglas del sistema.
Si en la realidad piensas recalibrar los parámetros cada seis meses, el walk-forward debería simular una recalibración cada seis meses.
Si vas a dejarlos fijos durante tres años, no tendría sentido construir un WFA que los cambia todos los meses solo porque produce mejores resultados históricos.
El test tiene que representar el proceso que realmente podrías ejecutar.
Un ejemplo de Walk-Forward Analysis
Vamos a hacerlo tangible con un ejemplo completamente hipotético.
Imagina un sistema de cruce de medias móviles. Estamos probando distintas combinaciones para una media rápida y otra lenta. Elegimos una ventana de entrenamiento de tres años y después utilizamos seis meses como periodo out-of-sample.
En una modalidad rolling, podría quedar así:
| Ciclo | Periodo in-sample | Parámetros seleccionados | Periodo out-of-sample | Resultado OOS hipotético |
|---|---|---|---|---|
| 1 | Ene 2017 – Dic 2019 | EMA 20 / EMA 100 | Ene – Jun 2020 | +4.2% |
| 2 | Jul 2017 – Jun 2020 | EMA 30 / EMA 100 | Jul – Dic 2020 | -2.1% |
| 3 | Ene 2018 – Dic 2020 | EMA 20 / EMA 150 | Ene – Jun 2021 | +3.6% |
| 4 | Jul 2018 – Jun 2021 | EMA 30 / EMA 150 | Jul – Dic 2021 | +1.4% |
Cada seis meses ocurre lo mismo: miramos únicamente hacia atrás, seleccionamos parámetros, cerramos la puerta y vemos qué sucede en los siguientes seis meses.
Si unes los cuatro bloques OOS de este ejemplo, el rendimiento compuesto sería de aproximadamente 7.2%.
¿Eso demuestra que el sistema es bueno?
No.
Y esta parte importa mucho.
Todavía querría saber cuántas operaciones hubo, qué drawdown produjo, qué expectativa mostró, cuánto dependió el resultado de un único trade, qué costes se incluyeron y si esos cuatro ciclos representan condiciones de mercado suficientemente variadas.
La rentabilidad es un dato. No es un veredicto.
Por eso, cuando llegues a esta fase, conviene tener fresca la lección sobre cómo interpretar las métricas de un backtest.
Walk-forward rolling vs anchored
No existe una única forma de mover las ventanas.
Las dos configuraciones que vas a encontrar con más frecuencia son rolling y anchored. Plataformas que incorporan este tipo de análisis distinguen precisamente entre ventanas con un inicio móvil y ventanas con un inicio fijo.
Rolling Walk-Forward
En un walk-forward rolling, la ventana in-sample mantiene aproximadamente la misma longitud y avanza.
Por ejemplo:
2017-2019 → pruebas H1 2020.
Después:
julio de 2017-junio de 2020 → pruebas H2 2020.
Más adelante eliminas datos antiguos conforme añades información nueva.
¿Qué consigue esto?
Que el modelo dé más peso a información relativamente reciente. Puede tener sentido cuando sospechas que la dinámica del mercado cambia y que datos demasiado antiguos dejan de representar bien el entorno actual.
Pero hay una contrapartida.
Al descartar historia reduces la muestra disponible. Eso puede volver más inestables tus estimaciones, especialmente en estrategias con pocas operaciones.
Anchored Walk-Forward
En el anchored walk-forward, el inicio del periodo de entrenamiento permanece fijo y la muestra va creciendo.
Podrías tener:
2017-2019 → pruebas H1 2020.
Después:
2017-junio de 2020 → pruebas H2 2020.
Y posteriormente:
2017-2020 → pruebas H1 2021.
Nunca olvidas los datos iniciales.
Eso te da una muestra cada vez mayor y puede estabilizar algunas estimaciones, pero también significa que un régimen de mercado ocurrido muchos años atrás sigue teniendo peso en la selección de parámetros.
¿Cuál elegiría yo?
No decidiría por el nombre.
Preguntaría qué quieres que represente tu sistema. Si necesitas que la optimización responda principalmente a condiciones recientes, una ventana rolling puede tener más lógica. Si consideras que la historia antigua sigue siendo relevante y valoras una muestra creciente, el anchored puede encajar mejor.
Lo importante es que la elección tenga una razón económica o estadística previa, no que pruebes las dos y te quedes con la que dibuja la mejor curva.
Eso último vuelve a ser optimización disfrazada.
Cómo elegir el tamaño de las ventanas
Aquí vas a encontrar muchas reglas del tipo “usa 80% para optimizar y 20% para probar” o “entrena cuatro años y prueba uno”.
Yo tendría cuidado con convertir esas proporciones en leyes.
Un sistema que realiza tres operaciones al mes y otro que ejecuta 300 no obtienen la misma cantidad de información de seis meses.
Tampoco es lo mismo un sistema intradía sensible a cambios rápidos de volatilidad que uno tendencial cuya lógica pretende capturar movimientos de varios meses.
La ventana in-sample tiene que ser suficientemente larga para que la optimización observe una muestra útil, pero no tan larga que mezcle indiscriminadamente condiciones de mercado que ya no tienen relación con el proceso actual.
La ventana out-of-sample necesita proporcionar evidencia suficiente para juzgar el conjunto de parámetros seleccionado. Si cada fold OOS contiene cuatro operaciones, una ganadora grande puede determinar prácticamente toda la evaluación.
Por eso prefiero pensar primero en cantidad y diversidad de observaciones y después en años o porcentajes.
No existe un número mágico de operaciones que convierta automáticamente un periodo en estadísticamente suficiente.
Y hay una segunda variable: la frecuencia de reoptimización.
QuantConnect, por ejemplo, señala explícitamente el compromiso entre actualizar con mayor frecuencia para reflejar datos recientes y hacerlo con menor frecuencia, reduciendo coste computacional y exposición al sobreajuste.
La pregunta correcta no es “¿cada cuánto debería optimizar un trader?”.
Es:
¿Con qué velocidad tiene sentido que cambien estos parámetros según la hipótesis del sistema?
Si nunca pensaste por qué deberían cambiar, reoptimizarlos cada semana no hace que el sistema sea más sofisticado. Solo añade grados de libertad.
La lección de análisis de sensibilidad es especialmente útil aquí. Antes de permitir que el walk-forward salte constantemente de un parámetro a otro, deberías saber si estás trabajando con una zona razonablemente estable o con picos aislados de rendimiento.
Qué resultados importan de verdad
Cuando termina el Walk-Forward Analysis, es muy tentador mirar la cifra total de rentabilidad OOS y parar ahí.
Yo no lo haría.
La curva que importa es la construida con los segmentos OOS
El resultado in-sample sirve para seleccionar parámetros.
No es la evidencia principal de validación.
Lo que quieres observar es qué ocurrió después de cada optimización, cuando esos parámetros salieron de la muestra con la que fueron elegidos.
Pardo plantea precisamente la evaluación walk-forward sobre rendimiento out-of-sample, no sobre el periodo utilizado para optimizar.
Si tienes diez tramos in-sample maravillosos y los diez OOS son mediocres, el sistema te está dando información bastante clara: sabe explicar los datos con los que lo entrenas mucho mejor de lo que sabe enfrentarse a datos nuevos.
Me interesa la degradación, no que OOS copie exactamente a IS
Un sistema casi siempre se verá peor fuera de muestra que dentro de ella.
Eso no debería sorprenderte.
El in-sample fue utilizado para encontrar una combinación atractiva. El OOS no.
Lo que me preocuparía es una degradación brutal y repetida.
Supongamos que cada optimización produce profit factors muy elevados y, al pasar al siguiente periodo, la expectativa desaparece. Ese salto puede ser una pista de que la optimización está capturando demasiado ruido.
Algunas plataformas resumen esta relación mediante métricas como Walk-Forward Efficiency (WFE), comparando rendimiento OOS e IS. ProRealTime, por ejemplo, documenta una versión basada en ganancias anualizadas.
Yo no convertiría ningún umbral de WFE en una ley universal.
La interpretación depende de qué métrica se utilice, de cómo la calcula el software, del número de operaciones y de la distribución de resultados. Un solo ratio no sustituye la lectura completa del sistema.
Quiero ver si los ciclos cuentan una historia razonable
No necesito que todos sean positivos.
De hecho, desconfiaría de la idea de que un sistema serio tiene que ganar en cada ventana.
Lo que quiero saber es qué está provocando los peores tramos. ¿Aparecen durante mercados laterales? ¿Tras cambios fuertes de volatilidad? ¿Cuando el parámetro seleccionado se aleja mucho de los valores de ciclos anteriores?
Eso empieza a decirme mucho más sobre el comportamiento del sistema que el resultado agregado.
Los costes deben viajar dentro del test
Si el sistema opera con alta frecuencia, una estrategia que parece estable antes de costes puede dejar de serlo cuando introduces spread, comisión y slippage.
Si utiliza CFDs y mantiene posiciones overnight, también puede existir financiación.
El walk-forward no te protege de un modelo de costes irreal.
Si estás desarrollando el sistema para FX o CFDs, este es un buen momento para contrastar el supuesto del backtest con las condiciones del intermediario que realmente estás considerando. Pepperstone ofrece actualmente MT4, MT5, TradingView, cTrader y su propia plataforma; las condiciones dependen del producto, cuenta y entidad aplicable.
Puedes revisar Pepperstone y sus condiciones actuales desde nuestro enlace. Antes de trasladar costes al backtest, yo comprobaría específicamente el instrumento, spread o comisión, financiación cuando corresponda y condiciones para tu residencia.
Qué sería una buena señal en un Walk-Forward Analysis
No existe un “aprobado” universal.
Para mí, un resultado interesante es aquel en el que la ventaja no depende de haber acertado una única ventana, un único parámetro o un periodo extraordinario.
Quiero ver que los tramos out-of-sample, tomados en conjunto, conservan una lógica económica razonable; que el drawdown no cambia de escala de forma inexplicable; que los resultados no colapsan en cuanto abandonamos la muestra optimizada; y que los parámetros seleccionados no saltan constantemente entre extremos sin una razón comprensible.
Ahora imagina lo contrario.
Tienes ocho ciclos. Siete pierden dinero y uno gana muchísimo porque coincidió con un movimiento excepcional.
El resultado total quizá siga siendo positivo.
¿Dirías que el walk-forward confirmó estabilidad?
Yo no lo haría basándome únicamente en el total.
También tendría dudas si cada ciclo necesita parámetros completamente distintos. Puede existir un sistema legítimamente adaptativo, claro. Pero también puede ser una señal de que el optimizador está persiguiendo el ruido del último periodo.
El Walk-Forward Analysis no elimina la necesidad de pensar.
La hace más difícil de evitar.
El gran error: contaminar el out-of-sample después de verlo
Este es uno de los errores más peligrosos porque puede ocurrir sin que te des cuenta.
Haces el WFA.
No te gusta lo que ves.
Entonces añades un filtro.
Repites exactamente el mismo histórico.
Mejora.
Añades otra condición.
Vuelves a correrlo.
Mejora otra vez.
Después de veinte iteraciones declaras que tienes unos magníficos resultados out-of-sample.
¿Los tienes realmente?
Cada ejecución individual pudo haber respetado formalmente la separación IS/OOS. Pero tú ya conocías los resultados de esos periodos cuando modificaste el sistema.
La información se filtró por medio del investigador.
Has convertido poco a poco el conjunto de validación en parte del proceso de desarrollo.
Este problema está estrechamente relacionado con el overfitting y con el concepto más amplio de data snooping.
Por eso, si has hecho muchas iteraciones de investigación, puede tener sentido conservar al final un bloque completamente intacto que no hayas consultado durante el desarrollo.
No porque otro bloque de datos solucione mágicamente el problema, sino porque necesitas alguna evidencia que todavía no haya influido en tus decisiones.
También puedes sobreoptimizar el propio Walk-Forward Analysis
Este error es más sutil.
Imagina que pruebas:
ventanas de entrenamiento de 12, 24, 36 y 48 meses;
OOS de uno, tres, seis y doce meses;
rolling y anchored;
cinco funciones objetivo;
distintos rangos de parámetros;
diferentes fechas de inicio.
Y al final eliges la configuración de WFA que produce la mejor curva histórica.
¿Qué has hecho?
Optimizar el optimizador.
El mismo problema reaparece un nivel más arriba.
No significa que esté prohibido estudiar distintas configuraciones. Significa que debes reconocer que cada decisión añadida después de observar resultados consume parte de la independencia de tu evidencia.
La solución no es utilizar un walk-forward más complejo.
Es definir previamente todo lo que puedas justificar previamente.
Un fold no es necesariamente una nueva muestra independiente
Otro matiz que suele perderse.
Si utilizas una ventana rolling de 36 meses y la mueves seis meses, dos ventanas consecutivas comparten 30 meses de datos.
Por tanto, tener diez ciclos no significa automáticamente que tengas diez experimentos estadísticamente independientes.
Tampoco las rentabilidades financieras suelen comportarse como observaciones completamente independientes.
El WFA mejora enormemente la estructura temporal de la validación, pero no convierte por arte de magia un histórico limitado en información infinita.
Por eso me interesa más la diversidad real de condiciones que atraviesa el sistema que contar folds sin contexto.
Cuidado con el look-ahead escondido
En un buen walk-forward, cada decisión debe construirse exclusivamente con información que habría estado disponible en ese punto del tiempo.
Eso parece obvio, pero el look-ahead bias puede entrar por sitios bastante menos evidentes que utilizar directamente el precio futuro.
Por ejemplo, una clasificación de activos creada usando información posterior, un indicador calculado incorrectamente, datos fundamentales con fechas de publicación mal tratadas o un universo de acciones construido sabiendo qué empresas sobrevivieron hasta el final pueden contaminar el proceso.
Puedes tener unas ventanas perfectamente dibujadas y un backtest metodológicamente roto.
Walk-forward no arregla malos datos.
Tampoco arregla reglas ambiguas ni errores en la simulación de ejecución.
Walk-Forward Analysis no es lo mismo que encontrar “el mejor parámetro”
Este cambio mental me parece fundamental.
Imagina que el parámetro 20 fue óptimo tres veces, el 22 dos veces y el 25 cuatro veces.
La pregunta menos interesante sería:
“Entonces, ¿cuál debo utilizar?”
La pregunta que yo haría es:
“¿Por qué un sistema razonablemente robusto necesita que acertemos exactamente entre 20, 22 y 25?”
Si pequeñas variaciones destruyen la expectativa, probablemente el problema es más profundo que escoger mejor.
Por eso la sensibilidad de parámetros, que ya trabajamos antes, y el walk-forward se complementan tan bien.
El análisis de sensibilidad te pregunta si existe una región estable.
El walk-forward te pregunta si el proceso de selección sigue funcionando cuando avanzas cronológicamente.
Son dos preguntas distintas sobre el mismo problema: qué tan dependiente es tu sistema de haber construido una explicación perfecta del pasado.
Walk-Forward Analysis y la ejecución real
Aquí conviene mantener dos mundos separados.
Una cosa es validar históricamente el proceso de selección de parámetros.
Otra es comprobar que puedas ejecutar el sistema correctamente en las condiciones actuales.
Un resultado walk-forward no demuestra que obtendrás los mismos fills, spreads o slippage en una cuenta real. Tampoco reproduce presión psicológica, fallas operativas o condiciones que no existan en tus datos históricos.
Por eso una cuenta demo puede ser útil más adelante para comprobar la implementación y detectar problemas de ejecución, pero una demo no sustituye el Walk-Forward Analysis, igual que el Walk-Forward Analysis no sustituye una prueba de ejecución.
Pepperstone indica actualmente que permite abrir una cuenta demo y acceder a distintas plataformas, entre ellas MT4, MT5, TradingView y cTrader.
Cuando llegue el momento de pasar del research a una prueba práctica, puedes consultar Pepperstone y abrir una demo desde aquí. Los CFDs son productos apalancados y de alto riesgo, así que el objetivo de esa fase debería ser validar proceso y ejecución, no acelerar el tamaño de las posiciones.
Lo que el Walk-Forward Analysis no puede demostrar
Un buen WFA puede darte mucha información.
Pero no puede decirte que una estrategia seguirá funcionando.
Todo sigue siendo histórico.
Los regímenes que aparecerán mañana pueden diferir de los que existen en tu muestra. Las relaciones entre variables pueden cambiar. Los costes pueden hacerlo. La liquidez también.
Además, el walk-forward reproduce una secuencia histórica concreta. No responde por sí solo a preguntas como qué habría ocurrido si las operaciones hubieran aparecido en otro orden o qué rango de drawdowns sería razonable dada la distribución observada.
Eso pertenece a otra herramienta.
También hay una diferencia entre comprobar esta pieza concreta y evaluar la robustez completa de un sistema de trading. La robustez final exige reunir varias pruebas y comprobar si cuentan una historia coherente.
No quiero adelantar esa lección porque todavía tenemos una herramienta importante en medio.
Antes de pasar a Monte Carlo, quédate con esta idea
Un backtest tradicional puede preguntarte:
¿Qué habría ocurrido con estas reglas en este histórico?
Una optimización puede preguntarte:
¿Qué parámetros funcionaron mejor dentro de este histórico?
El Walk-Forward Analysis añade una pregunta mucho más exigente:
Si hubiera tenido que elegir esos parámetros una y otra vez sin conocer el siguiente periodo, ¿el proceso habría seguido produciendo resultados razonables?
Ese es el verdadero valor del walk-forward.
No hacer que la curva se vea mejor, sino obligar a tu sistema a enfrentarse repetidamente con información que no utilizó para ajustarse.
Y también por eso un WFA malo puede ser más valioso que un backtest espectacular. Si el sistema se deshace en cuanto sale de muestra, acabas de descubrir algo antes de arriesgar capital real.
El siguiente paso del curso es la simulación Monte Carlo. Ahí cambiaremos la pregunta: dejaremos de avanzar cronológicamente por un único histórico y empezaremos a estudiar qué puede enseñarnos la distribución de muchos resultados posibles sobre riesgo, rachas y drawdown.
Si después quieres preparar un entorno donde practicar la implementación, puedes revisar Pepperstone y consultar la promoción disponible mediante nuestro enlace. Las condiciones y el importe de cualquier promoción pueden cambiar, así que conviene comprobarlos antes de abrir la cuenta.











