Block Bootstrap of Return Series
A way to resample historical returns that preserves their day-to-day dependence — volatility clustering, autocorrelation — by drawing whole contiguous chunks instead of individual days, which a naive resample would destroy.
A standard bootstrap builds a resampled dataset by drawing individual observations at random, with replacement, from the original data. That works well for independent data — but daily returns aren't independent. Volatility clusters (calm days tend to follow calm days, turbulent days follow turbulent days) and some strategies have autocorrelated returns from slow-moving signals. If you resample individual days at random, you scramble that structure completely: a resampled "year" built from shuffled independent days will look far calmer, on average, than any real year, because it can never reproduce a real multi-day volatility spike. The block bootstrap fixes this by resampling whole contiguous chunks of consecutive days instead of single days, preserving the short-term dependence within each chunk.
How it works
Pick a block length — say, 20 trading days. Instead of drawing single days, draw whole 20-day blocks at random, with replacement, from the historical return series, and concatenate enough blocks to build a resampled series of the desired length. Because each block is a real, contiguous stretch of history, any volatility clustering or autocorrelation that existed within those 20 days survives into the resampled series; what gets scrambled is only the sequence of one block relative to the next. The block length is a real tradeoff: too short, and you're back to breaking up dependence that runs longer than the block; too long, and you don't get enough distinct blocks to build a genuinely varied set of resampled scenarios, and the whole procedure starts to resemble reshuffling a small number of large chunks rather than a rich simulation.
Worked example: resampling a volatile month, block by block
A five-year daily return series includes one especially volatile month, March 2020, with ten straight days of ±4% moves. A block bootstrap with 20-day blocks might, in a given resampled series, either include that entire March 2020 block intact (reproducing the full ten-day volatility cluster in one contiguous stretch) or exclude it entirely, but it can never chop it up and scatter individual days from it randomly through a calm stretch, since blocks are drawn whole. Across a thousand resampled series, some will happen to draw the March 2020 block two or three times (making the resample unusually volatile), others won't draw it at all (making the resample calmer than history) — the resulting spread of outcomes reflects genuine sampling uncertainty about how often such an episode recurs, while still respecting that when it does occur, it clusters the way it really did.
What this means in practice
Block bootstrapping underlies many of the more rigorous overfitting checks used in quant research, including White's Reality Check and various significance tests for backtest results, precisely because it generates resampled data that respects the time-series dependence real returns have. It's also used more directly to build confidence intervals around a strategy's Sharpe ratio or drawdown that don't understate uncertainty the way a naive independent-day bootstrap would. The block-length choice should be informed by how long the return series' actual autocorrelation or volatility clustering typically persists — a strategy trading a slow-moving signal needs longer blocks than one trading fast mean-reversion.
Resampling individual days destroys the volatility clustering and autocorrelation real return series have. The block bootstrap draws whole contiguous chunks instead of single days, preserving short-term dependence within each block while still randomizing the overall sequence.
Choosing too short a block length quietly reintroduces the exact problem the block bootstrap exists to solve — if real dependence in the data persists longer than the chosen block, that structure still gets broken up across block boundaries, just less obviously than with single-day resampling.
Related concepts
Practice in interviews
Further reading
- López de Prado, Advances in Financial Machine Learning, ch. 12