Part XI · Swing trading · Chapter 11C

Indicators

The measuring instruments

Where we are

Chapter 11B set out the conditional thesis and the three layers every trade must pass. This chapter builds the measuring instruments those layers read: six indicators, each with its formula, its parameters and a worked number. It ends with the trap of counting one measurement several times.

What you need first
  • Simple and exponential moving averages (Chapter 11A).
  • Realized volatility and the range-based Parkinson estimator (Chapter 5E).
  • Correlation (Chapter 1F), and overfitting and the case for simple models (Chapter 3A).
  • Weinstein stages and gamma exposure, which the dealer notes refer to (Chapters 11E and 8A).

1 · Instruments, not edges

A technical indicator is not an edge. It is an instrument that measures one feature of price and volume: trend strength, a momentum extreme, the volatility regime or the structure of the range. The edge lives in the framework that combines them, the layers of Chapter 11B. Picking the right instruments, and knowing what each one measures and what it does not, is foundational.

In plain terms

Each indicator is a formula applied to recent bars that answers one question. The questions are how far the price has stretched, whether it is trending, how much it moves in a day and where the recent extremes were. None of them knows what happens next. Their value comes from asking the right question at the right moment, which is the framework's job, not the indicator's.

The selection here is small and deliberate: six indicators across four functions.

IndicatorFunctionStandard parametersUnitsConventional readings
RSIMomentum extremesn=14n = 14; n=2n = 2 for Connors' variant0 to 100Above 70 overbought, below 30 oversold. RSI(2) below 10 or above 90
MACDTrend regime12, 26 and 9 barsPrice pointsLine above 0: fast average above slow. Histogram rising: momentum accelerating
ADXTrend regimen=14n = 140 to 100Below 20 no trend, 20 to 25 weak, above 25 strong, above 40 very strong
ATRVolatility regimen=14n = 14Price pointsNo threshold: it sets position size
Bollinger BandsVolatility regimen=20n = 20, 2 standard deviationsPrice points; %B and bandwidth are ratiosA narrow bandwidth is a squeeze
Donchian ChannelsStructural levelsn=20n = 20 or 55Price pointsA close above the prior nn-bar high is a breakout

Throughout, bar tt has a high HtH_t, a low LtL_t and a close CtC_t. The simple moving average MtM_t and the exponential moving average EtE_t, with weight α=2/(n+1)\alpha = 2/(n+1) on the newest close, are those of Chapter 11A.

2 · Wilder smoothing

Three of the six indicators, RSI, ATR and ADX, rest on one averaging rule. Wilder smoothing is a variant of the exponential moving average invented by Welles Wilder and used in all of his indicators. A standard EMA puts a weight of α=2/(n+1)\alpha = 2/(n+1) on the newest value, while Wilder smoothing puts α=1/n\alpha = 1/n:

Wt=Wt−1+xt−Wt−1n W_t = W_{t-1} + \frac{x_t - W_{t-1}}{n} (11C.1)

Here xtx_t is the series being smoothed and WtW_t its Wilder average, which is started as the plain average of the first nn values. For n=14n = 14, the standard EMA weight is 2/15≈0.1332/15 \approx 0.133 while Wilder's is 1/14≈0.07141/14 \approx 0.0714.

Wilder smoothing is therefore slower to respond: it behaves like a standard EMA of period 2n−12n - 1, so Wilder(14) is roughly EMA(27). The documented thresholds of these indicators, such as "ADX above 25 means a trend", are calibrated to Wilder smoothing, so do not substitute one for the other. In Python's pandas library, s.ewm(span=n).mean(), for a series s of closes, is the standard EMA. For Wilder, use s.ewm(alpha=1/n, adjust=False).mean(), which starts from the first value rather than from Wilder's plain average of the first nn, so its earliest values differ.

Why Wilder(n) behaves like EMA(2n − 1)

Step 1: the weights. Unrolled, an exponential average with weight α\alpha puts α(1−α)k\alpha(1-\alpha)^k on the value kk bars back.

