Bootstrap resampling

Bootstrap resampling estimates the uncertainty of a statistic by drawing many new samples of the same size from the observed data with replacement and recomputing the statistic on each. The spread of the recomputed values approximates how much the statistic could vary had a different sample been observed.

Senzoukria · Glossary · Updated September 2026


At a glance

Introduced by
Bradley Efron, 1979
Key feature
Draws WITH replacement: a trade can appear several times, or not at all
Typical output
Percentile interval, e.g. 2.5th–97.5th percentile for 95%
Dependent data
Block bootstrap keeps consecutive observations together

How it works

Take the 50 trade results of a backtest. Draw 50 results at random from that list, putting each one back after it is drawn, so that some trades appear twice and others not at all. Compute the average trade on this artificial sample. Repeat 10,000 times. The 2.5th and 97.5th percentiles of the 10,000 averages form an approximate 95% interval for the average trade. The method needs no assumption that results are normally distributed, which suits trade data with fat tails.

When observations depend on each other, as consecutive trading days often do, drawing single observations breaks that dependence. A block bootstrap draws runs of consecutive observations instead.

Bootstrap versus reshuffling

A reshuffle, or permutation, reorders the observed results without replacement: every trade appears exactly once, only the order changes. It answers questions about sequence, such as how deep the drawdown could have been in another order. The bootstrap creates new combinations: a path may contain the best day three times and never the worst. That is what makes it useful for estimating the uncertainty of an average, and what makes it inappropriate when the question is whether a specific account would have survived the days that actually happened.

In Senzoukria

The desktop deliberately does not bootstrap its prop firm simulations. The source of the Monte Carlo module explains the choice: sessions are shuffled without replacement so the distribution of daily results stays exactly the observed one, because a bootstrap would invent paths with three copies of the best day and none of the worst, an assumption that cannot be defended on a question of account survival. The Gauntlet uses two permutation procedures instead: random sign flips of trade results for the p-value of the Sharpe ratio, and reshuffled trade order for the distribution of maximum drawdowns, each with 10,000 draws. A bootstrap interval of an average can still be computed outside the software from an exported trade list, for example the journal's CSV export.

Limits

  • The bootstrap can only recombine what was observed; it cannot produce a loss larger than the largest one in the sample.
  • On very small samples the resampled distribution is coarse and the interval unreliable.
  • It assumes the sample represents the process; a sample drawn from one market regime says nothing about another.
  • Block length in a block bootstrap is a choice that changes the result.

In the same section

This page in other languages

Frequently asked questions

Why use a bootstrap instead of a formula for the confidence interval?
Formulas based on the normal distribution can be misleading for trade results, which are often skewed and fat-tailed. The bootstrap uses the empirical distribution itself. On large, well-behaved samples both give similar answers; on skewed samples the bootstrap is usually more honest.
Is a Monte Carlo simulation a bootstrap?
Not necessarily. Monte Carlo simply means using random draws. A Monte Carlo that reorders the observed results without replacement is a permutation; one that draws with replacement is a bootstrap. The two answer different questions and give different ranges.

Keep reading