Skip to content
GetProfitable
Search

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.

The spread of outcomes behind an expectancyA histogram of forty trades: a tall block of small losses on the left, a low spread of larger wins on the right, and a line marking the average outcome.NUMBER OF TRADES051024 LOSSES, AVG −$20016 WINS, AVG +$600EXPECTANCY +$120−$400−$200$0+$200+$400+$600+$800PROFIT OR LOSS PER TRADEexpectancy = (40% × $600) − (60% × $200) = +$120 per trade
Expectancy: the average trade. Forty trades sorted by outcome: 24 small losses and 16 larger wins. Weighting each side by how often it happens gives the average result per trade, marked here by the dashed line at +$120.

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.