1-Year Rolling Windows: For every trading day in history, we calculate a 1-year return by finding the price change 365 days later. This creates thousands of overlapping samples.
Adjacency Mapping: Each 1-year period is linked to the specific return period that starts where it ended, allowing us to follow history chronologically.
Block Stitching: For each simulation:
Pick a random starting day from history.
Follow the map for a random "block" of 3 to 8 consecutive years.
When a block ends, jump to a new random day and repeat until the end of the simulation.
Statistical Integrity: This preserves local momentum and volatility clusters found in real data, while providing massive diversity via daily rolling starts.