Step 2: the average age. The weighted mean of kk is ∑kk α(1−α)k\sum_k k\,\alpha(1-\alpha)^k, which you can sum by differentiating the geometric series ∑kqk=1/(1−q)\sum_k q^k = 1/(1-q) to get ∑kk qk=q/(1−q)2\sum_k k\,q^k = q/(1-q)^2. With q=1−αq = 1-\alpha, the mean age is α(1−α)/α2=(1−α)/α\alpha(1-\alpha)/\alpha^2 = (1-\alpha)/\alpha bars.

Step 3: the two rules. A standard EMA, with α=2/(m+1)\alpha = 2/(m+1), has a mean age of (m−1)/2(m-1)/2 bars, the same as an mm-bar SMA. Wilder's rule, with α=1/n\alpha = 1/n, has a mean age of n−1n - 1 bars.

Step 4: match them. Setting (m−1)/2=n−1(m-1)/2 = n - 1 gives m=2n−1m = 2n - 1, so for n=14n = 14 both rules have a mean age of 13 bars at m=27m = 27.

Worked example: One spike, two smoothers

Step 1: the spike. A series has sat at 2.0 for months when one bar prints 5.0. A 14-bar EMA moves 0.133×3=0.400.133 \times 3 = 0.40, to 2.40, while Wilder(14) moves only 3/14=0.213/14 = 0.21, to 2.21.

Step 2: ten bars later. With the series back at 2.0, the EMA's excess has decayed to 0.40×(13/15)10=0.40×0.239=0.0960.40 \times (13/15)^{10} = 0.40 \times 0.239 = 0.096. Wilder's has decayed only to 0.21×(13/14)10=0.21×0.477=0.100.21 \times (13/14)^{10} = 0.21 \times 0.477 = 0.10, now more than the EMA's, because Wilder is slower to react and slower to forget.

3 · RSI: the relative strength index

The relative strength index (RSI) measures how one-sided recent moves have been. For each bar, split the change in the close into an up move and a down move:

Ut=max⁡(Ct−Ct−1, 0) U_t = \max(C_t - C_{t-1},\,0) (11C.2)
Dt=max⁡(Ct−1−Ct, 0) D_t = \max(C_{t-1} - C_t,\,0) (11C.3)

Smooth each with Wilder's rule over nn bars to get the average gain Uˉt\bar{U}_t and the average loss Dˉt\bar{D}_t, whose ratio RS=Uˉt/Dˉt\text{RS} = \bar{U}_t/\bar{D}_t defines the index:

RSIt=100−1001+RS=100 UˉtUˉt+Dˉt \begin{aligned} \text{RSI}_t &= 100 - \frac{100}{1 + \text{RS}} \\ &= 100\,\frac{\bar{U}_t}{\bar{U}_t + \bar{D}_t} \end{aligned} (11C.4)

The second line follows from multiplying the top and bottom of the fraction by Dˉt\bar{D}_t. It shows what the index is: the share of the recent average movement that came from gains.

With the standard parameter of n=14n = 14 (Wilder, 1978), RSI normalizes recent price action to a bounded scale from 0 to 100. Above 70 is conventionally "overbought" and below 30 "oversold", but these are calibration points, not signals. The RSI(2) variant by Larry Connors flips the use entirely. With n=2n = 2, readings below 10 or above 90 become mean-reversion entry signals in trending markets.

Worked example: RSI(2) after a run of down closes

Step 1: the closes. SPY closes at 100, 102, 101, 99, 98 and 97, so the changes are +2, −1, −2, −1 and −1.

Step 2: the start. With n=2n = 2, the first averages are plain means of the first two changes: Uˉ=(2+0)/2=1.0\bar{U} = (2 + 0)/2 = 1.0 and Dˉ=(0+1)/2=0.5\bar{D} = (0 + 1)/2 = 0.5. By (11C.4), RSI =100×1.0/1.5=66.7= 100 \times 1.0/1.5 = 66.7 at the close of 101.

Step 3: Wilder updates. With n=2n = 2, each new average is half the old one plus half the new move. The −2 change gives Uˉ=0.5\bar{U} = 0.5 and Dˉ=(0.5+2)/2=1.25\bar{D} = (0.5 + 2)/2 = 1.25, for an RSI of 100×0.5/1.75=28.6100 \times 0.5/1.75 = 28.6.

Step 4: the run continues. The next −1 gives Uˉ=0.25\bar{U} = 0.25, Dˉ=1.125\bar{D} = 1.125 and RSI =18.2= 18.2. The last −1 gives Uˉ=0.125\bar{U} = 0.125, Dˉ=1.0625\bar{D} = 1.0625 and RSI =10.5= 10.5, just above Connors' threshold of 10, which one more −1 close would take it below, to 5.7.

Dealer mechanic note. In the Dealer Mechanics Lab's reading, RSI(2) below 10 on a Stage 2 pullback (Chapter 11E) is a typical gamma scalping setup. Dealers with positive GEX fade the move, so your mean-reversion bet rides their hedging flow. The Edge Book sees less here: it calls a single oscillator reading, such as an RSI of 30, too noisy for sizing decisions (Chapter 10H). It also treats the GEX sign, on which the dealer reading rests, as low-confidence context. Chapter 11H builds a setup on RSI(2) and grades the evidence behind its thresholds.

4 · MACD: moving average convergence divergence

Moving average convergence divergence (MACD) is built from three exponential moving averages:

MACDt=Et(12)−Et(26)Signalt=EMA9(MACD)tHistt=MACDt−Signalt \begin{aligned} \text{MACD}_t &= E^{(12)}_t - E^{(26)}_t \\ \text{Signal}_t &= \text{EMA}_9(\text{MACD})_t \\ \text{Hist}_t &= \text{MACD}_t - \text{Signal}_t \end{aligned} (11C.5)

Here Et(12)E^{(12)}_t and Et(26)E^{(26)}_t are the 12-bar and 26-bar EMAs of the close. The MACD line is their difference, the signal line is a 9-bar EMA of the MACD line, and the histogram is the gap between the two.

MACD captures a change in trend in two ways. Its line is positive when the fast EMA sits above the slow one, which makes it a smoothed slope of the price. The histogram is positive and growing when bullish momentum is accelerating, because it measures the line against its own recent average. Both are in price points, so a MACD of 5 is a wide gap on a $50 stock and a trivial one on SPX at 6,000. Divide by the price to compare assets.

Worked example: One bar of MACD

Step 1: yesterday. The 12-bar EMA stood at 101.0 and the 26-bar EMA at 100.0, so the MACD line was 1.0, with the signal line at 0.8 and the histogram at 0.2.

Step 2: today's close of 104. With weights of 2/13=0.1542/13 = 0.154 and 2/27=0.0742/27 = 0.074, the fast EMA becomes 101+0.154×3=101.46101 + 0.154 \times 3 = 101.46 and the slow one 100+0.074×4=100.30100 + 0.074 \times 4 = 100.30, so the MACD line is 1.165.

Step 3: signal and histogram. With a weight of 2/10=0.22/10 = 0.2, the signal line becomes 0.8+0.2×(1.165−0.8)=0.8730.8 + 0.2 \times (1.165 - 0.8) = 0.873. The histogram is 1.165−0.873=0.2921.165 - 0.873 = 0.292, up from 0.2: momentum is accelerating.

Dealer mechanic note. The MACD histogram crossing zero correlates with regime transitions: Stage 1 to Stage 2, or Stage 3 to Stage 4, in Weinstein's terms (Chapter 11E). Chapter 11F uses the histogram as the timing screen of Elder's triple screen.

5 · ATR: average true range

The true range of a bar is the largest of three distances:

TRt=max⁡{ Ht−Lt,∣Ht−Ct−1∣,∣Lt−Ct−1∣ } \begin{aligned} \text{TR}_t = \max\{\,&H_t - L_t, \\ &|H_t - C_{t-1}|, \\ &|L_t - C_{t-1}|\,\} \end{aligned} (11C.6)

The last two terms count an overnight gap as part of the day's movement. The average true range (ATR) is the true range smoothed with Wilder's rule over nn bars, usually 14:

ATRt=(n−1) ATRt−1+TRtn \text{ATR}_t = \frac{(n-1)\,\text{ATR}_{t-1} + \text{TR}_t}{n} (11C.7)

ATR measures the typical size of a bar: how much the underlying moves in a typical session. It is a pure volatility instrument, with no direction in it. It is also critical for sizing: a position size inversely proportional to ATR makes each trade risk a consistent amount.

Worked example: A gap, and a size

Step 1: the true range. With yesterday's close at 100 and today's high and low at 103 and 101, the day's own range is 2. The gap counts, though: ∣103−100∣=3|103 - 100| = 3, which makes the true range 3.

Step 2: the ATR. With yesterday's ATR at 2.0 and n=14n = 14, (11C.7) gives (13×2.0+3)/14=2.07(13 \times 2.0 + 3)/14 = 2.07.

Step 3: a size. You risk $1,000 on a trade, with a hypothetical stop-loss order two ATRs from entry. At an ATR of $2.50 the stop sits $5 away, so you buy 1,000/5=2001{,}000/5 = 200 shares. If the ATR doubles to $5.00, the stop sits $10 away, so 100 shares keep the dollar risk at the stop at $1,000.

A gap can carry the price through a stop before it can fill, the gap risk of Chapter 5F, so the loss at the stop is a target, not a cap.

ATR is in price points, so compare assets through ATR as a share of price. Chapter 5E's Parkinson estimator rests on a property of a random walk without gaps: its daily high-low range has a root-mean-square size of 4ln⁡2≈1.67\sqrt{4 \ln 2} \approx 1.67 daily standard deviations. ATR averages the range rather than its square and adds gaps, but the scale holds roughly. An ATR of 1% of price points to a daily volatility near 1%/1.67=0.6%1\%/1.67 = 0.6\%, or about 10% a year by the rule of 16.

Dealer mechanic note. ATR scales with realized volatility, which scales with dealer hedging during stress. ATR expansion often signals that the dealer-hedging regime is changing before GEX figures update.

6 · ADX: the average directional index

The average directional index (ADX) answers one question: is the underlying trending or chopping? It measures the strength of the trend regardless of its direction. It is computed in four steps from two directional movement indicators, DI+\text{DI}^{+} and DI−\text{DI}^{-}, over a Wilder-smoothed window:

  1. Directional movement. Comparing today's range with yesterday's, the up move is Ht−Ht−1H_t - H_{t-1} and the down move Lt−1−LtL_{t-1} - L_t. Plus directional movement, DM+\text{DM}^{+}, is the up move if it is positive and larger than the down move, and zero otherwise. Minus directional movement, DM−\text{DM}^{-}, is the down move under the same rule.
  2. Smoothing. Smooth DM+\text{DM}^{+}, DM−\text{DM}^{-} and the true range with Wilder's rule over nn bars, usually 14, and mark the results with a bar on top.
  3. The indicators. Each directional indicator is the smoothed movement as a share of the smoothed true range, with DI−\text{DI}^{-} built from DM‾−\overline{\text{DM}}^{-} as DI+\text{DI}^{+} is from DM‾+\overline{\text{DM}}^{+}. DX compares the two:
DIt+=100 DM‾t+TR‾t \text{DI}^{+}_t = 100\,\frac{\overline{\text{DM}}^{+}_t}{\overline{\text{TR}}_t} (11C.8)
DXt=100 ∣DIt+−DIt−∣DIt++DIt− \text{DX}_t = 100\,\frac{|\text{DI}^{+}_t - \text{DI}^{-}_t|}{\text{DI}^{+}_t + \text{DI}^{-}_t} (11C.9)
  1. The index. ADX is DX smoothed once more with Wilder's rule over nn bars.

The absolute value in DX is why ADX has no inherent direction: a steady fall reads as strongly as a steady rise.

Worked example: One bar of ADX

Step 1: directional movement. Yesterday's high and low were 104 and 100, today's 105 and 102. The up move is 1 and the down move 100−102=−2100 - 102 = -2, so DM+=1\text{DM}^{+} = 1 and DM−=0\text{DM}^{-} = 0.

