Markets: A Rigorous Course

3.1 Expectancy, R-multiples and the System Quality Number

Foundation about 25 min

Motivation

A trader's results are a list of trades of different sizes in different instruments. To ask whether a method has an edge, and how much capital to put behind it, the results must be put on a common scale. Van Tharp's R-multiple does this by measuring every outcome in units of the risk taken.

Setup

A stop-loss (stop) is a pre-set price at which a losing position will be closed. For a trade entered at price PeP_e with stop PsP_s and quantity QQ, the initial risk is 1R=∣Pe−Ps∣ Q1R = |P_e - P_s|\,Q in rupees: the planned loss if the stop is hit at its price. If the trade's realised profit after costs is Π\Pi, its R-multiple is R=Π/1RR = \Pi/1R. A trade stopped out exactly at the stop has R≈−1R \approx -1; a trade that gains three times the planned risk has R=3R = 3. For a trade list R1,…,RNR_1, \dots, R_N the expectancy is

E=1N∑i=1NRi=p Wˉ−(1−p) Lˉ,(3.1)E = \frac1N\sum_{i=1}^{N} R_i = p\,\bar W - (1-p)\,\bar L, \tag{3.1}

where pp is the win rate, Wˉ\bar W the average winning R and Lˉ\bar L the average losing R (as a positive number). Tharp's System Quality Number is

SQN=min⁡(N,100)  RˉsR,(3.2)\text{SQN} = \sqrt{\min(N, 100)}\;\frac{\bar R}{s_R}, \tag{3.2}

with sRs_R the sample standard deviation of the R-multiples.

Proposition 3.1SQN is a capped tt-statistic

If the RiR_i are iid with mean EE and variance σR2\sigma_R^2, then for N≤100N \le 100 the SQN is the tt-statistic for H0:E=0H_0: E = 0, asymptotically N(NE/σR,1)N(\sqrt N E/\sigma_R, 1). For N>100N > 100 it is 100/N\sqrt{100/N} times the tt-statistic.

Proof

The tt-statistic is Rˉ/(sR/N)=NRˉ/sR\bar R/(s_R/\sqrt N) = \sqrt N\bar R/s_R; by the CLT and Slutsky's lemma it is asymptotically normal with mean NE/σR\sqrt N E/\sigma_R and unit variance. The cap replaces N\sqrt N with 10.∎

The cap is Tharp's device to compare systems with different trade counts: a system with 1,000 trades would otherwise score 10\sqrt{10} times higher than the same system with 100. For N≥100N \ge 100 the SQN is therefore an estimate of the per-trade Sharpe ratio E/σRE/\sigma_R times 10. Tharp's rough bands (1.6–1.9 poor, 2–2.5 average, 2.5–3 good, 3–5 excellent, above 7 suspect) come from his practice, not from statistics (reported by secondary summaries of his books; sources differ on the exact bands).

Worked example 3.1.1a breakout swing system

A swing-trading system of the kind described by O'Neil and Minervini (buy breakouts in uptrending stocks, stop 7–8% below entry; see M04) wins 40% of trades with an average win of 2.5R2.5R and loses 1R1R on the other 60%. Then E=0.4(2.5)−0.6(1)=0.4RE = 0.4(2.5) - 0.6(1) = 0.4R per trade. The R-multiples take two values, so sR=1.723s_R = 1.723 (with the N−1N-1 divisor over 100 trades), and SQN=10×0.4/1.723=2.32\text{SQN} = 10 \times 0.4/1.723 = 2.32: "average" in Tharp's bands, and a tt-statistic of 2.3 on 100 trades.

Costs in R units For a delivery equity trade in India (bought and sold on NSE through a zero-brokerage broker), statutory and exchange charges come to about 0.22% of the position value per round trip plus a ₹15.34 depository charge on the sale (STT 0.1% on each side, stamp duty 0.015% on the buy, exchange charges 0.00307% per side, GST; rates as of 6 Nov 2026 from the Finance Act, 2026 STT schedule and NSE circular NSE/FA/73061; M01 · 1.7 derives the cost algebra and gives the sources). With a stop 4% below entry, 1R=4%1R = 4\% of position value, so costs are 0.22/4=0.055R0.22/4 = 0.055R per trade. With a 1% stop they are 0.22R0.22R, more than half the edge of the system above. Tight stops make costs large in R terms.

