How to read a backtest report: Sharpe, Sortino, CAGR, max DD
Read net profit after costs, profit factor, expectancy per trade, max drawdown next to CAGR, and one risk-adjusted ratio first. Together they say whether the strategy made money after costs, how painful the path was, and whether the edge would survive slightly worse conditions. Win rate, trade count and time in market support those five.
By Soren Huang · Published · updated · Editorial policy
Contents
- Which five numbers in a backtest report matter most?
- What do net profit, profit factor and expectancy tell you?
- Sharpe vs Sortino: what is the difference, and why is trade-level Sharpe tricky?
- Why read CAGR and max drawdown together, never alone?
- What do trade count, time in market and the longest losing streak add?
- How do you read a backtest report line by line?
- Which report numbers mislead most often?
- Frequently asked questions
- References
Which five numbers in a backtest report matter most?
Read net profit after costs, profit factor, expectancy per trade, max drawdown next to CAGR, and one risk-adjusted ratio (Sharpe or Sortino) before anything else. These five answer the three questions that count: did the strategy make money after commission and slippage, how deep was the worst stretch, and would the result survive slightly worse conditions.
A backtest report is a set of measurements of one simulated equity curve. Most of its lines describe the same curve from different angles, so you do not need all of them. You need the ones that cannot be faked by a change in trade size or test length, and you need to read them in pairs. You can check two of them yourself with the free Sharpe ratio calculator and the drawdown calculator.
What do net profit, profit factor and expectancy tell you?
Net profit says how much the strategy made in total, profit factor says how much the winners outweighed the losers, and expectancy says whether each trade has room above its cost. Net profit is the sum of all closed trades after commission and slippage. Profit factor is gross profit divided by gross loss, so a value of 1.0 means the winners exactly paid for the losers. Expectancy is the average result per trade after costs; the win rate and expectancy calculator computes it from win rate and average win and loss.
Hypothetical example
A futures strategy produces gross profit of 60,000 and gross loss of 40,000 over 400 trades. Net profit is 20,000. Profit factor is 60,000 ÷ 40,000 = 1.5. Expectancy is 20,000 ÷ 400 = 50 per trade. If the round-trip cost (commission plus slippage on entry and exit) is 30 per trade and is already included, each trade keeps 50 above its cost. If the 30 is not yet included, expectancy drops to 20, and a small rise in slippage removes most of it.
What a reasonable value looks like depends on how often the strategy trades. After costs, a profit factor close to 1.0 means the edge is thin and a change in slippage can flip the sign. Values between about 1.3 and 2.0 are common for strategies that trade several times a week over many years. A profit factor above 3 on a short test or a small trade count usually means the test is too short or the rules were fitted to the data. Expectancy should be several times the round-trip cost; the article on trading costs in backtests explains why. A large net profit with a profit factor near 1.0 and an expectancy close to the cost per trade is a sign to look closer, not a result.
Sharpe vs Sortino: what is the difference, and why is trade-level Sharpe tricky?
The Sharpe ratio counts every swing in returns as risk, while the Sortino ratio counts only the losing periods, so Sortino does not punish large winning months. Both are risk-adjusted ratios: they divide the average return of a period (usually a month) by a measure of how much the returns of those periods spread out.
The Sharpe ratio is the average return per period divided by the standard deviation of returns per period. The standard deviation is a measure of spread: it is small when every month looks like the average month and large when months differ a lot. Written out:
Sharpe ratio = average monthly return ÷ standard deviation of monthly returns, where "average monthly return" is the mean of the twelve (or more) monthly results and "standard deviation" is how far a typical month sits from that mean. Many reports subtract a cash interest rate (for example a treasury bill yield) from the average first; for a futures strategy on margin the difference is usually small.
The Sortino ratio is the same idea, but the denominator uses only the losing months (the downside deviation). A strategy with a few very large winning months and small, even losses gets a higher Sortino than Sharpe, because Sharpe treats the big winners as volatility.
Both ratios depend on the period used. A Sharpe computed on monthly returns and scaled to one year (multiplied by the square root of 12) is the common reporting convention, and it is the number most traders mean by "annualized Sharpe". Daily returns give a different number for the same equity curve, and the gap grows when returns in one period carry over into the next; Lo (2002) shows how large the annualization error can be. Compare Sharpe ratios only when they were computed the same way.
A Sharpe ratio computed on individual trades is hard to compare across strategies. Trades are not evenly spaced: one strategy may take ten trades in a week and none for a month. The per-trade standard deviation also depends on how many trades there are, so a strategy that takes 200 small trades and one that takes 20 larger trades can end the year at the same place with very different trade-level Sharpe values. Their monthly Sharpe values would be close, because months are evenly spaced and both strategies are measured on the same calendar.
As a rule of thumb for a single futures strategy tested over many years with costs included, an annualized Sharpe from monthly returns near 1 is a respectable research result, and a value above 2 or 3 in a backtest is more often a sign of a short test or of picking the best variant out of many than a sign of a stronger strategy. The deflated Sharpe ratio adjusts the reported value for the number of variants you tried; Bailey and López de Prado (2014) is the source for that adjustment.
Why read CAGR and max drawdown together, never alone?
CAGR alone says how fast the account grew. It says nothing about the hole you had to sit in on the way, so read it with max drawdown. CAGR (compound annual growth rate) is the single yearly rate that would turn the starting balance into the ending balance over the test period, as if growth had been smooth. Max drawdown (often written max DD) is the largest fall from an equity peak to the next low before a new peak, measured in money or as a percentage of the peak.
Hypothetical example
Two strategies both grow 100,000 into about 161,000 over five years, so both have a CAGR of about 10 percent (1.10 multiplied by itself five times is about 1.61). Strategy A's deepest fall from a peak is 12 percent; strategy B's is 35 percent and takes 14 months to recover. CAGR divided by max drawdown is about 0.8 for A and about 0.3 for B. With an account of 100,000, strategy B at one point sits near 65,000 and must still meet margin on every open position.
Read the drawdown in money against the account size you plan to trade, not against the test's starting balance. A 9 percent drawdown on a test account of 100,000 is a nine-thousand hole; on a real account of thirty thousand it is 30 percent, and the margin per contract still has to be covered at the bottom. Also check the recovery time (how long the curve stayed below its old peak). A drawdown that took two years to recover is a different experience from one that took two months, even when the depth is the same. Keep in mind that the worst future drawdown is normally deeper than the worst past one, because the past is one sample; a Monte Carlo test that reshuffles the trade sequence gives a range of drawdowns instead of one number. The free Monte Carlo simulator reshuffles your own trade sequence and returns that range of drawdowns, which you can then set against the account size you intend to trade.
What do trade count, time in market and the longest losing streak add?
These three are not performance numbers, which is exactly why they are useful: they do not change when you add a zero to the position size. Trade count is the amount of evidence; time in market shows where the risk sits; the longest losing streak is what you will have to sit through without touching the rules.
- Trade count. A profit factor of 2.0 from 30 trades is a handful of lucky trades until proven otherwise; the same value from 400 trades across different market conditions is evidence. Fewer trades also means a wider range of outcomes if you reran the same rules on a slightly different history.
- Time in market. Time in market is the share of bars (or hours) during which the strategy held a position. A strategy that is in the market 35 percent of the time carries overnight and news risk for a third of the test; a strategy in the market 95 percent of the time behaves more like a buy-and-hold position with rules on top. Two strategies with the same CAGR and different time in market are using capital very differently.
- Longest losing streak. The longest losing streak is the largest number of consecutive losing trades. It sits inside the max drawdown but is not the same number: a drawdown can be built from alternating small wins and larger losses with no long streak at all. The streak is the number to know before you trade, because nine losses in a row is where most traders start changing rules by hand.
How do you read a backtest report line by line?
Read a report in the order net profit and trade count, then profit factor and expectancy against cost, then max drawdown against CAGR, then the risk-adjusted ratios, then the streak and time in market. Each step either confirms the previous one or sends you back to check it.
Hypothetical example
A futures strategy tested over about two years and eight months with a starting balance of 100,000 reports: net profit 20,000 after costs; 400 trades; profit factor 1.5; expectancy 50 per trade; round-trip cost 30 per trade; win rate 50 percent; average win 300; average loss 200; max drawdown 9,500 (9.5 percent); CAGR about 7 percent; Sharpe 0.9 and Sortino 1.3 (from monthly returns, annualized); longest losing streak 9; time in market 35 percent.
- Net profit and trade count. Twenty thousand over 400 trades is enough evidence to keep reading; the same amount over 25 trades would not be.
- Profit factor and expectancy against cost. Winners outweigh losers by 1.5 to 1, and each trade keeps 50 after a 30 cost. If the whole 30 were slippage and slippage doubled, expectancy would fall to about 20 per trade. That is survivable but thin, so slippage is the first thing to stress-test.
- Max drawdown against CAGR. A 9.5 percent drawdown for about 7 percent a year is a ratio near 0.7. On a real account of fifty thousand the same drawdown is 19 percent, which is the number to compare with your own tolerance.
- Sharpe and Sortino. Sortino is normally above Sharpe because it ignores the spread of the winning months; a gap this wide (1.3 against 0.9) says the winning months spread out far more than the losing months, which fits a strategy with a few large winners. Neither value is high enough to suggest heavy fitting on its own.
- Streak and time in market. Nine losses in a row at an average loss of 200 is about eighteen hundred, far less than the max drawdown, so the drawdown was built from a longer mixed stretch. Time in market of 35 percent means most of the test was spent flat, so the 9.5 percent drawdown came from roughly a third of the calendar.
What to check next: rerun the same rules with double the slippage, look at the monthly results to see whether the net profit comes from two or three months, and run a walk-forward analysis to see whether the settings hold on data they were not tuned on.
Which report numbers mislead most often?
Win rate without the average win and loss, net profit before costs, Sharpe from a short test, an average trade near the cost per round trip, and a drawdown measured only on closed trades are the lines that most often make a weak strategy look strong. Each one has a cross-check in the same report.
| Number that misleads | Why it misleads | What to check instead |
|---|---|---|
| Win rate alone | A 70 percent win rate with small wins and large losses loses money; the win rate hides the size of the average loss. | Average win against average loss, or the expectancy line. The trade-off between win rate and risk reward ratio decides whether a high win rate is worth anything. |
| Net profit before costs | Costs scale with the trade count, so the strategies with the best gross profit are often the ones with the most trades and the smallest edge per trade. | Net profit after commission and slippage, and expectancy against round-trip cost. |
| Sharpe from a short test | With few months the standard deviation is unstable, and one good quarter can produce a Sharpe above 3. | The number of months and trades behind the ratio, and whether it was computed on monthly, daily or per-trade returns. |
| Average trade near the cost | A small change in slippage flips the sign of every trade and the whole report. | Expectancy divided by round-trip cost; rerun with double slippage. |
| Closed-trade drawdown | Some reports measure drawdown only at trade exits, so an open position that was deep underwater before recovering never appears. | Drawdown including open positions, measured on every bar. |
What this means if you use AlphaPrime (Valynox): the Performance Report shows equity, drawdown, the trade list, periodic performance and long and short analysis for every strategy you keep. Fees, slippage and next-bar execution are already included in each evaluation, so the numbers are already net; read them in the order described here.
Frequently asked questions
What is a good Sharpe ratio for a futures trading strategy?
For a single strategy tested over many years with costs included, an annualized Sharpe computed from monthly returns near 1 is a respectable research result. Values above 2 or 3 in a backtest more often come from a short test or from choosing the best of many variants than from a stronger edge. Always check which period the ratio was computed on before comparing two strategies.
What is the difference between the Sharpe ratio and the Sortino ratio?
Both divide the average return per period by a measure of spread. Sharpe uses the standard deviation of all periods, so large winning months count as risk. Sortino uses only the losing periods, so a strategy with a few very large winners and even losses scores higher on Sortino than on Sharpe.
What is a good profit factor?
Profit factor is gross profit divided by gross loss. After costs, a value near 1.0 means the edge is thin, values between about 1.3 and 2.0 are common for strategies that trade often over long tests, and a value above 3 on a short test or a small trade count usually points to overfitting. Read it together with the trade count and with expectancy against round-trip cost.
What does max drawdown mean in a backtest?
Max drawdown is the largest fall from an equity peak to the following low before a new peak is made, in money or as a percentage of the peak. It describes the worst stretch a trader would have lived through during the test. Compare it with the account size you plan to trade and with the CAGR, and note how long the curve took to recover.
Is CAGR the same as average annual return?
No. CAGR is the single yearly rate that turns the starting balance into the ending balance over the whole test, so it accounts for compounding. The simple average of yearly returns is usually higher than CAGR when returns vary from year to year, because large losses reduce the base that later gains grow from.
References
- Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52.
- Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-Normality. The Journal of Portfolio Management, 40(5), 94–107.

