Guide — chart patterns

The TradingView pattern library.

Every pattern TradingView's automatic detection knows, plus the harmonic drawing tools — each with a diagram, the measured-move rule, published reliability statistics, and the traps. TradingView's built-in auto-detection scans the most recent 600 bars and covers 15 classic patterns; the indicators live under Indicators → Technicals → Patterns on any Supercharts layout.

Reliability at a glance ↑ top

Success-rate figures below follow Tom Bulkowski's large-sample pattern research (thousands of occurrences, primarily US stocks) as summarised by LiberatedStockTrader's meta-review. Treat them as relative rankings, not guarantees — intraday index/CFD behaviour differs, which is exactly why the data-science card at the bottom shows you how to re-measure them on your own market.

PatternTypePublished success rateMeasured-move rule
Head & Shoulders (top)Reversal ↓~89% (best-ranked reversal)Head-to-neckline height projected below the break
Inverse Head & ShouldersReversal ↑~89% / lowest bullish failure rate (~11%)Height projected above the neckline break
Double BottomReversal ↑~88%Trough-to-peak height above the confirmation break
Triple BottomReversal ↑~87%Pattern height above the break
Descending Triangle (break down)Continuation/either~87%Widest height projected from the break
Double / Triple TopReversal ↓~75–80%Height below the neckline break
RectanglesContinuation~80% with trendRange height from the broken edge
Flags / PennantsContinuation~70–80% with trendFlagpole length re-projected from the break
Rising / Falling WedgeReversal (usually)~70–75%Retrace to the wedge's origin
Symmetrical TriangleBilateral~54–72% (direction unreliable)Widest height from the break

15 auto-detected patterns600 bars scanned50–89% published success range#1 most reliable: H&S family

Reversal patterns ↑ top

Head & Shoulders / Inverse — the benchmark reversal
LSHeadRS neckline break = trigger
H&S top. Momentum fades left to right; right shoulder on lowest volume.
LSHeadRS
Inverse H&S. Lowest failure rate of any bullish pattern (~11%).
  • Elliott translation: LS–Head is wave 5 with divergence; RS is the B-wave bounce failing under the old high. Same structure, two languages.
  • Entry: neckline break close, or (higher R:R) the retest of the neckline from the other side. Target = head height from the break.
  • Trap: sloping necklines invite premature entries — require a close beyond the neckline drawn through both armpits, and check volume expands on the break.
Double & Triple Tops / Bottoms — the level that holds twice
12 neckline = trigger
Double top ("M"). Second peak often with RSI divergence.
break of the highs confirms
Triple bottom. ~87% published success once confirmed.
  • Confirmation matters: the pattern doesn't exist until the neckline (the swing between the touches) breaks — trading the second touch is a range fade, not a pattern trade. Both are valid, but size and target them differently.
  • Best filter: divergence on touch 2 (or 3) plus a failed-poke wick beyond the level — the same trapped-trader logic as the range strategy's failed-break entry.
  • Intraday note: on US500/GER40 5m, "double tops" at yesterday's high that are actually expanded-flat B-waves will wick above touch 1 before reversing — give the second touch room or wait for the neckline.

Continuation patterns ↑ top