Practitioner notes

  • R-multiples measure outcomes relative to plan. A trade that gaps through its stop and closes at −2.5R-2.5R must be recorded as −2.5R-2.5R, not −1R-1R. The tail of the R distribution is set by gaps (3.9).
  • Expectancy is a mean. Its standard error is sR/Ns_R/\sqrt N. From M02 · 2.4, 100 trades with SQN 2.3 give a 95% confidence interval for EE of roughly 0.4±0.34R0.4 \pm 0.34R: the edge could be almost zero.
  • Expectancy per trade is not expectancy per unit time. A system with E=0.2RE = 0.2R and 200 trades a year beats one with E=0.6RE = 0.6R and 30 trades a year, if both are real.

3.1.1How many trades distinguish edge from noise#

Proposition 3.1 turns the question "does this setup have an edge?" into a sample-size calculation. It is placed here, before any trading, because every journal review, paper-trading graduation test (M14 · 14.10) and playbook post-mortem (M15) uses it.

Setup

Trades produce i.i.d. R-multiples with mean EE (expectancy) and standard deviation ss. After NN trades the sample mean is Rˉ\bar R and the tt-statistic is t=RˉN/s^t = \bar R\sqrt N/\hat s (the SQN of (3.2) without the cap).

Corollary 3.1.1Trades needed for t≥2t \ge 2 in expectation

If the true expectancy is E>0E > 0, the expected value of the numerator, EN/sE\sqrt N/s, reaches 2 when

N≥(2sE)2.(3.2a)N \ge \left(\frac{2s}{E}\right)^2. \tag{3.2a}
Proof

EN/s≥2  ⟺  N≥2s/EE\sqrt N/s \ge 2 \iff \sqrt N \ge 2s/E.∎

This NN only gives a 50% chance of clearing t=2t = 2: half the time noise pulls the statistic below its expectation.

Corollary 3.1.2Trades needed for power 1−β1-\beta

Under the normal approximation of Proposition 3.1, t≈N(EN/s,1)t \approx N(E\sqrt N/s, 1), so P(t≥2)=1−Φ(2−EN/s)P(t \ge 2) = 1 - \Phi(2 - E\sqrt N/s), and P(t≥2)≥1−βP(t \ge 2) \ge 1 - \beta requires

N≥((2+z1−β) sE)2,(3.2b)N \ge \left(\frac{(2 + z_{1-\beta})\,s}{E}\right)^2, \tag{3.2b}

with z0.8=0.8416z_{0.8} = 0.8416.

Proof

1−Φ(2−EN/s)≥1−β  ⟺  2−EN/s≤−z1−β  ⟺  N≥(2+z1−β)s/E1 - \Phi(2 - E\sqrt N/s) \ge 1 - \beta \iff 2 - E\sqrt N/s \le -z_{1-\beta} \iff \sqrt N \ge (2 + z_{1-\beta})s/E.∎

Numbers

Setup EE (R) ss (R) NN for t=2t = 2 in expectation NN for 80% power
Typical swing setup 0.20 1.50 225 455
Breakout system: 35% winners at +2.16R, 65% losers at −0.70R 0.30 1.36 83 166
Thin intraday edge 0.10 1.00 400 808

At three trades a week, 225 trades take 75 weeks. Paper trading alone therefore cannot establish a swing edge in a few months. The edge has to be established on historical data with the safeguards of M04 (out-of-sample tests, walk-forward, deflated Sharpe ratio); paper and small live trading then only check that live results are consistent with the backtest distribution, which needs far fewer trades (M14 · 14.10.3).

False positives Under the null E=0E = 0 with normal R-multiples, P(t≥2)=1−Ft,N−1(2)P(t \ge 2) = 1 - F_{t,N-1}(2): 0.0241 for N=100N = 100 and 0.0275 for N=30N = 30 (normal limit 0.0228). The simulation in m14_graduation.py reproduces 0.0249 for N=100N = 100. For a skewed breakout-type distribution (two-point, mean zero) the rate at N=30N = 30 is 0.012, because positive skew correlates the sample mean with the sample standard deviation; at N=100N = 100 it is back to 0.024.

Selection The real danger is choosing among setups. If you paper-trade 10 setups with no edge and keep the best, the probability that at least one passes t≥2t \ge 2 is 1−(1−0.0228)10=0.211 - (1 - 0.0228)^{10} = 0.21; with 20 setups it is 0.37. M04 · 4.6 gives the correction (the expected maximum Sharpe ratio of NN noise trials); apply it to setups, not only to backtests.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.