Support and resistance levels are horizontal price zones where buying pressure (support) or selling pressure (resistance) has historically been strong enough to halt or reverse price movement. Every other indicator in this course either confirms, refines, or derives from these foundational levels.
Section 1: Core Mechanics
What Is It?
Support is a price zone where demand exceeds supply — buyers step in and price bounces up. Resistance is a price zone where supply exceeds demand — sellers step in and price turns down. Neither is a magic line. Both are zones of historical price memory.
How Levels Are Identified
There is no single formula for S/R levels. Five methods identify them:
Method 1 — Prior Swing Highs and Lows
A swing high (price rose, peaked, then fell) becomes resistance on the next approach. A swing low (price fell, bottomed, then rose) becomes support. These are the most reliable S/R levels because they represent actual traded prices where buyers or sellers dominated.
Method 2 — Consolidation Zones
When price moves sideways for multiple bars before breaking out, that entire consolidation range becomes a future S/R zone. The longer price consolidates, the stronger the zone — more contracts traded at those prices, more traders who remember.
Method 3 — Psychological Round Numbers
$100, $150, $200, $500, $1,000 — round numbers act as S/R because human cognition clusters limit orders and targets around them. This effect is strongest in heavily traded instruments.
Method 4 — 52-Week and All-Time Highs/Lows
When price approaches the 52-week high or an all-time high, there is no prior overhead resistance — price is in uncharted territory. These levels act as psychological resistance. All-time lows act as ultimate support.
Method 5 — Previous Period Open/Close
The prior day's high, low, open, and close create intraday S/R levels. The prior week's high/low creates swing-level S/R. These levels are objective, calculated from fixed data, and respected by algorithmic systems.
Parameters
| Parameter | Default | Range | Impact |
|---|---|---|---|
| Lookback window | 50–200 bars | 20–500 | Longer = fewer but more significant levels |
| Zone width | 0.5–1% of price | 0.1–2% | Wider = catches more touches, less precise |
| Minimum touches | 2 | 2–5 | Higher = more confirmed but later identified |
Output
S/R is not a numeric output — it is a set of horizontal zones on the price chart. Each zone has a lower bound and upper bound, typically 0.5–1% wide.
Visual Behavior
- Strong support: price repeatedly touches the zone and bounces up — multiple lower wicks touching the same area
- Strong resistance: price repeatedly tests the zone and falls — multiple upper wicks touching the same area
- Zone breach: price closes decisively through the zone, often with expanded range and elevated volume
Section 2: Interpretation & Signals
Signal Zones
| Condition | Interpretation |
|---|---|
| Price approaches support from above | High-probability long setup — buyers expected |
| Price approaches resistance from below | High-probability short setup — sellers expected |
| Price closes below support | Support broken — bullish thesis invalidated |
| Price closes above resistance | Resistance broken — bearish ceiling removed |
| Broken support, price returns | Role reversal — former support now resistance |
| Broken resistance, price returns | Role reversal — former resistance now support |
Role Reversal — The Most Powerful Concept
When a support level breaks, the supply that overwhelmed demand at that price does not disappear. When price later returns to that level from below, the same sellers who were trapped long use the retest to exit — creating new selling pressure. Former support becomes resistance. The reverse applies when resistance breaks.
This principle — role reversal — is the reason S/R levels have lasting value. They encode the memory of trapped traders.
Multi-Touch Confirmation
A level tested two times with bounces is significant. Three or more touches with bounces makes it a high-conviction zone. Every additional test without breaking adds strength — but also increases the probability of an eventual break, because each test consumes the available supply or demand at that level.
Zone vs. Line — The Critical Distinction
Price respects zones, not precise numbers. Treat all S/R as a band ±0.5–1% around the identified price. A wick piercing $450.00 by 30 cents before bouncing is a successful test of the $448–452 zone, not a break. Only a candle close outside the zone counts as a breach.
Chart — Role Reversal Setup
SPY — Support Breaks, Retests as Resistance (Role Reversal)
Section 3: Pass vs. Live — Real-Time Reliability
S/R levels derived from historical price bars never repaint. Once a swing high or low is confirmed (the next 2 bars close lower or higher), the level is fixed. Live candles can create apparent new levels that disappear if the move reverses — always wait for candle close before logging a new level.
Section 4: Practical Use Cases
Setup: Identify yesterday's high, low, and close as intraday S/R zones Signal: Price touches a zone with a rejection candle (hammer, shooting star, inside bar) Entry: One tick above the rejection candle high (for longs at support) Exit: Next S/R zone above, or 1.5× the zone width as target Key Rule: Only trade zone touches where volume spikes on the rejection candle
Setup: Mark swing highs and lows from the prior 3 months on the daily chart Signal: Price pulls back to a 3-touch support zone in an established uptrend Entry: Daily close above the support zone after a wick test Stop: Daily close below the bottom of the zone Target: Prior swing high (the resistance above)
Setup: Mark the 52-week high/low and all-time high/low on weekly chart Signal: Price reclaims a major S/R zone after spending 3+ weeks below/above it Entry: Weekly close back inside the zone Stop: Weekly close through the far edge of the zone Target: Next major S/R zone — typically 10–20% away on weekly charts
Real-world example — SPY $450 level: The $448–452 zone on SPY acted as support during the 2022 correction (tested January, April, and June 2022). When it broke in June 2022, SPY fell to $362. The zone became resistance — every rally from August to October 2022 capped near $452. When SPY finally closed above $452 in November 2022, the role reversal completed — the level became support again through the 2023 bull run, with pullbacks bottoming near $450 in February and May 2023.
Section 5: Pseudo Code
INPUT: highs[], lows[], closes[], lookback=100, zone_width_pct=0.005
PROCESS:
Step 1: Identify swing highs
For each bar i in range(2, len(highs) - 2):
if highs[i] > highs[i-1] and highs[i] > highs[i-2]
and highs[i] > highs[i+1] and highs[i] > highs[i+2]:
swing_highs.append((i, highs[i]))
Step 2: Identify swing lows
For each bar i in range(2, len(lows) - 2):
if lows[i] < lows[i-1] and lows[i] < lows[i-2]
and lows[i] < lows[i+1] and lows[i] < lows[i+2]:
swing_lows.append((i, lows[i]))
Step 3: Cluster nearby levels into zones
Zone: level ± (level × zone_width_pct)
If two levels fall within the same zone band, merge them
Step 4: Count touches for each zone
Touch = any bar where high >= zone_low AND low <= zone_high
Rank zones by touch count (higher = more significant)
Step 5: Determine zone type at current bar
If last_close > zone_midpoint: zone is support
If last_close < zone_midpoint: zone is resistance
OUTPUT: zones[] — list of (price, zone_low, zone_high, touch_count, type)
EDGE CASES:
- Fewer than 10 bars: return empty (insufficient data)
- Price in a zone: zone is neither support nor resistance — it is contested
- All-time high: no resistance above — flag as "uncharted territory"
Section 6: Parameters & Optimization
Standard Conventions
| Method | Lookback | Zone Width | Use Case |
|---|---|---|---|
| Intraday scalping | Prior 2 days | 0.2–0.3% | Precise intraday levels |
| Swing trading | 3–6 months | 0.5–1% | Daily and 4H chart zones |
| Position trading | 1–3 years | 1–2% | Major structural levels |
Parameter Impact
| Change | Effect | When to Apply |
|---|---|---|
| Wider zone | Catches more touches, fewer false breaks | Volatile instruments (crypto, small-caps) |
| Narrower zone | More precise entries, more apparent breaks | Large-cap stocks, liquid futures |
| More touches required | Fewer levels, higher conviction | Signal filtering in busy charts |
Why does zone width matter more than an exact price?
Markets are not precise. Thousands of orders cluster within a price band, not at one tick. A $1 zone in a $450 stock (0.22%) is reasonable. Requiring price to touch exactly $450.00 will miss the majority of legitimate level tests. Use the zone's lower boundary for stop placement (below support) and upper boundary for entry (above the retest candle high).
How many S/R levels should be on a chart at once?
Three to five active zones is the practical limit. More than five creates noise — every bounce looks like it came from a "level." Mark the two most significant support zones below current price and two most significant resistance zones above. Add the current week's high/low as intraday references. Remove levels that have not been tested in 6+ months.
What makes a level "significant" vs. just a random price?
Significance comes from three sources: (1) Time at level — longer consolidation = stronger memory. (2) Volume at level — high-volume zones encode more institutional activity. (3) Clarity of reaction — sharp, fast bounces signal strong order concentration. A gradual drift through a level is weak. A sharp spike and reversal is strong.
Section 7: Synergies & Conflicts
| Works Well With | Avoid Combining With | |
|---|---|---|
| Volume Profile | Confirms S/R zones with actual traded volume at price — high-volume nodes validate S/R levels | — |
| RSI Divergence | Bullish divergence at support (RSI makes higher low while price makes lower low) = powerful entry signal | — |
| Fibonacci Retracement | Fibonacci levels coinciding with swing S/R = confluence zones — highest-probability entries | — |
| Candlestick Patterns | Hammer at support, shooting star at resistance — pattern confirms zone respect | — |
| Multiple S/R methods simultaneously | — | Drawing every swing high/low, pivot, Fibonacci, and round number creates 20+ lines — paralysis by analysis |
| Random indicator overlays | — | Adding RSI, MACD, Stochastic AND S/R without a signal hierarchy means no clear entry rule |
| News-day S/R trading | — | S/R levels frequently fail during major data releases — price gaps through zones without testing |
Section 8: Common Mistakes
| Mistake | Root Cause | Solution |
|---|---|---|
| Drawing too many levels | No filter for significance | Limit to 2 support + 2 resistance zones maximum |
| Using exact prices as stops | Treating zones as lines | Place stop 0.5% below the zone, not at the zone midpoint |
| Ignoring role reversal | Only looking for new bounces | Before every trade, check if you are approaching a broken level from the wrong side |
| Trading S/R in ranging markets only | Not checking trend context | In a strong uptrend, skip resistance shorts — trend bias overrides S/R fades |
| Not updating levels after breaks | Stale chart markup | Remove a level from the chart once it is cleanly breached — it no longer functions as S/R |
Section 9: Cheat Sheet
USE WHEN: Price approaches a zone tested 2+ times, trend is established, volume confirms reaction
AVOID WHEN: Price is in the middle of a zone, major news event within 30 minutes, first touch only
ENTRY SIGNAL: Rejection candle (hammer/shooting star) at a multi-touch zone + volume spike
EXIT SIGNAL: Price closes through the zone by more than the zone width (full close, not a wick)
PARAMETERS: Zone width 0.5–1% of price | Minimum 2 touches | Lookback 50–200 bars
CONFLUENCE: Volume Profile nodes + Fibonacci levels + round numbers at the same price
RISK: First-touch levels fail 40–50% of the time — wait for multi-touch confirmation
BEST TIMEFRAME: Works across all timeframes — most powerful on Daily and Weekly