I’m losing faith in walk-forward analysis. I have done literally thousands. With enough computing power you can always find combinations which performs well over ten years of historical data, doing hundreds of trades, with minimum drawdown. Always testing out-of-sample.
I don’t know how many walk-forward analysis follower are in this forum but I would bet most of traders earn a living without worrying about WFA.
My guess is you mis-understood the purpose of walk-forward. You must not test thousands of WF combinations to find a profitable one. WF is there to proove the stability of an already working system, not to create one. So, with WF you want to confirm that your system is not overfitted in the first place. If you need thousands of tests it's a sign to me your system is overfitted. By the way, if you really mean what you say: Looking for profitability is not a good otimization criteria. Look for a good sharp ratio, better sortino ratio. Or at least a good ReturnOnRequiredAccount. Thats a better precondition for WF, absolute returns can be created by leverage.
As Kevin Davey explains in his first webinar: If you walk-forward more than a few (a handful) times your OOS data very quickly becomes IS data, and effectively renders your WF useless.
The following user says Thank You to MT4Survivor for this post:
Not only does running WFA many times contaminate the data and eventually render it In Sample. The more iterations or tests you do in order to find a working strategy increases the likelihood that its a fluke result with no future predictive value. For example say we want something with a Sharpe Ratio > 1 with a 95% confidence interval. Well 1 out of 20 you will receive such a system result, due to sheer luck. This type of confidence interval testing / t-testing only works when you did the test ONCE. After you have attempted more than once you have to start to factor that in, or account for your "data mining" bias. From your post it sounds like you did a lot of data mining but ended up not accounting for either the contamination or the high performance results with no future predictive power.
The following user says Thank You to treydog999 for this post:
For a long time I have been discussing on this subject with a friend of mine. My view coincides with what you say, WFA only makes sense over a well-designed and by other means tested strategies, per se does not say much. If I have understood you right. Otherwise trading would be reduce to computer power.
I understand. That’s in line with my intuition too. I gather that if it would suffice to test a WF once, the size of the optimization and test windows are not very important. Otherwise I could “optimize” the size, I mean, to walk-forward with a range of different OOS/IS windows and select that with highest performance. In fact there’s a software, StrategyQuant, which makes such optimization (they call it Walk-Forward Matrix). Do you agree?
What that WFA matrix is doing is basically turning your walk forward into an in sample brute force optimization. Yes you can find stable regions and configure your robustness characteristics. However you have increased your attempts by # of parameters ^ window parameters. Making finding basically any finding in you there actually the opposite of robust and basically just totally optimized. Not to mention completely contaminating your entire data set.
This paper might be of interest to you.
Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance
David H. Bailey, Jonathan M. Borwein, Marcos López de Prado, and Qiji Jim Zhu
The big thing, in my opinion, is that no matter what kind of backtesting you do, you should "incubate" the strategy for a while before trading. Watch how it performs in real time for 3-6 months. The curve fitted, over-optimized systems will usually reveal themselves during this phase.
This approach has literally saved me untold thousands.
The trick is making sure what you test can be replicated in real world - your strategy fills need to reflect reality. For example, if your strategy only uses market orders, and you add in appropriate slippage, there should be a good match between strategy backtest engine and real trading.
If you have any questions please send me a Private Message or use the futures.io "Ask Me Anything" thread
The following 2 users say Thank You to kevinkdog for this post: