Why train-test splits fail here
A random or single shuffled split assumes each row is independent. Market data does not behave that way. Regime shifts, volatility clustering, and changing feature distributions all push future information into the past if you let the split ignore time.
What walk-forward changes
Walk-forward keeps training on past data, validates on the next block, then rolls the window forward and does it again. The model retrains as the market changes, so you can see whether the edge survives a live-style sequence of decisions instead of one frozen cut.
- No future leakage. The model only sees what existed at the time.
- More than one answer. You get several windows, not one lucky split.
- Threshold drift shows up. Score magnitudes are allowed to move.
When a train-test split is still useful
A single chronological split is still fine as a first pass. It is simple, fast, and easy to explain. But it is a snapshot, not a stress test. If the signal matters, you usually want the rolling version too.
The blunt rule
If the data has time in it, start with walk-forward. Use a train-test split only if you are checking plumbing, not trust.
Common mistakes
- Shuffling bars. That destroys the thing you are trying to measure.
- Reusing the validation cut. Once you tune on it, it stops being a test.
- Ignoring later folds. One good window can hide a bad live path.