Step 2: the indicators. Suppose the smoothed values are 14 for DM+\text{DM}^{+}, 6 for DM−\text{DM}^{-} and 40 for the true range, which make DI+=35\text{DI}^{+} = 35 and DI−=15\text{DI}^{-} = 15, so that (11C.9) gives DX=100×20/50=40\text{DX} = 100 \times 20/50 = 40.

Step 3: the index. With yesterday's ADX at 30, the Wilder update gives (13×30+40)/14=30.7(13 \times 30 + 40)/14 = 30.7: above 25, a strong trend by the conventional reading.

Conventionally, below 20 means no trend, 20 to 25 a weak trend, above 25 a strong trend and above 40 a very strong one.

Dealer mechanic note. The Dealer Mechanics Lab reports that ADX above 25 corresponds empirically to negative-GEX regimes, where mean reversion underperforms and trend following works. ADX below 20 corresponds to positive-GEX, mean-reverting regimes, although the source cites no study for the correspondence. The Edge Book weighs the GEX side of it lightly (Chapter 10H).

7 · Bollinger Bands

Bollinger Bands wrap a moving average in a channel that adapts to recent volatility. With MtM_t the 20-bar SMA of the close and sts_t the standard deviation of the same 20 closes, dividing by 20 as the figure does:

bandst=Mt±2 st \text{bands}_t = M_t \pm 2\,s_t (11C.10)

Two ratios summarize where the price sits and how wide the channel is:

%Bt=Ct−(Mt−2st)4 st=12+zt4 \begin{aligned} \%B_t &= \frac{C_t - (M_t - 2s_t)}{4\,s_t} \\ &= \frac{1}{2} + \frac{z_t}{4} \end{aligned} (11C.11)
bandwidtht=4 stMt \text{bandwidth}_t = \frac{4\,s_t}{M_t} (11C.12)

In (11C.11), zt=(Ct−Mt)/stz_t = (C_t - M_t)/s_t is the close's z-score within its own 20-bar window, the statistic you know from any lab report. The %B ratio rescales it so that the lower band reads 0 and the upper band 1. Bollinger bandwidth is four times the window's coefficient of variation.

Bandwidth contractions identify low-volatility periods, the Bollinger squeeze, which often precede volatility expansions.

Worked example: Bands on five closes

Step 1: the window. To keep the arithmetic short, use 5 bars instead of 20: closes of 98, 100, 102, 101 and 99. With a mean of 100, the squared deviations are 4, 0, 4, 1 and 1, which sum to 10, so the variance is 10/5=210/5 = 2 and s=1.414s = 1.414.

Step 2: the bands. The bands sit at 100±2.83100 \pm 2.83, which puts them at 97.17 and 102.83.

Step 3: the ratios. The last close, 99, has z=−1/1.414=−0.71z = -1/1.414 = -0.71, so (11C.11) gives %B=0.5−0.18=0.32\%B = 0.5 - 0.18 = 0.32, a close in the lower third of the band. By (11C.12), the bandwidth is 5.66/100=5.7%5.66/100 = 5.7\% of the price.

Dealer mechanic note. Bandwidth contraction often coincides with positive GEX above the gamma flip, as dealers suppress realized volatility below its historical levels.

8 · Donchian Channels

A Donchian channel is the band between the highest high and the lowest low of the past nn bars:

uppert=max⁡(Ht−n+1,…,Ht) \text{upper}_t = \max(H_{t-n+1}, \dots, H_t) (11C.13)
lowert=min⁡(Lt−n+1,…,Lt) \text{lower}_t = \min(L_{t-n+1}, \dots, L_t) (11C.14)

With the standard parameter of n=20n = 20, or the n=55n = 55 the Turtle Traders used, the channel is a pure breakout signal. A price above the upper Donchian level is a new nn-day high, a potential trend initiation. Because the channel includes today's bar, test a breakout against the channel of the nn bars before today. The Turtle Traders famously used 55-day Donchian breakouts as entry signals.

Worked example: A 20-day breakout

The highest high of the 20 sessions before today is 5,980 and their lowest low is 5,720. Today SPX closes at 5,992, above the prior upper level, so it is a new 20-day high: a breakout. The channel's width, 260 points, is 4.3% of today's price, a crude measure of the range the breakout escaped.

