Walk-Forward Optimization¶
Walk-forward optimization evaluates strategy parameters across rolling or anchored windows and measures out-of-sample robustness.
Configuration¶
WalkForwardConfig fields:
window_type:Rolling,Anchored,RegimeAware.in_sample_period,out_of_sample_period,step_size.optimization_method:Grid,Random,Bayesian.max_trialsfor random/bayesian search.fitness_metric:sharpe,sortino,calmar,return,drawdown.maximizeboolean.retrain_regime_each_windowboolean.optimize_per_regimeboolean.disable_default_regime_trainingboolean.num_parallel_backtestsinteger.enable_overfitting_detectionboolean.max_is_oos_ratiodouble.initial_capital.bar_type.periods_per_year.
Parameter Definitions¶
Each parameter uses a ParameterDef:
name.type:Int,Double,Categorical.min_value,max_value,step.categoriesfor categorical.distribution:Uniform,LogUniform,Normal.
Output¶
WalkForwardResults include:
- In-sample and out-of-sample results per window.
- Parameter evolution and stability scores.
- Overfitting diagnostics and efficiency ratios.
- Regime distribution and regime-aware performance.
In Python, pass WalkForwardResults directly to the visualization layer:
dashboard = rf.visualization.create_strategy_tester_dashboard(walkforward_results)
app = rf.visualization.create_interactive_dashboard(walkforward_results)
rf.visualization.export_dashboard_html(walkforward_results, "walkforward_report.html")
The dashboard will switch to an optimization-aware layout and add an Optimization tab.
Next Steps¶
python/overview.mdguide/backtesting.md