The formula
SQN = (mean R ÷ standard deviation of R) × √N
Where each trade is expressed as an R-multiple, N is the number of trades that produced one, and the standard deviation is the sample deviation — divided by N−1, not N.
Read it as two separate ideas multiplied together:
- mean R ÷ σR is quality. How large is the average result relative to how much it varies? A method that makes +0.3R on average with results scattered between −1R and +5R scores worse than one making +0.3R that lands between 0 and +1R every time.
- √N is confidence. The same quality, measured over more trades, is a stronger claim.
Why the √N term changes how you may use it
Most metrics answer "how good is this?". SQN answers "how good is this, and how sure are we?" in a single figure — which is useful inside one account over time and misleading across accounts.
Quadruple your trade count with identical performance and your SQN doubles. Nothing about the method improved. So:
- Legitimate: watching your own SQN across a growing sample, or comparing two of your own strategies over the same number of trades.
- Not legitimate: comparing your SQN to someone else's without both sample sizes, or reading a rising SQN as a rising edge when the sample simply grew.
The scale usually quoted alongside SQN — below 2 weak, 2 to 3 average, above 3 strong — was written for a sample of roughly 100 trades. At 25 trades those bands are unreachable by a genuinely good system; at 1,000 they are cleared by a mediocre one.
The edge case: which trades can be counted
SQN is built on R, and R needs a denominator — the distance from entry to stop. A trade with no stop recorded has no R, so it cannot enter the calculation at all.
Our implementation returns the count of trades it actually used alongside the score, and that number is the first thing to read. On a journal where stops are recorded inconsistently, SQN describes the subset of trades that had a plan, which is very often the calmer subset. The trades taken in a hurry — the ones you most want measured — are exactly the ones most likely to be missing a stop and therefore missing from the score.
Two further cases produce no value rather than a misleading one:
- Fewer than two usable trades — a standard deviation needs at least two points. Returns nothing.
- Every R identical — the deviation is zero and the ratio is undefined. Returns nothing rather than infinity.
What it does not know
SQN treats trades as an unordered bag. It has no concept of sequence, so it cannot see that all of your losses arrived consecutively — and a run of consecutive losses is what actually ends accounts, not variance in the abstract. Pair it with maximum drawdown, which reads the same trades in order.
It also inherits R's honesty problem. If the stop in your statement is the level the stop finished at rather than where it started, every widened stop reports a smaller R than it deserved, the deviation shrinks, and SQN rises. The metric cannot detect this; only comparing the recorded stop against your intent can, which is what what your statement hides covers in detail.