Two weeks ago, we looked at an example of using walk forward optimization by VBO Systems that tested a volatility breakout system. While this article was interesting from a nuts and bolts aspect, it left a lot on the table in terms of explanation.
The author has since expanded that post to include a more detailed explanation of exactly what we are trying to do with walk forward optimization. This new introduction to the article provides us with some details and background on why walk forward optimization is so effective.
The article starts by listing some of the reasons that systems can lose their edge:
- The system is not based on a valid premise
- Market conditions have changed in a dramatic way that invalids the theoretical premises on which the system was developed
- The system has not been developed and tested with a sound methodology. For instance, (a) lack of robustness in a system due to improper parameters, and (b) inconsistent rules and improper testing of the system using out-of-sample and in-sample data
It continues by explaining how a basic walk forward optimization is conducted:
Walk forward analysis is the process of optimizing a trading system using a limited set of parameters, and then testing the best optimized parameter set on out-of-sample data.
This process is similar to how a trader would use an automated trading system in real live trading. The in sample time window is shifted forward by the period covered by the out-of-sample test, and the process is repeated.
At the end of the test, all of the recorded results are used to assess the trading strategy.
In order to make sure the concept is understood, it is also explained another way:
In other words, walk forward analysis does optimization on a training set; tests on a period after the set and then rolls it all forward and repeats the process.
We have multiple out-of-sample periods and look at these results combined. Walk forward testing is a specific application of a technique known as Cross-validation.
It means taking a segment of data to optimize a system, and another segment of data to validate. This gives a larger out-of-sample period and allows the system developer to see how stable the system is over time.
As we covered in the previous post, there are three main aspects of this process:
- Define in-sample and out-of-sample periods
- Define a robust parameters area
- Execute the walk forward
As you can see, performing a walk forward optimization on a system that you are developing will help you to gain an understanding about how a system will perform in real time, while at the same time finding the optimal parameters for the strategy.