TEST THE ASSUMPTIONS
Strategy resilience lab
How much does the sequence of trades matter? Resample your realised net R results, preserve short runs with moving blocks, and compare smaller risk with higher execution costs. Every result is conditional on your sample and model.
No account required. This module reads files in your browser and does not send their contents to a server or save them in browser storage. Other site scripts follow the site privacy policy.
CONDITIONAL MODEL OUTPUT
Resilience report
P5–P95 contains the central 90% of these simulated results. It is a scenario band, not a confidence interval for future equity or a bound on real losses. Model error is not quantified by this band: changing regimes, missing costs and sample selection can move actual outcomes outside it.
Base scenario percentiles
| Measure | P5 | P25 | P50 | P75 | P95 |
|---|
Risk and extra-cost sensitivity
All five cases use the same sampled observations and seed. Cost stress is added to the base cost. A lower sampled drawdown does not establish safety.
| Scenario | Risk % | Extra cost R | Median final equity | P95 max DD % | End below start % |
|---|
Exports include the model settings, sample size and aggregate statistics, but no input sequence, file name, account identifier or other CSV columns. Review any report before sharing. Reproducing the run also requires your exact R sequence in its original order.
Methodology and reproducibility
Version 1.0.0, 26 October 2026. Each path resamples the empirical distribution of supplied trades with replacement. IID draws one trade at a time. Moving-block bootstrap draws a block start uniformly from 0 to N − L and copies L consecutive trades; the final block is truncated to the requested path length. Block length 1 is equivalent to individual resampling. At L = N, every path repeats the original full sequence and the apparent uncertainty collapses. Test several plausible lengths; a chosen block length is an assumption, not an estimate of the true dependence horizon.
Equity after a trade is max(0, equity × [1 + risk/100 × (sampled net R − additional cost R)]). Risk is a constant fraction of current simulated equity. Equity at zero stays zero; this absorbing floor is a model convention and does not model contractual liability or negative balances. Maximum drawdown is the largest percentage decline from a running equity peak, including the starting equity. It differs from a loss relative to starting capital.
Check the arithmetic: starting at 100 with risk 10%, observations −1 R then +2 R and no extra cost gives 90 then 108, with 10% maximum drawdown. With another 0.05 R cost, the same trades give 89.5 then 106.9525. The order and equity compounding matter.
Quantiles use linear interpolation at index (paths − 1) × p after sorting. The generator is Mulberry32 with a 32-bit unsigned integer seed. Identical version, sequence, settings and seed reproduce the same run. Sensitivity cases restart the seed to use common random draws. Five cases cost 5 × paths × trades steps, limited to 5,000,000 in total. More paths reduce simulation noise at fixed assumptions; they do not remove model error or repair a small, selected or dependent sample.
These percentiles are not forecasts, validated probabilities of future outcomes or statistical confidence bounds for a strategy. Historical R values may omit rare gaps, execution failures, simultaneous portfolio exposure or different market regimes. The tool does not estimate uncertainty in the empirical distribution itself. Separate an untouched evaluation sample and record your chosen assumptions in the strategy testing protocol.
Method references: Efron (1979), Bootstrap Methods: Another Look at the Jackknife; Künsch (1989), The Jackknife and the Bootstrap for General Stationary Observations. These describe resampling methods, not a validation of this trading model.