How to Read a Backtest Report (and Why Results Lie)
A backtest report is a simulation of how a trading strategy would have behaved on historical price data. To read one honestly, look past the headline PnL and interrogate four things: maximum drawdown (the deepest peak-to-trough loss), the number and distribution of trades, the fee and slippage assumptions, and whether the strategy was tuned on the same period it’s being scored on. If any of those look absent, cosmetic, or too clean, the equity curve is telling you a story the market never told.
This piece is the skeptic’s companion to backtesting. If you want the fast, free path to running one, that’s a separate topic. Here we assume you already have a report on screen — from GT App, from our public backtest tool, or from anywhere else — and you need to know what to trust.
The stakes are simple. A great backtest and a profitable live bot are two different objects. Confusing them is the most expensive mistake in retail algo-trading. Every rule below is here because we’ve watched it burn someone.
The first number to check isn’t return — it’s drawdown
Total return is the number a backtest brags about. Maximum drawdown is the number that decides whether you’d have actually held the strategy long enough to earn that return. Drawdown is the largest percentage fall from an equity-curve peak to its next trough, measured over the whole test. A strategy that grew 300% with a 70% drawdown is not a 300% strategy — it’s a strategy you would have turned off during the 70% pit, taken the loss, and never seen the recovery. Return divided by drawdown (a rough Calmar-style ratio) is a better sanity check than return alone. If a report shows a beautiful PnL curve but hides the drawdown figure, treat that as a red flag rather than an oversight. That rule applies to our own GT AI Backtest as much as to anyone: the public tool does not show a drawdown tile yet, so do the check yourself — walk the trade list and the deal markers on the chart and size the worst losing stretch before you trust the headline number.
What a healthy drawdown profile looks like
Drawdowns should be shallow relative to gains, recover in a reasonable number of trades, and not cluster in one market regime. A strategy that made all its money in a single bull leg and gave half of it back in the next chop is not repeatable — it’s a lucky window. Look for many small drawdowns rather than one enormous one; look for recoveries that don’t require a new bull market to complete.
Why a great backtest often does not equal live profit
The gap between simulated and live results has four usual suspects: overfitting, look-ahead bias, survivorship bias, and unmodelled friction. Overfitting means the parameters were tuned so tightly to past data that they describe noise, not signal. Look-ahead bias means the simulation quietly used information that wouldn’t have been available in real time. Survivorship bias means the tested universe excludes assets that failed, delisted, or crashed out — so the sample is rigged toward winners. Unmodelled friction covers fees, slippage, funding rates on perps, and the market-impact cost of your own orders. A backtest that ignores any of these will overstate performance, sometimes dramatically. Reading a report well is largely a matter of asking, for each of the four, how the engine handled it — and treating silence as bad news.
Overfitting: the too-good-to-be-true tell
If a strategy’s PnL doubles when you nudge a parameter by one, and halves when you nudge it back, you don’t have a strategy — you have a coincidence. Robust settings degrade smoothly. When an optimizer produces a single peak that towers over its neighbours, that peak is almost always overfit. Prefer plateaus over spikes.
Look-ahead bias: the invisible killer
A signal computed on a bar’s close must not be filled at that bar’s open or at some better price inside the bar — those prices were gone before the signal existed. Honest engines fill at the earliest price that was actually knowable: either the very close the signal was computed on (modelling “the candle closes, the market order goes out”), or the next bar’s open. GT AI Backtest uses the first convention — signal on bar N, fill at bar N’s close, worsened by slippage when you have it enabled. If you can’t tell from a report when execution happens relative to the signal, you can’t trust the numbers.
Survivorship bias: the winners-only universe
Testing a strategy on “top 100 coins by today’s market cap” is not the same as testing it on “top 100 coins as of each historical date.” The first universe silently excludes every project that pumped and died over the tested years. Any long-biased strategy will look magical against a survivor-only sample. When you read a backtest, check whether the pair list is the same one you’d have picked at the start of the test, or the one hindsight picked for you.
Fees, slippage, and the friction a report either models or hides
Every real trade pays a taker fee, crosses a spread, and moves the price by some tiny amount against you. A backtest that assumes zero friction is a fantasy generator. What matters is not whether the report shows a fee field, but whether the numbers behind it are plausible for your venue and size. GT AI Backtest models both in basis points and always against you — on the entry, on every safety-order add, and on the exit. One honest caveat about our own public tool: the friction override ships switched off, so a default run is a zero-friction run. Enable “Override Fees & Slippage” in the settings and set something realistic — 10 basis points of fees and 5 of slippage is a sensible floor — before you believe the number on the screen. Slippage in most engines, ours included, is modelled as a fixed rate rather than a function of order size, which means results on large notional are structurally optimistic. If you plan to run a strategy with $100k, don’t judge it on a backtest that assumes a $500 order fills at mid.
The perp-specific gotcha: funding
On perpetual futures — including Hyperliquid, the on-chain perps DEX where GT App runs strategies alongside Binance — the exchange charges (or pays) a funding rate every few hours to keep the perp price tethered to spot. Over a long hold, funding can compound into a meaningful drag or tailwind. Most backtest engines, including ours, do not currently model funding on perps. That’s fine to know about; it’s not fine to ignore. A strategy that scalps intraday will barely notice. A trend-follower that sits in a leveraged long for weeks during a hot funding regime can be paying meaningfully more than the backtest suggests. When you read a perp backtest, mentally deduct a funding budget — and if you’re testing on Hyperliquid pairs specifically, check the recent funding history on that market before you launch.
How many trades, and how are they distributed?
A backtest with eight trades over a year is not a strategy — it’s a story. You need enough trades for the statistics to mean something. As a working floor, aim for a triple-digit trade count over the tested window, and check that the wins and losses are spread across the whole period rather than clustered in one regime. A strategy that made all its money in a single three-week window and did nothing else is showing you one lucky trade dressed up as an edge. Look at the deal markers on the chart, not just the summary tiles. If the report doesn’t let you inspect individual trades, you’re reading a marketing artefact, not a diagnostic.
Regime coverage
Twelve months of data that happen to span a bull run will make almost anything look profitable. A report that covers at least one bull, one bear, and one range-bound stretch is far more informative than one that covers 400 days of straight uptrend. GT’s engine keeps about a year of minute-level history per pair; the pair-timeframe combo determines what regime coverage you actually get. Check the date range on the report before you get excited about the PnL.
A quick reference for the five things to check
| Check | Question to ask | Bad answer |
|---|---|---|
| Drawdown | What was the deepest peak-to-trough loss? | Not shown, or larger than you’d hold through |
| Trade count | How many trades, over how long? | Fewer than ~100, or clustered in one regime |
| Fees & slippage | What assumptions did the engine use? | Zero, unspecified, or unrealistic for your size |
| Execution timing | When does a fill happen relative to the signal? | At a price the signal could not have known (same bar’s open, or intrabar), or ambiguous |
| Universe & period | Are pairs and dates chosen without hindsight? | Today’s winners tested on their winning years |
Values above reflect how the GT AI Backtest engine handles each item as of publication; friction settings and available history change over time, so treat the report on screen as the source of truth.
Using a backtest honestly with GT App
A backtest is a hypothesis test, not a promise. The right way to use one is as a filter: strategies that fail the checks above get discarded, strategies that pass earn a small live allocation on demo or paper mode, and only strategies that survive live conditions for weeks earn real capital. In GT App, you can run a backtest, review the deal markers on the chart, and then launch the same configuration on Binance or on Hyperliquid — the latter with the one-signature onboarding of GT Magic if you’re coming in from Telegram. The friction between “looked good in simulation” and “is running with real money” is deliberately low, and that’s exactly why the reading discipline above matters. A report that clears every check is not a guarantee. A report that fails one is a warning you can act on.
Frequently Asked Questions
What is a backtest report?
A backtest report is the output of a simulation that replays a trading strategy over historical price data and records what would have happened. It typically shows total return, win rate, number of trades, average profit per trade, and — when the engine surfaces it — maximum drawdown.
Why do good backtests often fail in live trading?
The four usual reasons are overfitting (parameters tuned to noise), look-ahead bias (using information the trader wouldn’t have had in real time), survivorship bias (testing on a universe of assets that already won), and unmodelled friction (fees, slippage, funding, and market impact). Any one of them can turn a profitable simulation into a losing live strategy.
Which metric matters more, total return or drawdown?
Drawdown, in most cases. Total return tells you how much a strategy made on paper; drawdown tells you whether you’d have psychologically and financially survived the worst stretch. A strategy with a smaller return and a shallow drawdown is often more valuable than a bigger return with a punishing one.
How many trades should a backtest include to be meaningful?
As a working floor, aim for at least a triple-digit trade count over the tested window, spread across different market regimes. Fewer than that and you’re reading anecdote, not evidence.
Does GT AI Backtest model fees and slippage?
Yes, once you switch it on. Enable “Override Fees & Slippage” in the settings: both are then applied on entry, on every safety-order add, and on exit, always in the worse direction — 10 basis points of fees and 5 of slippage is a reasonable starting assumption. With the override off the run models zero friction, so read a default report accordingly.
Does the backtest account for perpetual funding rates?
No — funding on perpetuals is not currently modelled. For short-horizon strategies the effect is small; for strategies that hold leveraged positions across many funding windows, especially on Hyperliquid, you should treat the reported PnL as an upper bound and check recent funding history on the market you plan to trade.
Can I trade the strategy on Hyperliquid after backtesting it?
Yes. GT App launches strategies on Binance and on Hyperliquid — the latter is a first-class venue that most rival bots don’t support. From Telegram, GT Magic connects a wallet with one signature and keeps custody with you, so the same configuration that passed your backtest can go live on Hyperliquid without an exchange account.
Read the report, then trust the live account
A backtest is the cheapest experiment in trading and the most seductive one. Read it the way you’d read a scientific paper: skeptically, methodically, and with a bias toward disbelieving the result until it survives conditions the paper didn’t test. When it clears the checks — drawdown, trade count, friction, execution timing, universe — put a small live allocation behind it and let the market grade the work. Start a run in GT App, review the backtest, and take a strategy from simulation to a real account on Binance or Hyperliquid when the numbers earn it.