Dealer mechanic note. Donchian breakouts often coincide with mechanical institutional rebalancing flow at quarter ends (Chapter 10G). When dealer net gamma is short going into the breakout, the dealer hedging response amplifies it.

9 · Try the indicator lab

The figure below draws a synthetic 280-bar price tape above and one indicator below. Buttons choose the indicator: RSI (the default), ATR, ADX, or the close minus the Bollinger middle band, which is the numerator of the z-score, in price points. A slider sets the period nn from 2 to 50, starting at 14, and another sets the tape's seed from 1 to 30, starting at 7. The tape walks from a base through a markup and a distribution into a markdown, with the RSI and ADX thresholds dashed.

Start at the defaults and count how often RSI(14) visits each dashed line. Then set nn to 2, and switch to ADX and ATR.

14
#7

RSI(14). Momentum oscillator: above 70 overbought, below 30 oversold.

One tape, four instruments. The top panel is the close of a synthetic 280-bar price tape, generated from a seed with drifts and volatilities that walk from a base through a markup and a distribution into a markdown. The bottom panel is the chosen indicator on the same bars, with the RSI and ADX thresholds from the text dashed. Change the period n to see how much each one smooths, and the seed to draw a different tape. The fourth choice is the close minus the Bollinger middle band (the n-bar SMA), in price units.

At the defaults, RSI(14) sits above 70 for long stretches of the markup and rarely falls below 30. "Overbought" is the normal state of a trend, not a sell signal. At n=2n = 2 the same tape swings from one extreme to the other, which is why Connors' thresholds are 10 and 90 rather than 30 and 70. ATR ends the tape at about four times its level in the base, because both the price level and the volatility rise. ADX sits in the 20s even in the flat base. It peaks after the advance has ended, because it is smoothed twice.

10 · The multicollinearity trap

A common retail mistake is to stack RSI(2), internal bar strength (IBS), Bollinger %B, Williams %R and the stochastic oscillator, and call them "five independent signals confirming the trade". They are not independent: all five compute the same latent quantity, how stretched the price is relative to its recent range. Using them as separate inputs to a decision rule is double-counting, a case of multicollinearity.

The definitions show it once you write HHn\text{HH}_n and LLn\text{LL}_n for the highest high and the lowest low of the last nn bars. IBS places the close within its own bar, and the stochastic oscillator places it within that nn-bar range:

IBSt=Ct−LtHt−Lt \text{IBS}_t = \frac{C_t - L_t}{H_t - L_t} (11C.15)
%Kt=100 Ct−LLnHHn−LLn \%K_t = 100\,\frac{C_t - \text{LL}_n}{\text{HH}_n - \text{LL}_n} (11C.16)

Williams %R is −100×(HHn−Ct)/(HHn−LLn)-100 \times (\text{HH}_n - C_t)/(\text{HH}_n - \text{LL}_n), which is exactly %Kt−100\%K_t - 100: the same number, shifted. With n=1n = 1, the stochastic oscillator is 100 times IBS. And %B is the close's z-score, rescaled by (11C.11). Three of the five are one formula at different lookbacks. The other two measure the same stretch with a different yardstick.

Worked example: Three readings, one fact

Step 1: one bar. A bar has a high of 105, a low of 100 and a close of 101. Its IBS is 1/5=0.201/5 = 0.20, so the one-bar stochastic is 20 and the one-bar Williams %R is −80.

Step 2: five bars. Over the last five bars the highest high is 108 and the lowest low 100. The five-bar stochastic is 100×1/8=12.5100 \times 1/8 = 12.5, and Williams %R is −87.5.

Step 3: the count. Three "oversold" readings have appeared, every one of them the position of 101 inside a range.

How much does a correlated second opinion add? Average kk signals of equal weight whose pairwise correlation is ρ\rho, and the number of independent signals they are worth is

neff=k1+(k−1) ρ n_{\text{eff}} = \frac{k}{1 + (k-1)\,\rho} (11C.17)

With five signals correlated at a hypothetical 0.9, neff=5/(1+4×0.9)=5/4.6=1.09n_{\text{eff}} = 5/(1 + 4 \times 0.9) = 5/4.6 = 1.09: barely more than one.