Flags, Pennants & Rectangles — pauses in an impulse
pole target = pole re-projected
Bull flag. 2–5 bar drift against the pole.
converging micro-triangle
Pennant. Same logic, triangular pause.
range height = target
Rectangle. Sideways shelf; break with trend.
  • The one rule that filters most failures: volume must contract during the pause and expand on the break. A "flag" on rising volume is distribution, not rest.
  • Elliott translation: flags/pennants are small wave-4s (or ii's); the measured move (pole ≈ pole) is the equality guideline in disguise. If the first pole was already a wave 5, the "flag" is a topping B-wave — check the higher-timeframe count before assuming continuation.
  • Where they shine: the momentum-scalp entries of Strategy 6 are 1-minute bull flags by another name; WTI and US100 produce the cleanest ones during their high-energy windows.

Bilateral patterns ↑ top

Triangles & Wedges — coiling energy, direction TBD
flat top + rising lows
Ascending. Usually resolves up.
direction unreliable — wait for break
Symmetrical. Elliott's contracting triangle.
converging up-slope = bearish
Rising wedge. Elliott's ending diagonal.
  • Ascending/descending: the flat side is accumulated orders; the break through it is the tradeable event (~87% for descending-triangle breakdowns in Bulkowski's data). The volume-breakout strategy is the execution template.
  • Symmetrical: direction is near coin-flip pre-break — never pre-position. In wave-4 position, expect the break with trend and a final-wave thrust (see EW triangles).
  • Wedges: the highest-information bilateral pattern because of the momentum story: five overlapping pushes with stacking divergence. Rising wedge after an extended rally = ending diagonal = expect the entire wedge retraced. Falling wedge into support = its bullish mirror.

Harmonic patterns on TradingView ↑ top

The XABCD family — precision reversal zones by ratio

TradingView ships a dedicated XABCD drawing tool (and the community publishes dozens of auto-scanners) for the harmonic family. All share the same anatomy — an impulse XA, retracement AB, minor BC, and a completing CD leg into the Potential Reversal Zone — differing only in their required ratios.

XABCD? PRZ Bearish shown (sells at D). Bullish patterns are the mirror image — D completes below into support.
Fig P1. Generic XABCD. Each named pattern is this shape with specific B and D ratios (table below).
PatternB point (of XA)D completes atCharacter
Gartley61.8%78.6% of XAShallow, trend-friendly — best in pullbacks within trends
Bat38.2–50%88.6% of XADeep retest near the origin; tight stops behind X
Butterfly78.6%127.2–161.8% of XA (beyond X)Extension reversal — catches blow-off ends
Crab38.2–61.8%161.8% of XAThe deepest extension; violent snap-backs
Cypher38.2–61.8%78.6% of XCPopular variant measured to XC, not XA
Shark—(uses 0-X-A-B-C)88.6–113% of the origin legAggressive; precedes 5-0 patterns
  • Gartley/Bat within trends, Butterfly/Crab at extremes: match the pattern family to the regime, exactly as ADX gates the strategies in Section 3.
  • Full trade plans: the site's harmonic combinations C5 (Bat + RSI divergence) and C6 (Gartley + fib cluster) give the checklist, stop and target logic — this table adds the sibling patterns to widen the map.
  • Elliott bridge: a Butterfly/Crab D beyond X is usually an expanded-flat B-wave or wave-5 extension completing — harmonics and waves are two grammars describing the same crowd behaviour. When both name the same level, that's real confluence.
Data-science corner — how to read (and re-measure) pattern statistics

Why published success rates mislead

  • Selection effect: studies count confirmed patterns (post-breakout). Your live problem includes all the almost-patterns that never confirmed — the denominator is different.
  • Market & timeframe drift: most stats come from daily US stock data. 5m index-CFD behaviour (spreads, session opens, news) changes the numbers materially.
  • Definition sensitivity: change the pivot threshold that defines "a swing" and half your double tops appear/disappear. Whatever detector you use, freeze its parameters before measuring.

Re-measuring on your market in ~40 lines

# Sketch: double-top detector + outcome measurement over ZigZag pivots
# pivots = DataFrame from the ZigZag algo on the Elliott page (time, price, kind)
TOL = 0.15   # peaks within 0.15×ATR are "equal"
results = []
for i in range(len(pivots) - 3):
    p1, t, p2, conf = pivots.iloc[i:i+4].itertuples(index=False)
    if p1.kind == p2.kind == 'H' and t.kind == 'L':
        if abs(p1.price - p2.price) <= TOL * atr_at(t.time):
            neck = t.price
            target = neck - (max(p1.price, p2.price) - neck)   # measured move
            hit = first_touch(after=conf.time, level=target)
            stop = first_touch(after=conf.time, level=max(p1.price, p2.price))
            results.append('win' if hit and (not stop or hit < stop) else 'loss')
win_rate = results.count('win') / len(results)   # YOUR number, for YOUR market

Run it per instrument and per session window. Typical findings worth knowing in advance: continuation patterns test far better with the prevailing regime (ADX > 25) than the headline rates suggest, and reversal patterns' edge concentrates at higher-timeframe levels — matching everything Section 3 preaches about stacking location with pattern.

TradingView workflow tip
Add the built-in pattern indicators (Indicators → search "Chart Pattern"), then create alerts on pattern detection instead of watching for shapes — and treat every alert as a candidate to run through a checklist, never as an entry. Community scripts by LuxAlgo and Trendoscope add configurable auto-detection with historical-marking you can eyeball-audit against this page's diagrams.

Resources ↑ top