14 — Bilateral & Wedge

Broadening Formation#

MegaphoneHeuristic1 min read
◆ The PatternDiverging trendlines — expanding volatility, increasing disagreement

The Broadening Formation (megaphone) has diverging trendlines — higher highs and lower lows. Volatility and disagreement are increasing. It often appears at major market tops and is one of the most difficult patterns to trade.

No clean measured move — trade the swings or wait for breakout
Each swing is larger than the last, swinging buyers and sellers into increasingly extreme positions.
// Broadening Formation — diverging trendlines
Key insight: Broadening formations reflect emotional extremes — they often appear during periods of uncertainty (elections, crises). The expanding range shows the market can't find consensus.
Pattern bridge: Expanding volatility — the market can’t agree on a price. In statistics, increasing variance signals instability.
Worked example

Swing highs at 105, 108 and 111, swing lows at 95, 92 and 89: each swing reaches further than the last (widths 10, 16 and 22). There is no measured move — the pattern describes growing volatility and disagreement, not a direction.

The example data

The turning points the daily closes run through, in straight lines between them; high and low are half a point either side of each bar.

DayClose
0100
3105
695
9108
1292
15111
1889
2195
Where it misleads
  • There is no clean entry: by the time three widening swings are visible, the next one is already large.
  • Widening swings mean wider stops, so position size has to shrink to keep the same risk.
  • Edwards and Magee treated it as a mostly bearish top; later counts are mixed.
In code
def swings(s, n=2):                     # a swing high (low) is the extreme of the 2n+1 bars around it
    w = s.rolling(2 * n + 1, center=True)
    return s[s == w.max()], s[s == w.min()]
c = df['close']
highs, lows = swings(c)
hi, lo = highs.iloc[-3:], lows.iloc[-3:]
broadening = hi.is_monotonic_increasing and lo.is_monotonic_decreasing
width = (hi.values - lo.values)                       # how far each swing reached
Python, in your browser — edit the code and run it again

Assumes import numpy as np, import pandas as pd, and a DataFrame df with columns open, high, low and close for the data above.

Sources
  • Technical Analysis of Stock Trends, R. D. Edwards & J. Magee, 1948 (later editions revised by W. H. C. Bassetti)
  • Encyclopedia of Chart Patterns (2nd ed.), T. N. Bulkowski, Wiley, 2005 — success and failure rates from large counts of patterns

Last reviewed October 2026 · How this site checks its content · Report a mistake

Linked from 1
← Previous
Falling Wedge
Open in the full reader, with the topic sidebar