Expectancy, profit factor and the distribution of R
Lesson 15 · about 10 min
A backtest produces a list of trades. Everything else, every statistic and every chart, is a summary of that list. The first job when reading results is to look at the list itself before looking at any summary, because summaries hide things. This lesson covers the three summaries that matter most and what each one conceals.
Start with the trade list
Before computing anything, sort the trades by R and look at both ends. Then look at them in date order. Questions to answer:
- Are the biggest five winners a large share of the total profit? If they are, the strategy's result depends on a handful of trades, and the next lesson's sample-size warnings apply with force.
- Do the losers cluster in time? A run of losses in one month suggests a regime the strategy does not handle.
- Is any single trade larger than about 5R in either direction? Check it. Large outliers are often data errors or fill assumptions gone wrong.
| Rank | Date | R | Cumulative share of net profit |
|---|---|---|---|
| 1 | 2021-11-08 | +6.2 | 24% |
| 2 | 2020-03-24 | +5.1 | 44% |
| 3 | 2022-06-16 | +4.4 | 61% |
| 4 | 2021-02-01 | +3.8 | 76% |
| 5 | 2023-10-30 | +3.5 | 89% |
In this example, five trades out of 180 produce 89% of the net profit. Remove any two and the strategy is roughly flat. That is not necessarily disqualifying (trend-following systems look like this by nature) but it is something you need to know, and no headline statistic tells you.
Expectancy
Expectancy is the mean R per trade: total R divided by trade count, or equivalently (win rate × average winner) − (loss rate × average loser). The Risk Management course covers it in detail. In a backtest context, the extra point is that expectancy must be computed after costs, and reported alongside the trade count and the standard deviation of R, because on its own it says nothing about how reliable it is.
Profit factor
Profit factor = gross profit ÷ gross loss, both in R (or dollars). It is the amount won for each unit lost.
| Profit factor | Reading |
|---|---|
| Below 1.0 | Losing |
| 1.0 to 1.2 | Marginal; costs and slippage error will likely eat it |
| 1.2 to 1.6 | Typical for a real, tradeable retail edge |
| 1.6 to 2.5 | Strong; verify it is not overfit or dependent on outliers |
| Above 2.5 on more than 100 trades | Almost always a bug, a leak, or too few trades |
Profit factor and expectancy carry the same information in different shapes. With the numbers from the trend follower in the Risk Management course (35% win rate, 3.0R winners, 1.0R losers), gross profit per 100 trades is 35 × 3.0 = 105R, gross loss is 65 × 1.0 = 65R, and profit factor is 105 ÷ 65 = 1.62. Expectancy is +0.40R. Both say the same thing.
What profit factor hides: it is a ratio, and ratios computed on few trades are unstable. A profit factor of 2.1 on 30 trades can become 1.3 on the next 30 without anything being wrong.
The distribution of R
The most informative single view of a system is a histogram of trade results in R. Bucket the trades in 0.5R steps and count.
| R bucket | Count | Comment |
|---|---|---|
| below −1.5 | 4 | Slippage or gap losses beyond the stop; investigate each |
| −1.5 to −1.0 | 71 | Normal stop-outs |
| −1.0 to −0.5 | 22 | Partial losses, time stops |
| −0.5 to 0 | 15 | Scratches |
| 0 to 0.5 | 12 | Small winners |
| 0.5 to 1.0 | 14 | |
| 1.0 to 2.0 | 22 | |
| 2.0 to 3.0 | 11 | |
| 3.0 to 5.0 | 7 | |
| above 5.0 | 2 | Check they are real |
This is a trend-following shape: a wall of −1R stop-outs, a long thin right tail. A mean-reversion system would show the opposite: a cluster of small winners and a short, fat left tail. Neither shape is better, but each has consequences. The trend-following shape means long losing streaks and dependence on the tail; the mean-reversion shape means the losers are rare but large, and the backtest may not contain the largest one yet.
Key idea: Expectancy and profit factor summarise the trade list; the distribution of R shows its shape. Always look at the shape, because two systems with the same expectancy can have completely different risk, and the shape tells you which risk you are taking.
Worked summary from a trade list
| Statistic | Value |
|---|---|
| Trades | 180 |
| Win rate | 38% (68 winners) |
| Average winner | +1.85R |
| Average loser | −0.94R |
| Expectancy | 0.38 × 1.85 − 0.62 × 0.94 = 0.703 − 0.583 = +0.12R |
| Gross profit | 68 × 1.85 = 125.8R |
| Gross loss | 112 × 0.94 = 105.3R |
| Profit factor | 125.8 ÷ 105.3 = 1.19 |
| Net | +20.5R over 180 trades |
| Standard deviation of R | 1.7R |
This system is marginal. Expectancy of +0.12R with a standard deviation of 1.7R across 180 trades is not clearly different from zero, as the next lessons will make precise, and a profit factor of 1.19 leaves almost no room for slippage error. Many real systems look exactly like this, and the honest reading is "not proven".
Try it: Export your backtest's trade list to a spreadsheet. Build the histogram of R in 0.5R buckets, and the top-five table with cumulative share of profit. Write two sentences describing the shape and the concentration. Those two sentences are worth more than the equity curve.
Recap
- Read the trade list before any statistic: top five winners' share of profit, clustering of losses, outliers.
- Expectancy is mean R after costs; report it with trade count and standard deviation.
- Profit factor is gross profit ÷ gross loss; 1.2 to 1.6 is typical for a real edge, above 2.5 is suspicious.
- The histogram of R shows the shape of risk: trend-following tails right, mean-reversion tails left.
- Two systems with the same expectancy can carry entirely different risk.