Where the effective number comes from

Step 1: the variance of an average. Take kk signals, each with variance 1 and pairwise correlation ρ\rho. The variance of their sum is kk from the variances plus k(k−1)ρk(k-1)\rho from the covariances. Dividing by k2k^2, the average has variance (1+(k−1)ρ)/k(1 + (k-1)\rho)/k.

Step 2: the independent benchmark. An average of nn independent signals has variance 1/n1/n.

Step 3: equate them. Setting 1/neff=(1+(k−1)ρ)/k1/n_{\text{eff}} = (1 + (k-1)\rho)/k gives (11C.17). At ρ=0\rho = 0 it returns kk, and at ρ=1\rho = 1 it returns 1.

Familiar ground

(11C.17) is the design effect of a cluster-randomized trial. Patients within one clinic resemble each other, so a trial enrolling mm patients a cluster with an intraclass correlation ρ\rho has its effective sample size divided by 1+(m−1)ρ1 + (m-1)\rho. Five oscillators correlated at 0.9 are five patients from the same clinic: counting them as five independent confirmations inflates the evidence the way ignoring clustering inflates a trial's power.

The honest selection is one indicator per function:

FunctionKeep one
Momentum extremesRSI, the classical choice
Trend strengthADX
Volatility regimeATR or Bollinger bandwidth, but not both
Range structureDonchian

Confluence across different measurements is real evidence. Confluence across reparameterizations of the same measurement is noise.

The Dealer Mechanics Lab is not consistent on one pair. Its setup chapter, the source of Chapter 11H, combines IBS with RSI(2) and calls that confluence genuine, not multicollinear. Its argument is that IBS reads today's close within today's range, while RSI(2) reads a momentum extreme over several days. The trap above lists the same two among five measures of one quantity. Settle it on your own data: measure the correlation between the two, and use (11C.17) to see how much the second one adds.

11 · The menagerie

The full retail menagerie runs to some 23 indicators. Beyond the six above, it includes Stochastic, ROC, CCI, Williams %R, OBV, MFI, Aroon, Ichimoku Cloud, Parabolic SAR and SuperTrend. It also includes KAMA, the Choppiness Index, the Linear Regression Channel, Keltner Channels, Heikin Ashi candles, Mansfield Relative Strength and several others. Each has a use case, but almost none are essential. Sorted by the feature each mainly measures, most duplicate a core instrument:

Feature measuredMenagerie membersCore instrument that already measures it
Stretch within a recent rangeStochastic, Williams %R, CCI, MFI (with volume), IBSRSI
Speed of the moveROC, the rate of change over n barsMACD
Trend direction or strengthAroon, Parabolic SAR, SuperTrend, KAMA, Ichimoku Cloud, Linear Regression Channel, Heikin Ashi candles, Choppiness IndexADX, with the moving averages
Volatility bandKeltner Channels, an EMA with bands a multiple of ATR wideBollinger Bands or ATR
VolumeOBV, a running total of volume signed by each close's directionNone of the six
Performance against a benchmarkMansfield Relative Strength (Chapter 11D)None of the six

The retail bias is to add more indicators. The professional bias is to remove them. If you cannot say which feature of the data an indicator measures, drop it. If two indicators measure the same feature, drop one. Simpler systems generalize better, while complex systems overfit. It is the same Occam principle as Chapter 3A, applied to technical analysis.

In practice
  • Use the documented definitions: Wilder smoothing for RSI, ATR and ADX, and the standard periods, unless you have tested an alternative out of sample. Tuning a period until a backtest shines is overfitting (Chapter 3A).
  • Compute on the series you trade: SPY's price drops by roughly its dividend on each ex-dividend date (Chapter 2A), which an unadjusted RSI or ATR reads as a real loss.
  • Size with ATR: fix the dollar risk per trade, set the stop in ATRs, and let the share count fall as volatility rises.
  • Keep one instrument per function on your screen, with a note of what each is for.
When it fails

