Understanding SQN Metrics at Quants Space

November 4, 2026

Understanding SQN Metrics at Quants Space

Standard SQN and Adjustments for Trading Frequency and Position Size

At Quants Space, we include several System Quality Number (SQN) metrics in our strategy performance reports. They compare average position ROI with its variability and adjust for the number of positions. We show multiple variants because strategies with similar returns per position can trade at very different frequencies and with different position sizes. This guide explains where SQN comes from, how we calculate our metrics and how to interpret them.

Where SQN Comes From

Trading educator Van K. Tharp developed SQN while studying the relationship between trading-system quality and position sizing. His original framework expresses each completed trade as an R-multiple: profit or loss divided by the amount initially risked. A gain of $200 on an initial risk of $100 is +2R; a loss of $100 is -1R. The average R-multiple is the system's expectancy.

Tharp's SQN combines that expectancy with the standard deviation of the R-multiple distribution and the square root of the number of closed trades. It summarizes the consistency of trade results and the number of observations; it does not guarantee a particular return or drawdown.

SQN=RˉσRN\mathrm{SQN}=\frac{\bar R}{\sigma_R}\sqrt{N}

Here, N is the number of closed trades, R-bar is the mean R-multiple, and the denominator is the standard deviation of the R-multiples. In Quants Space reports, we use position ROI instead of R-multiples. Because these measure different kinds of returns, their SQN values are comparable only when the calculation methods match.

SQN Calculation in Five Trades

Suppose each trade risks $100 and the completed results are +1R, +2R, -1R, +2R and +1R. The five trades earn a total of +5R.

TradeProfit or lossR-multiple
1+$100+1R
2+$200+2R
3-$100-1R
4+$200+2R
5+$100+1R
Rˉ=(+1)+(+2)+(−1)+(+2)+(+1)5=+1.00R\bar R=\frac{(+1)+(+2)+(-1)+(+2)+(+1)}{5}=+1.00\mathrm{R}

The squared deviations from the +1R mean are 0, 1, 4, 1 and 0. The -1R trade, for example, is 2R below the mean; squaring -2 gives 4. Their sum is 6:

σR=0+1+4+1+05=65=1.0954\sigma_R=\sqrt{\frac{0+1+4+1+0}{5}}=\sqrt{\frac{6}{5}}=1.0954

Substituting into the SQN formula:

SQN=1.001.09545=2.04\mathrm{SQN}=\frac{1.00}{1.0954}\sqrt{5}=2.04

The score is 2.04. This five-trade example demonstrates the SQN calculation; evaluating a strategy requires many more trades and representative market conditions.

Why Trading Frequency Matters

Raw SQN does not use a fixed calendar period. If average ROI and its standard deviation stay constant, multiplying the number of positions by ten increases SQN by the square root of ten. A strategy that trades more often can therefore show a much larger raw SQN than one with the same returns per position but fewer trades.

MeasureStrategy AStrategy B
Average R-multiple0.200.20
R-multiple standard deviation1.001.00
Trades per year1001,000
Years tested55
Total trades5005,000
Raw SQN4.4714.14
SQN with trade-count scaling capped at 1002.002.00
Illustrative SQN using trades per year2.006.32

Capping the scaling count at 100 reduces the effect of total trade count, but every trade still contributes to the mean and standard deviation. The trades-per-year example illustrates annual trading frequency; it is not a Quants Space metric. Neither adjustment captures correlated or overlapping trades, transaction costs or capacity limits. We still need daily portfolio returns to assess portfolio risk.

SQN100=RˉσRmin⁡(N,100)\mathrm{SQN}_{100}=\frac{\bar R}{\sigma_R}\sqrt{\min(N,100)}

SQN Metrics in Our Performance Reports

In Quants Space reports, SQN is mean position ROI divided by its standard deviation, multiplied by the square root of the number of positions. Other variants change the position-count scaling factor or weight returns by position size. This helps readers distinguish consistency of returns from trading frequency and position sizing.

Report metricMeaning of the adjustment
SQNUses the square root of total position count
SQN100Limits the position count used for scaling to 100
SQNDUses average positions per day for scaling
SQND100Limits the daily position count used for scaling to 100
SQNLUses log10 of total positions with a minimum input of 1
SQNDLUses log10 of average positions per day with a minimum input of 1
W-prefixed metricsUses position-size-weighted ROI statistics

Our L variants multiply mean ROI divided by its standard deviation directly by log10(max(position count, 1)); no square root is applied. For example, log10(1) = 0, log10(100) = 2 and log10(1,000) = 3. Other variants use sqrt(position count). Daily variants use average positions per day, not portfolio returns, and are not annualized Sharpe ratios.

Position-Size-Weighted SQN Example

At Quants Space, position size determines the weight of each ROI. Our weighted_mean(values, weights) calculates sum(values * weights) / sum(weights). We calculate weighted standard deviation by taking the square root of the position-size-weighted mean of squared ROI deviations. In the formulas, s_i is position size and r_i is ROI:

