3.4.9Indicators & Oscillators

Understand ADX and trend strength

3,184 words14 min readdifficulty · medium1 backlinks

The Average Directional Index (ADX) is a non-directional indicator that measures the strength of a trend, regardless of whether it's bullish or bearish. Developed by J. Welles Wilder, ADX helps traders distinguish between trending and ranging markets.

Figure — Understand ADX and trend strength

[!intuition] Core Intuition: What ADX Actually Measures

Think of ADX as a "trend thermometer." It doesn't tell you if the price is going up or down—it tells you how strongly the price is moving in whatever direction it's going.

Why do we need this? Many indicators work great in trending markets but fail miserably in sideways markets (and vice versa). ADX tells you which environment you're in so you can choose the right strategy.

The key insight: A strong trend means directional movement dominates random noise. ADX quantifies this by comparing how much the price moves in a consistent direction versus how much it just bounces around.

[!definition] The ADX Family of Indicators

ADX is actually part of a three-indicator system:

  1. +DI (Positive Directional Indicator): Measures upward directional movement
  2. -DI (Negative Directional Indicator): Measures downward directional movement
  3. ADX: Measures trend strength by smoothing the difference between +DI and -DI

Critical distinction: +DI and -DI tell you the direction; ADX tells you the strength.X can be high in both bull and bear markets.

[!formula] Building ADX from First Principles

Let's derive ADX step-by-step, understanding WHY each calculation exists.

Step 1: Directional Movement (DM)

For each period, we ask: "How much did price move directionally?"

+DM=HightodayHighyesterday (if positive and greater than -DM)DM=LowyesterdayLowtoday (if positive and greater than +DM)\begin{align} +DM &= \text{High}_{\text{today}} - \text{High}_{\text{yesterday}} \text{ (if positive and greater than -DM)} \\ -DM &= \text{Low}_{\text{yesterday}} - \text{Low}_{\text{today}} \text{ (if positive and greater than +DM)} \end{align}

Why this step? We isolate movement that's clearly directional. If today's high exceds yesterday's high by more than yesterday's low fell below the day before, that's bullish directional movement.

Key rules:

  • If both +DM and -DM are negative, both equal zero (no directional movement)
  • Only one can be non-zero period (the dominant direction wins)
  • Inside bars (where today's range is within yesterday's) produce zero DM

Step 2: True Range (TR)

We need to normalize by volatility. True Range captures the full extent of price movement:

TR=max(HighLow,HighCloseprev,LowCloseprev)TR = \max\left(\text{High} - \text{Low}, \left|\text{High} - \text{Close}_{\text{prev}}\right|, \left|\text{Low} - \text{Close}_{\text{prev}}\right|\right)

Why this step? Gaps make simple (High - Low) incomplete. TR includes gaps up or down from the previous close, giving us the true volatility.

Step 3: Wilder's Smoothing

We smooth +DM, -DM, and TR over 14 periods (Wilder's default). Wilder's smoothing is a recursive formula:

Smoothedtoday=SmoothedprevSmoothedprevn+Currenttoday\text{Smoothed}_{\text{today}} = \text{Smoothed}_{\text{prev}} - \frac{\text{Smoothed}_{\text{prev}}}{n} + \text{Current}_{\text{today}}

where n=14n = 14. The first smoothed value is simply the simple sum of the first nn raw values:

Smoothed1=i=1nRawi\text{Smoothed}_1 = \sum_{i=1}^{n} \text{Raw}_i

Why this step? Wilder's smoothing is like an exponential moving average—it gives decreasing weight to older data while reacting to new values. Each new period, we "remove" one average-sized chunk (Smoothedprev/n\text{Smoothed}_{\text{prev}}/n) and "add" the current raw value, keeping the smoothed sum stable and responsive.

Step 4: Directional Indicators (DI)

Now create the ratios:

+DI14=100×Smoothed +DM14Smoothed TR14DI14=100×Smoothed DM14Smoothed TR14\begin{align} +DI_{14} &= 100 \times \frac{\text{Smoothed }+DM_{14}}{\text{Smoothed }TR_{14}} \\ -DI_{14} &= 100 \times \frac{\text{Smoothed }-DM_{14}}{\text{Smoothed }TR_{14}} \end{align}

Why this step? Dividing by TR normalizes for volatility. A 2moveina2 move in a 20 stock is more significant than in a $200 stock.

Result: +DI and -DI now range from 0 to 100, showing relative directional strength.

Step 5: Directional Index (DX)

Now we measure how different +DI and -DI are. Writing DI+DI_+ for +DI and DIDI_- for -DI to avoid confusing double-minus notation:

DX=100×DI+DIDI++DIDX = 100 \times \frac{\lvert DI_+ - DI_- \rvert}{DI_+ + DI_-}

That is, DX=100×abs(DI+DI)/(DI++DI)DX = 100 \times \text{abs}(DI_+ - DI_-) / (DI_+ + DI_-).

Why this step? When DI+DI_+ and DIDI_- are very different, one direction dominates—that's a strong trend. When they're similar, price is chopping—that's a weak trend. The absolute difference divided by the sum gives us a normalized measure (0–100).

Step 6: Average Directional Index (ADX)

Finally, we smooth DX (using the same Wilder's smoothing as Step 3):

ADX=14-period Wilder-smoothed average of DXADX = \text{14-period Wilder-smoothed average of } DX

Why this final step? Raw DX is too jumpy. Smoothing it gives a stable trend-strength measure that changes gradually, filtering out single-period noise.

[!example] Worked Example: Calculating ADX Manually

Let's calculate 3 days of the ADX process:

Given data:

Day 0: H=52, L=49, C=50
Day 1: H=54, L=51, C=53
Day 2: H=53, L=50, C=51
Day 3: H=55, L=52, C=54

Day 1 Calculation:

+DM: High_1 - High_0 = 54 - 52 = +2 -DM: Low_0 - Low_1 = 49 - 51 = -2 (negative, so 0) Since +DM > -DM, +DM = 2, -DM = 0

TR: max(54-51=3, |54-50|=4, |51-50|=1) = 4

Why these steps? We're capturing that Day 1 moved up (new high) with +DM=2, and the total range including the gap from Day 0's close is 4.

+DI_1 (assuming smoothed values): If smoothed +DM₁₄ = 1.8, smoothed TR₁₄ = 3.5 +DI = 100 × (1.8/3.5) = 51.4

-DI_1: If smoothed -DM₁₄ = 0.9, -DI = 100 × (0.9/3.5) = 25.7

DX_1: 100 × |51.4 - 25.7|/(51.4 + 25.7) = 100 × 25.7/77.1 = 33.3

Day 2 Calculation:

+DM: 53 - 54 = -1 (negative, so 0) -DM: 51 - 50 = +1 Since -DM > +DM, +DM = 0, -DM = 1

TR: max(53-50=3, |53-53|=0, |50-53|=3) = 3

Why this matters? Day 2 is a down day (lower high), so directional movement shifted to -DM.

Continue smoothing, calculate +DI, -DI, DX, then smooth DX to get ADX.

The key insight from this example: Each component builds on the last. DM captures direction, TR normalizes by volatility, DI creates comparable ratios, DX measures trend consistency, and ADX smooths for stability.

[!example] Real Trading Scenario

Setup: A stock has been in a range (4848-52) for weeks. ADX = 18 (weak trend).

Event: News breaks. Stock surges to $58 over 5 days.

What happens to ADX?

  • Days 1-2: +DM spikes, -DM drops. +DI rises sharply, -DI falls. DX jumps from ~15 to ~60.
  • Days 3-5: Continued upward movement. DX stays high (55-65).
  • ADX lags: Starts at 18, rises to 22, then 28, then 36 by day 5.

Why the lag? ADX is a smoothed average of DX. It takes time to reflect the new trend.

Trading implication: Don't wait for ADX to confirm—it's a lagging indicator. Use +DI/-DI crossovers for entry, ADX for confirmation that a trend has established itself.

[!formula] ADX Interpretation Levels

Wilder's guidelines (still widely used):

ADX<20:Weak/No Trend — use range-bound strategies20ADX<25:Emerging Trend — watch for breakouts25ADX<50:Strong Trend — trend-following strategies workADX50:Very Strong Trend — potential exhaustion comingADX>75:Extreme — trend may be nearing end\begin{align} ADX < 20 &: \text{Weak/No Trend — use range-bound strategies} \\ 20 \leq ADX < 25 &: \text{Emerging Trend — watch for breakouts} \\ 25 \leq ADX < 50 &: \text{Strong Trend — trend-following strategies work} \\ ADX \geq 50 &: \text{Very Strong Trend — potential exhaustion coming} \\ ADX > 75 &: \text{Extreme — trend may be nearing end} \end{align}

Why these levels? Empirical observation over decades. The 20-25 zone is where trend-following strategies start outperforming mean-reversion strategies.

Critical nuance: These are guidelines, not rules. Market regime, timeframe, and asset class matter.

[!example] Using ADX with Direction Indicators

Scenario: You want to trade trend breakouts.

Method:

  1. Wait for ADX < 20 (confirming range/chop)
  2. Watch for +DI to cross above -DI (bullish) OR -DI to cross above +DI (bearish)
  3. Enter when ADX starts rising from below 20 (trend emerging)
  4. Exit when ADX peaks and starts falling, or when +DI/-DI cross back

Example trade:

Week 1: ADX=18, +DI=22, -DI=26 → No trade (ranging)
Week 2: ADX=19, +DI=28, -DI=24 → +DI crossed above -DI, ADX rising → BUY
Week 3: ADX=25, +DI=35, -DI=20 → Hold (strong uptrend)
Week 4: ADX=42, +DI=38, -DI=22 → Hold (very strong)
Week 5: ADX=39, +DI=32, -DI=28 → ADX falling, signals weakening → Consider exit
Week 6: ADX=32, +DI=28, -DI=30 → -DI crossed above +DI → EXIT

Why this works? You're entering as trends establish (not in the middle), riding them while ADX confirms strength, and exiting as the trend weakens—before full reversal.

[!mistake] Common Mistake #1: "High ADX Means Buy"

The wrong idea: "ADX is at 65, that's super strong, I should buy!"

Why it feels right: High ADX does mean strong trend. Our brain associates "strong" with "good opportunity."

The fix: ADX is non-directional! ADX=65 could mean a strong downtrend. Always check +DI vs -DI:

  • If -DI > +DI and ADX is high: strong downtrend (bearish)
  • If +DI > -DI and ADX is high: strong uptrend (bullish)

Furthermore: Very high ADX (>75) often precedes trend exhaustion. It's a caution signal, not a buy signal.

[!mistake] Common Mistake #2: Using ADX Alone for Entries

The wrong idea: "ADX crossed above 25, time to enter!"

Why it feels right: The 25 level is the "strong trend" threshold. Seems logical to enter there.

The fix: ADX tells you when to use trend strategies, not which direction to trade. You need:

  1. ADX for trend strength confirmation
  2. +DI/-DI for directional bias
  3. Price action or another indicator for specific entry

Better approach: Use ADX as a filter. Only take trend-following signals when ADX > 25. Ignore them when ADX < 20.

[!mistake] Common Mistake #3: Ignoring the Lag

The wrong idea: "ADX rose from 15 to 22, the trend just started!"

Why it feels right: ADX is rising, seems like early trend detection.

The fix: ADX is heavily smoothed (14-period Wilder average of smoothed DX). By the time ADX rises meaningfully, the trend is already several periods old.

Implication: ADX is for confirmation, not prediction. For early entries, watch:

  • +DI/-DI crossovers (faster)
  • Price breaking key levels
  • Other leading indicators

Then use ADX to confirm "yes, this is a real trend, not a fake breakout."

[!recall]- Feynman Technique: Explain to a 12-Year-Old

Imagine you're watching a river. Sometimes the water flows fast and steady in one direction—that's a strong current. Other times, it swirls around, going up, down, left, right—that's chopy water with no clear flow.

ADX is like a "current meter" for stock prices. It doesn't tell you if the river is flowing north or south—it tells you HOW STRONG the flow is.

Here's how it works:

  1. Every day, we measure: "Did the price make a higher high?" (+DM) or "Did it make a lower low?" (-DM)
  2. We also measure how much the price moved in total (True Range)
  3. We compare: "What % of the total movement was directional?" That gives us +DI and -DI
  4. We check: "Are +DI and -DI very different?" If yes, one direction is dominating—strong current! If they're similar, the water is choppy.
  5. We smooth everything out to ignore tiny waves and focus on the real current—that's ADX.

When ADX is low (<20): The river is chopy. Fish (traders) should stay near the shore (range strategies). When ADX is high (>25): The river has a strong current. Fish can swim with the flow (trend strategies).

The smart fish don't just jump in when the current is strong—they check +DI and -DI first to see WHICH WAY the current is flowing!

[!mnemonic] Remember ADX

A-D-X = "Assess Direction's X-factor"

  • Assess: Always check before committing to a trend strategy
  • Direction: Need +DI/-DI for direction; ADX alone is blind
  • X-factor: The "strength multiplier"—even good setups fail without it

Number mnemonic: "20-25-50-75"

  • 20: "Too weak, don't seek"
  • 25: "Trend's alive, now we thrive"
  • 50: "Very strong, ride along"
  • 75: "Extreme scene, trend may wean"

Connections

  • Moving Averages: ADX confirms when MA crossovers are in trending vs ranging markets
  • RSI: Use ADX to decide: RSI divergences (trending) vs RSI reversals (ranging)
  • Bollinger Bands: Low ADX = expect Bollinger Squeeze, High ADX = expect band walks
  • Support and Resistance: ADX < 20 = respect S/R levels, ADX > 25 = expect breakouts
  • MACD: MACD signals more reliable when ADX confirms trend strength
  • Volatility: ADX indirectly measures volatility's directionality, not just magnitude
  • Breakout Trading: ADX rising from <20 validates breakouts vs fakeouts
  • Position Sizing: Scale up in high ADX trends, down in low ADX chop

Key Takeaways

  1. ADX measures trend strength, not direction—always pair with +DI/-DI
  2. Built from directional movement normalized by true range, then smoothed twice
  3. Threshold: <20 (ranging), 20-25 (emerging), 25-50 (strong), >50 (extreme)
  4. Lagging indicator—use for confirmation, not early entry signals
  5. High ADX can mean strong uptrend OR downtrend—check +DI vs -DI
  6. Best used as a strategy filter: trend methods when ADX high, range methods when low

#flashcards/stock-market

What does ADX measure? :: ADX measures the strength of a trend, regardless of direction. It does not tell you if the trend is bullish or bearish.

What are the three components of the ADX system?
+DI (positive directional indicator), -DI (negative directional indicator), and ADX (average directional index for trend strength).
If ADX is 45 and -DI > +DI, what does this indicate?
A strong downtrend. High ADX confirms strong trend, and -DI > +DI indicates the direction is down.
What is +DM (positive directional movement)?
+DM = Today's High - Yesterday's High (if positive and greater than -DM). It measures upward directional movement.
Why do we divide DM by True Range when calculating DI?
To normalize for volatility. A 2movemeansdifferentthingsfora2 move means different things for a 20 stock vs a $200 stock. TR normalization makes DI comparable across different price levels and volatility regimes.
What is the formula for DX (directional index)?
DX = 100 × abs(DI_plus - DI_minus) / (DI_plus + DI_minus). It measures how different the two directional indicators are.
ADX below 20 suggests what market condition?
Weak or no trend—a ranging/choppy market. Use mean-reversion or range-bound strategies.
ADX above 25 suggests what market condition?
A strong trend is present. Trend-following strategies are more likely to work.
What does ADX above 75 typically signal?
An extremely strong trend that may be approaching exhaustion or climax. Consider it a caution signal, not a buy signal.
Why is ADX considered a lagging indicator?
Because it's a 14-period Wilder-smoothed average of DX, which itself uses smoothed values. By the time ADX shows a strong trend, several periods have passed.
How do you identify an emerging trend using the ADX system?
Watch for +DI/-DI crossover while ADX < 20, then wait for ADX to start rising above 20. This confirms trend is establishing.
What's the difference between True Range and simple (High - Low)?
True Range includes gaps by using max(H-L, |H-C_prev|, |L-C_prev|), capturing the full extent of volatility including overnight gaps.
Can ADX be high in both bull and bear markets?
Yes. ADX only measures trend strength, not direction. You need +DI and -DI to determine if it's a bull or bear trend.
What happens to +DM and -DM on inside bar day?
Both equal zero. An inside bar (where today's range is entirely within yesterday's range) has no directional movement.
Why does Wilder use 14 periods as the default for ADX?
Empirical testing showed 14 periods balances responsiveness with smoothness, filtering noise while still reacting to meaningful trend changes. It's roughly half a trading month.
What is Wilder's smoothing formula?
New_smooth = Previous_smooth - (Previous_smooth / n) + Current_value, where n=14. The first smoothed value equals the simple sum of the first n raw values.
How should you use ADX as a strategy filter?
Only take trend-following signals when ADX > 25. Only take mean-reversion signals when ADX < 20. This matches strategy type to market condition.
If +DI = 35, -DI = 34, what is DX?
DX = 100 × |35-34| / (35+34) = 100 × 1/69 ≈ 1.4. Very low DX indicates no clear directional dominance.
What signal suggests exiting a trend trade using ADX?
When ADX peaks and starts declining, or when +DI and -DI cross back (directional indicator reversal). This indicates trend weakening.
Why shouldn't you use ADX alone for entry timing?
ADX tells you trend strength but not direction or exact entry point. You need additional tools (+DI/-DI crossover, price action, support/resistance) for actual entries.

Concept Map

developed

measures

ignores

distinguishes

guides

compute

upward

downward

max range with gaps

normalized by

Wilder smoothing 14

smoothed via

smoothed via

diff of +DI and -DI

J Welles Wilder

ADX Trend Strength

Trend Strength Only

Bull or Bear Direction

Trending vs Ranging Market

Strategy Choice

High Low Prices

Directional Movement

+DI Positive

-DI Negative

True Range

Smoothed Values

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, ADX ko ek "trend thermometer" ki tarah samajho. Yeh indicator tumhe yeh nahi batata ki price upar jaa rahi hai ya neeche — yeh sirf yeh batata hai ki jo bhi direction mein price move kar rahi hai, woh kitni strongly move kar rahi hai. J. Welles Wilder ne isko banaya tha, aur iska core kaam hai trending market aur sideways (ranging) market ke beech difference batana. Yeh isliye important hai kyunki bahut saare indicators trending market mein toh mast kaam karte hain, par jab market flat ya sideways ho, tab woh fail ho jaate hain. Toh ADX pehle tumhe environment ka pata deta hai taaki tum sahi strategy choose kar sako.

Ab core intuition yeh hai — jab ek strong trend hota hai, tab directional movement random noise (bekaar ke up-down bounces) ko dominate karta hai. ADX bas isi cheez ko measure karta hai: price kitna consistent direction mein move kar rahi hai versus kitna sirf idhar-udhar bounce kar rahi hai. Iske liye poora system teen indicators ka hai — +DI upward movement dikhata hai, -DI downward movement, aur ADX in dono ke difference ko smooth karke trend ki strength nikaalta hai. Yaad rakho: +DI aur -DI direction batate hain, jabki ADX sirf strength batata hai, chahe bull market ho ya bear market.

Formula ke steps ka logic bhi seedha hai — pehle Directional Movement nikaalte hain (aaj ka high ya low kitna directional move hua), phir True Range se volatility ko normalize karte hain (kyunki 20 rupaye ke stock mein 2 rupaye ka move, 200 wale se zyada matter karta hai), phir Wilder's smoothing lagate hain jo purane data ko kam weight deta hai aur naye ko zyada. Yeh sab milke ek clean number deta hai jo 0 se 100 tak hota hai. Practical baat yeh hai — agar tumhe ADX samajh aa gaya, toh tum galat market mein galat strategy lagane se bach jaoge, aur yehi cheez ek disciplined trader ko bakiyon se alag karti hai.

Test yourself — Indicators & Oscillators

Connections