Backtest metrics: what each number means
Updated:
The Backtest page shows two levels of numbers: four big cards at the top and detail tiles below. Below, in turn, is what each number means, how it is calculated and where people misread it. All figures are calculated from closed trades only, so running again with the same settings gives the same result. For the method itself, read the article on the crypto backtesting tool.
Page header
At the top you see the period, the deposit and, if you switched off "Fees and funding", the note "fees and funding are off". The result is then flattering.
The four big cards
- Final equity: the deposit plus the sum of net results of all closed trades. "Realized" means trades still open at the end are not counted.
- Return: the change in capital as a percentage of the starting deposit, again from closed trades only. It is not a forecast.
- Win rate: the share of closed trades with a net result above zero, as a percentage. The number of closed trades is shown under it. A high win rate is not automatically good: you can win small amounts often and lose a lot rarely.
- Max drawdown: the biggest fall in capital from the previous high, in percent and dollars. Trades are taken in order of closing. It measures the worst stretch you would have had to live through.
Detail tiles
- Take-profits in profit: the number of trades that closed entirely on take-profits, and the average result of such a trade in dollars and as a percentage of its size.
- Breakeven: the number of trades that closed on the stop after it was moved to breakeven, and the average result: see how a breakeven stop loss works. The average can be slightly positive (take-profits had already taken a profit) or slightly negative.
- Stop-losses: the number of trades that ended on a stop: both "stop-loss" and "partial take-profit, then stop". So the average result of stops can be positive, not only negative: a partial take profit could have outweighed the stop. The average is shown in dollars and in percent.
- Max stop-losses in a row: the longest run of stops in order of trade closing. It helps to imagine how you would feel during that time and whether the risk limits would have kicked in.
- Trading volume: the sum of the entry sizes of all trades, in dollars.
- Open at the end: trades that had not closed when the history ended. They are not included in the totals.
- Max at once: the largest number of positions open at the same moment. Next to it is "peak margin": the largest total margin at one moment. It is counted from open and close events, so a short spike during a mass pump is not smoothed away.
- Peak load: peak margin relative to the deposit. If it is below the deposit, a percentage is shown ("fits without extra leverage"). If it is above, you see "needs X x leverage": the peak positions exceed the deposit, and on a real account you could not have opened that many at once.
- Orders not filled: signals that did not become trades because the price did not return to the entry order in the allowed time.
- Signals found: how many pumps the detector found. Next to it, "skipped by limits": how many of them were rejected by restrictions (one position per coin, pause per coin, maximum positions, margin limit and so on).
- Ambiguous minutes: the number of closed trades where, within one one-minute candle, the price touched both the stop and the take profit. In such cases the backtest assumes the stop triggered. That is a cautious assumption, but it is an estimate, not knowledge.
- Coins in the sample: how many coins were analyzed.
The "Latest trades" table
Up to the 25 most recent are shown. Columns: Coin, Entry, Exit, Reason, Fees, Funding, Net. The reasons are the same as on the Trades page: see the Trades page and exit reasons. The List and Chart switch shows the cumulative result.
What is built into the calculation
- Fees: 3.6 basis points for an entry as a maker order, 5 for a take profit, 10 for a stop (1 basis point is 0.01%).
- Stop slippage: 10 basis points against you (only when fees and funding are on).
- Funding: from historical rates.
- A breakeven stop takes effect not in the same minute the take profit filled but in the next one, because on the exchange it is a cancel and a new placement.
- Real fees on the exchange depend on your tier, so the numbers in the calculation are assumptions.
The service's warning
If there are fewer than 30 closed trades, a red message appears under the metrics: on a sample that small, the difference between good and bad settings cannot be told from chance. Load more history or widen the period. At the bottom there is also always a reminder that past results do not guarantee future ones.
Common wrong conclusions
- Looking only at "Return". Look also at drawdown, runs of stops and peak load.
- Choosing settings by the best number out of dozens of attempts. That is fitting to history.
- Ignoring "Ambiguous minutes" and "Orders not filled": the first show how much the result depends on an assumption, the second honestly say how many signals never became trades.
- Believing the backtest accounted for everything: it cannot see the order book, the order queue or exchange failures.
- Carrying the result over to a different deposit size or different conditions.
Frequently asked questions
What is win rate in a backtest?
It is the share of closed trades that ended in profit after fees and funding. On its own it tells you little: what also matters is the average gain and the average loss.
What is maximum drawdown?
It is the biggest fall in capital from a previous peak during the run. It shows how unpleasant the worst stretch could have been.
What do "ambiguous minutes" mean?
These are one-minute candles in which the price touched both the stop and the take profit. History cannot tell which came first, so the backtest assumes the stop came first.
Why does "Peak load" show a required leverage?
Because at the peak moment so many positions were open that their total margin exceeded the deposit. On a real account you could not have opened that many at once without extra funds.