μw=∑isiri∑isi\mu_w=\frac{\sum_i s_i r_i}{\sum_i s_i} σw=∑isi(ri−μw)2∑isi\sigma_w=\sqrt{\frac{\sum_i s_i(r_i-\mu_w)^2}{\sum_i s_i}}

Consider four illustrative positions opened over two days:

PositionDayPosition sizeROIProfit or lossWeight
1Day 1$1,000+2%+$2010%
2Day 1$1,000+2%+$2010%
3Day 2$4,000-1%-$4040%
4Day 2$4,000+1%+$4040%

We use the same four ROI observations for SQN and WSQN, but calculate their means and standard deviations separately because weighting changes the contribution of each position.

Unweighted SQN. First, each position contributes equally to the mean ROI:

rˉ=2+2−1+14=1.00%\bar r=\frac{2+2-1+1}{4}=1.00\%

The deviations are 1, 1, -2 and 0 percentage points. Their standard deviation is:

σ=12+12+(−2)2+024=1.50=1.2247%\sigma=\sqrt{\frac{1^2+1^2+(-2)^2+0^2}{4}}=\sqrt{1.50}=1.2247\% SQN=1.001.22474=1.6330\mathrm{SQN}=\frac{1.00}{1.2247}\sqrt{4}=1.6330

Position-size-weighted SQN. Now each position contributes according to its position size:

μw=1000(2)+1000(2)+4000(−1)+4000(1)10000=0.40%\mu_w=\frac{1000(2)+1000(2)+4000(-1)+4000(1)}{10000}=0.40\%

The deviations from the weighted mean of 0.40% are 1.6, 1.6, -1.4 and 0.6 percentage points. We apply the same position sizes to the squared deviations:

σw=1000(1.6)2+1000(1.6)2+4000(−1.4)2+4000(0.6)210000\sigma_w=\sqrt{\frac{1000(1.6)^2+1000(1.6)^2+4000(-1.4)^2+4000(0.6)^2}{10000}} σw=2560+2560+7840+144010000=1.44=1.20%\sigma_w=\sqrt{\frac{2560+2560+7840+1440}{10000}}=\sqrt{1.44}=1.20\% WSQN=0.401.204=0.6667\mathrm{WSQN}=\frac{0.40}{1.20}\sqrt{4}=0.6667

The results differ because the larger positions in this example have less favorable returns.

We can apply all 12 SQN variants to these same positions. The four positions were opened over two days, giving an average of two positions per day. The unweighted mean-to-standard-deviation ratio is 1.00 / 1.2247 = 0.8165, and the position-size-weighted ratio is 0.40 / 1.20 = 0.3333. We multiply each ratio by the same position-count scaling factor to obtain the unweighted and weighted variants.

Variant pairScaling factorUnweightedPosition-size weighted
SQN / WSQNsqrt(4) = 2.00001.63300.6667
SQN100 / WSQN100sqrt(min(4,100)) = 2.00001.63300.6667
SQND / WSQNDsqrt(2) = 1.41421.15470.4714
SQND100 / WSQND100sqrt(min(2,100)) = 1.41421.15470.4714
SQNL / WSQNLlog10(4) = 0.60210.49160.2007
SQNDL / WSQNDLlog10(2) = 0.30100.24580.1003

Because both position counts are below 100, the capped variants equal their uncapped counterparts. The logarithmic variants use log10(4) = 0.6021 or log10(2) = 0.3010 directly, without a square root. These small counts illustrate the formulas; they are not enough to judge a trading strategy.

Pros and Cons of Our SQN Metrics

We offer several SQN variants because each adjustment to position count answers a different question. These scores help compare strategies, but none alone establishes future profitability, trade independence or acceptable portfolio risk.

MethodMain advantageMain limitation
Raw SQNCombines mean position ROI, its standard deviation and position count.Increases with sqrt(N), even if position outcomes are unchanged. Correlated positions weaken its interpretation.
SQN100Reduces the advantage of very large position counts when comparing backtests.The limit of 100 is a chosen threshold. More positions do not increase the scaling factor after that point.
SQND and SQND100Shows the effect of average positions traded per day.Trades per day can still vary greatly between high-frequency and low- or medium-frequency strategies, so SQND remains frequency-sensitive. SQND100 caps the count at 100 per day.
SQNL and SQNDLBase-10 logarithms reduce the influence of very high position counts.The minimum input of 1 prevents negative log factors, but log10(1) = 0, so low-frequency differences can disappear.
Weighted variantsShows whether larger positions have returns as consistent as smaller ones.A few large positions can dominate weighted statistics. Position size does not capture risk or holding period.

How We Recommend Reading the Metrics

We recommend comparing strategies over similar backtest periods and using consistent ROI definitions and position-count rules. Review SQN alongside net ROI, transaction costs, turnover, daily portfolio returns, Sharpe ratio, drawdown and exposure. Pay particular attention to overlapping positions and strategies selected from many tested configurations: strong backtest results do not guarantee out-of-sample performance.