How to Backtest a Portfolio (and Its Limits)
Updated ·5 min read·Reviewed by the StockTools.ai Research Team
- ▸Backtesting replays a portfolio through one specific stretch of market history to see how it would have performed — it is not a forecast.
- ▸The core readout is a handful of numbers: CAGR (growth rate), max drawdown (worst peak-to-trough loss), volatility, and Sharpe ratio (return per unit of risk).
- ▸The biggest blind spot is overfitting to the one history that happened, compounded by survivorship bias when a dataset quietly drops funds and tickers that failed.
- ▸Monte Carlo simulation is the forward-looking complement — it generates thousands of possible futures instead of replaying the single past — but its normal-distribution assumption tends to understate real markets’ fat-tail crashes.
- ▸Read any backtest, yours or someone else’s, as one data point about one past, not a guarantee about your future.
What backtesting actually does
A backtest takes a portfolio — a specific mix of holdings and weights, say 60% a US stock index and 40% a bond index, rebalanced once a year — and replays it against real historical prices to see what would have happened to a dollar invested at the start. The output is a chart of portfolio value over time plus a set of summary statistics, built entirely from the one sequence of returns that actually occurred.
That distinction matters more than it sounds. A backtest is not a model of "how this portfolio behaves" in any general sense; it is a record of how it behaved during one particular run of history, with one particular order of good years and bad years, one particular set of recessions and rate cycles. Change the start date by even a few years and the same portfolio can produce a noticeably different story, because you have swapped in a different slice of the past.
The numbers you actually read
CAGR (compound annual growth rate) compresses the whole run into one average yearly return — useful for comparing two portfolios at a glance, but it hides the ride entirely. A portfolio that grinds up steadily and one that crashes 40% then rockets back can post the same CAGR while being completely different to actually hold. Max drawdown fills that gap: it is the largest peak-to-trough decline the portfolio experienced, the number that tells you what the worst moment actually felt like, in percentage terms, before any recovery began.
Volatility (usually the standard deviation of returns) measures how much the portfolio swung year to year or month to month around its own average. Sharpe ratio then combines return and volatility into one figure — excess return over a risk-free rate, divided by volatility — as a rough answer to "how much return did this portfolio deliver for the bumpiness it put you through." A higher Sharpe is generally better, but it is calculated from the same single historical path as everything else, so it inherits the same limits.
The big failure mode: overfitting one history
The trap that catches most amateur backtests is curve-fitting: tweaking a strategy’s rules — which assets, which weights, which rebalancing schedule, which entry signal — until the backtest looks great, without noticing that you have simply found the combination that happened to fit that one stretch of history best. A strategy tuned this way can look outstanding on the data it was built from and fall apart the moment it meets a future that plays out differently, because it was never actually good, only well-matched to the past.
Survivorship bias compounds the problem quietly. Many historical datasets, especially for individual funds and stocks, only include entities that still exist today — the ones that got liquidated, delisted, or merged away often drop out of the record entirely. A backtest built on a survivor-only universe systematically overstates how well an average pick would have done, because it silently excludes every pick that failed badly enough to disappear.
Why simulating many futures is a useful complement
A backtest answers "how would this have done in the past that actually happened." Monte Carlo simulation answers a different question: "across many plausible futures built from my assumptions, what range of outcomes should I expect?" Instead of replaying one historical sequence, it draws thousands of random return sequences from a distribution you specify — an expected return and a volatility — and shows you the spread of results, from unlucky to lucky, rather than a single verdict.
Neither approach is strictly better; they fail in different directions. Backtesting is anchored to one real, internally consistent history but generalizes poorly beyond it. Monte Carlo generalizes across many futures but typically assumes returns are drawn from something close to a normal (bell-curve) distribution, which understates how often real markets produce extreme moves — actual return distributions have fatter tails than the math assumes. Used together, a backtest tells you what one past looked like in detail; a simulation tells you how wide the range of plausible futures really is.
A skeptic’s checklist for reading any backtest
Before trusting a backtest — anyone’s, including your own — check the basics: what date range was used, and does the story change if you shift the start or end by a few years? Does the strategy have very few free parameters, or does it look like it was tuned against exactly this data until the results improved? Does the dataset plausibly include assets that failed, or only survivors? Are trading costs, taxes, and realistic rebalancing frictions accounted for, or is it a frictionless paper exercise?
Then weigh what the summary numbers are actually telling you: a strong CAGR paired with a brutal max drawdown means real money would have gone through a rough stretch most people would not have held through calmly. A high Sharpe ratio calculated over a short or unusually calm window says less than the same Sharpe over a longer span that includes at least one real crisis. None of this makes backtesting useless — it is a legitimate way to sanity-check an idea against real history — it just means treating the output as one informative data point, not a verdict.
FAQ
Does StockTools.ai have a portfolio backtester?
No. Historical backtesting requires long-run, point-in-time price and fundamentals history that is expensive to license, and we deliberately do not pay for it. What we do have, free and live, is a Monte Carlo simulator that stress-tests a portfolio against thousands of randomized possible futures instead of one historical past — a different, forward-looking way to reason about risk.
Is a backtest a prediction of future returns?
No. It is a record of how a portfolio would have performed during one specific stretch of history. Markets rarely repeat the exact same sequence of events, so a strong backtest is evidence a strategy is not obviously broken, not a promise it will repeat that performance.
What is survivorship bias, in plain terms?
It is the distortion that appears when a historical dataset only contains things that still exist today. Funds that were liquidated, stocks that were delisted, and strategies that were abandoned tend to vanish from the record, which makes the surviving population look better on average than the full original population actually was.
How is Monte Carlo simulation different from backtesting?
A backtest replays one real historical sequence of returns. A Monte Carlo simulation generates many random sequences from a distribution you specify — an expected return and volatility — and shows the range of outcomes across all of them. Backtesting shows you one real past in detail; Monte Carlo shows you the spread of plausible futures, with the tradeoff that its normal-distribution assumption tends to underweight rare, extreme crashes.
What is a reasonable Sharpe ratio to see in a backtest?
There is no universal cutoff, but above roughly 1.0 is often considered decent for a diversified portfolio and above 2.0 is unusually strong over a long period. Treat any single Sharpe figure with caution — it depends heavily on the exact time window used, and a suspiciously high number over a short window is more often a sign of overfitting than of real skill.
Put it to work
Related guides
More to learn
Educational only — not financial advice. Concepts simplified for clarity; markets are messier than definitions.