Every indicator here is a smoothed function of the past, so each one lags, ADX doubly so. Thresholds calibrated in one regime misread another: RSI can sit above 70 for weeks in a strong trend. ATR is in price points and drifts with the price level. A gap can carry the price through an ATR-based stop, so the loss at the stop is a target, not a limit.

Decision rule
  • Pick one indicator per function: RSI for extremes, ADX for trend strength, ATR or bandwidth for volatility, Donchian for the range.
  • Read thresholds as calibration points, to act on only inside the framework of Chapter 11B, never alone.
  • Size by ATR: with the stop kk ATRs away, buy the dollar risk divided by k×ATRk \times \text{ATR} in shares.
  • Before adding an indicator, name the feature it measures and check its correlation with the ones you have. If neffn_{\text{eff}} barely moves, leave it out.
Common mistake: "five indicators agree"

Five oscillators at their oversold extremes on the same bar are one measurement read five ways. Counting them as five confirmations turns a single stretched close into false certainty and sizes the trade for evidence that is not there.

Common mistake: swapping Wilder smoothing for a standard EMA

A generic exponential average, such as pandas' ewm(span=n), is the standard EMA, not Wilder's. An ADX or RSI built with it responds about twice as fast as Wilder's, so the documented thresholds of 20, 25, 30 and 70 no longer mean what they were calibrated to mean.

What to carry forward
  • Indicators are instruments, not edges. Each measures one feature: a momentum extreme (RSI), trend (MACD, ADX), volatility (ATR, Bollinger) or range structure (Donchian).
  • RSI, ATR and ADX are calibrated to Wilder smoothing, whose weight of 1/n1/n makes it behave like an EMA of period 2n−12n - 1.
  • RSI is the share of recent movement that came from gains. ATR, the typical bar in price points, sets position size. %B is a rescaled z-score and bandwidth four times a coefficient of variation.
  • Stretch oscillators such as RSI(2), IBS, %B, Williams %R and the stochastic oscillator measure one quantity. Correlated signals add little: neff=k/(1+(k−1)ρ)n_{\text{eff}} = k/(1 + (k-1)\rho).

12 · Check yourself

Question 1

The Wilder averages over 14 bars are a gain of 0.8 and a loss of 0.2. What is the RSI, and what does the conventional reading say?

Answer

RS is 4, so RSI =100−100/5=80= 100 - 100/5 = 80, or directly 100×0.8/1.0=80100 \times 0.8/1.0 = 80. Conventionally overbought, but in a strong trend that is a normal reading, not a signal.

Question 2

Which standard EMA period behaves like Wilder smoothing over 20 bars, and what are the two weights?

Answer

The matching period is 2×20−1=392 \times 20 - 1 = 39. Wilder's weight is 1/20=0.051/20 = 0.05, the same as the EMA(39) weight of 2/40=0.052/40 = 0.05.

Question 3

After a close of 50 yesterday, today's high is 48.5 and its low 47. What is the true range?

Answer

The three distances are 48.5−47=1.548.5 - 47 = 1.5, ∣48.5−50∣=1.5|48.5 - 50| = 1.5 and ∣47−50∣=3|47 - 50| = 3. The true range is 3, twice the day's own range, because the gap down counts.

Question 4

You risk 0.5% of a $200,000 account per trade, with the stop 1.5 ATRs away and the ATR at $4. How many shares do you buy?

Answer

The risk is $1,000 and the stop is 1.5×4=$61.5 \times 4 = \$6 away, so you buy 1,000/6=1661{,}000/6 = 166 shares, rounding down.

Question 5

A close sits 1.5 standard deviations above its 20-bar mean. What is its %B?

Answer

By (11C.11), %B=0.5+1.5/4=0.875\%B = 0.5 + 1.5/4 = 0.875: inside the bands, near the upper one, which sits at z=2z = 2.

Question 6

How many independent signals do three oscillators with pairwise correlations of 0.8 amount to?

Answer

By (11C.17), three oscillators correlated at 0.8 are worth neff=3/(1+2×0.8)=3/2.6=1.15n_{\text{eff}} = 3/(1 + 2 \times 0.8) = 3/2.6 = 1.15 independent signals. The second and third oscillators add less than a sixth of a signal between them.