What it does
Two thousand independent sequences, each of the length you specify, each trade drawn at your win rate and applied as a percentage of the balance that remains. What comes back is a distribution rather than a number.
The reason to do this is narrow and important: a backtest produces one equity curve. Shuffle the same trades into a different order and the curve looks different — different peak, different worst drawdown, sometimes a different sign. That variation is not noise around the truth; it is the truth, and the single curve you happened to observe is one draw from it.
Read the spread, not the middle
The median is the least useful number here. The rows that matter are the bottom 5% and the top 5%.
A strategy with a genuine edge over 200 trades routinely produces a range where the good outcomes are several times the bad ones — and where a meaningful share of sequences finish below where they started. Both ends came from the same edge and the same sizing. Only the order of the trades differed.
Two things follow:
- A profitable backtest is not evidence of much if the same inputs produce losing sequences a quarter of the time. It may simply have been a good draw.
- A losing quarter is not evidence the strategy broke. It sits inside the range the edge produces.
The drawdown rows are the practical ones
Most traders can describe their target return and have never estimated the drawdown that comes with it.
The simulator gives the median worst drawdown across all runs, and the worst drawdown in the ugliest 5% of them. That second figure is what to plan around — it is the version of the strategy you have a one-in-twenty chance of receiving, and it will arrive eventually if you trade it long enough.
If that number is larger than what you would tolerate before abandoning the method, the sizing is wrong regardless of how good the expectancy is. That is the same conclusion the risk of ruin page reaches from the other direction.
Deterministic on purpose
The random generator is seeded from the input fields, so the same inputs always produce the same result.
Two reasons, and both were requirements rather than preferences. A shared link has to show the reader exactly what you saw, which a fresh random run would not. And the page is pre-rendered into static HTML, so an unseeded generator would produce different output on the server and in the browser.
What it assumes, and how that flatters it
Trades are independent. They are not — losses cluster, because a strategy that suits one regime fails throughout it.
The edge is constant. It is not; win rates drift as conditions change.
Both assumptions make the real world worse than the simulation, not better. Read the output as an optimistic bound, and note that it says nothing about whether your estimated win rate is correct in the first place — that is what the confidence range on the expectancy calculator is for.