Part XI · Swing trading · Chapter 11D

Chart patterns

Volatility contraction, cup and handle, bull flag

Where we are

After the indicators of Chapter 11C, this chapter treats chart patterns the same way: as shapes with explicit thresholds that a detector can check, and as priors on the order flow beneath them. It covers three: the volatility contraction pattern, the cup and handle, and the bull flag.

What you need first
  • Average true range, and multicollinearity among signals (Chapter 11C).
  • Relative strength against a benchmark (Chapter 11B) and Weinstein's Stage 2 (Chapter 11E).
  • Dealer delta hedging, and why short gamma trades with the move (Chapters 6C, 6D and 8A).
  • Sensitivity, specificity and positive predictive value, which you know from screening.

1 · Patterns as priors on order flow

A chart pattern is a pre-trade structural prior. It describes what the tape looks like when a particular kind of accumulation or distribution is happening underneath, as large holders slowly build or unload positions. Most retail pattern trading is reductive: "it looks like a cup", without checking whether the geometry satisfies the pattern's definition. A pattern detector operationalizes the geometry, with explicit thresholds for what counts and what does not.

In plain terms

A pattern is a shape with rules. The rules turn "it looks like a cup" into measurements a computer could check: how deep, how long and on how much volume. Passing the rules makes a candidate, not a trade, for the layers of Chapter 11B to accept or reject.

Chapter 11B graded this material as Tier C: practitioner pattern language, real but heuristic, whose rigorous formalization is your job. This chapter does part of that job with three recurring measurements:

  • The depth of a pullback is its fall as a fraction of the high it fell from: (Phigh−Plow)/Phigh(P_{\text{high}} - P_{\text{low}})/P_{\text{high}}.
  • The range of a consolidation is its high minus its low, as a fraction of the price.
  • A retracement is the part of a prior move that a pullback gives back, as a fraction of that move.

Volume enters as a comparison: the average daily volume of one stretch against another, or against a longer average.

2 · The volatility contraction pattern

Definition. The volatility contraction pattern (VCP), described by Minervini, is a series of three or more progressively shallower pullbacks that ends in a tight pivot. Each pullback should be smaller than the one before it. The final pivot should have a range of less than 5% of the price, and volume should compress into it.

Required anchors. Four anchors must hold before the pattern counts. The stock must be in a Stage 2 regime, with a rising 30-bar moving average (Chapter 11E), and show positive Mansfield relative strength against a benchmark. Volume must compress into the pivot, whose final range must stay under 5% of the price.

Mansfield relative strength compares relative strength (Chapter 11B) with its own history. Write Rt=St/BtR_t = S_t/B_t for the ratio of the stock's price to the benchmark's, and Rˉt\bar{R}_t for the nn-bar simple moving average of that ratio. Mansfield relative strength is their ratio, less one:

MRSt=RtRˉt−1 \text{MRS}_t = \frac{R_t}{\bar{R}_t} - 1 (11D.1)

It is positive when the stock is outperforming the benchmark by more than it usually does, over an averaging period nn that the source does not fix.

Worked example: Checking a VCP

Step 1: the pullbacks. In a rising stock, three pullbacks run from 120 to 98.4, from 118 to 106.2 and from 117 to 110. Their depths are 21.6/120=18%21.6/120 = 18\%, 11.8/118=10%11.8/118 = 10\% and 7/117=6%7/117 = 6\%: each shallower than the last.

Step 2: the pivot. The final consolidation trades between 112.8 and 116.5, a range of 3.7/116.5=3.2%3.7/116.5 = 3.2\%, under the 5% limit. Average daily volume falls from 2.0 million shares in the first pullback to 1.4 million, 0.9 million and 0.7 million in the pivot: compressing.

Step 3: the anchors. With the 30-bar average rising, the stock-to-SPX ratio is 0.0195 against a moving average of 0.0187, so (11D.1) gives 0.0195/0.0187−1=+4.3%0.0195/0.0187 - 1 = +4.3\%: positive. With the geometry and the anchors passing, a move above 116.5 is the breakout.

What the dealer sees. In the Dealer Mechanics Lab's reading, a VCP is accumulation visible on the tape. Volume dries up as the range narrows, because the marginal seller has been absorbed. Dealers who are short calls into the consolidation see their delta hedges shrink. The breakout is the moment dealers have to chase the move, because they are short the call wing into a rising market.

The chain behind that last sentence runs through Part VI, where a dealer short a call holds shares as its hedge. While the stock consolidates below the strike and time passes, the call's delta falls, so the dealer sells some of those shares. When the price breaks upward, the call's delta rises with it, so the dealer must buy shares as the price rises: short gamma trades with the move (Chapter 6D). Taken to its extreme, that feedback is the gamma squeeze of Chapter 8I.

Two cautions apply: whether dealers are short those calls is an assumption about who holds what, as Chapter 8B shows, and the Edge Book judges the dealer-gamma narrative overstated. A Cboe study of 2025 put 0DTE market-maker hedging at only about 0.2% of SPX daily liquidity (Chapters 1G and 10I). That study measures same-day index hedging, so applying it to dealers' hedges in a single stock's calls extends the measurement.

Why it works, when it does. Accumulation by institutional investors takes time, because they cannot all bid the same price at the same time without moving the market. So they place increasingly tighter limit orders as supply dries up. The breakout is the moment the last marginal seller has exited.

How it fails. A VCP that breaks down was probably not accumulating but distributing under thin cover. Verify the structural condition, meaning Stage 2, positive relative strength and a supportive macro read, before taking the trade.

The figure opens on the worked example's base. Drag the third pullback's low below 105.30. The picture still looks like a VCP, but the verdict fails it: the third pullback is now deeper than the second.

98.40
106.20
110.00
112.80
0.7M
depths = 18.0%, 10.0%, 6.0%
each shallower: yes
pivot range = 3.2%, under 5%
volume 2.0 → 1.4 → 0.9 → 0.7M

A VCP. Every threshold passes, so the buy point is a move above 116.50.

A base passes or fails on its measurements. A made-up rising stock with the worked example's highs of 120, 118 and 117 and a pivot that tops at 116.50, over the average daily volume of each pullback and of the pivot. Drag the lows and the pivot's volume: each depth is the fall over the high it fell from, and the pivot's range is its height over 116.50. The buy point appears only when each pullback is shallower than the last, the pivot's range is under 5% and volume falls into the pivot. Stage 2 and positive Mansfield relative strength are taken as met, as in the worked example.

3 · The cup and handle

Definition. The cup and handle, described by O'Neil, is a rounding-bottom "cup" lasting weeks to months, followed by a shorter pullback, the "handle", of typically 3 to 12 weeks. The handle should not retrace more than 50% of the cup's depth. The breakout buy point is the high of the handle.

Required anchors. The cup's depth is typically 15% to 35%, and deeper cups are riskier. The handle forms on declining volume, in a stock that is in Stage 2 or moving from Stage 1 to Stage 2.

With the left lip of the cup at PLP_L, its bottom at PBP_B, the handle's high at PRP_R and the handle's low at PHP_H, the two tests are

depth=PL−PBPL \text{depth} = \frac{P_L - P_B}{P_L} (11D.2)
PR−PHPL−PB≤0.5 \frac{P_R - P_H}{P_L - P_B} \le 0.5 (11D.3)
Worked example: Measuring a cup

Step 1: the cup. The left lip is at 120 and the bottom at 90, a depth of 30/120=25%30/120 = 25\%, inside the typical 15% to 35%.

Step 2: the handle. The price recovers to 118 and pulls back to 110 on falling volume. By (11D.3), the handle gives back (118−110)/(120−90)=8/30=27%(118 - 110)/(120 - 90) = 8/30 = 27\% of the cup's depth, within the 50% limit.

Step 3: the buy point. The buy point is the handle's high, 118. A handle that fell to 102 would have given back 16/30=53%16/30 = 53\%, and the pattern would fail.

What the dealer sees. The Dealer Mechanics Lab reads the cup as one complete cycle of institutional position turnover: accumulation, run-up, distribution and re-accumulation. The handle is the final shakeout before the next leg up.

4 · The bull flag

Definition. A bull flag is a sharp, high-volume impulse move, the "flagpole", followed by a brief consolidation that drifts against the impulse on lower volume, the "flag". On a daily chart the flag should last 1 to 3 weeks, with its high as the breakout level.

Required anchors. The flagpole is at least 2 to 3 times the recent daily range. The flag retraces no more than 38% of the flagpole. Volume during the flag is decisively lower than during the flagpole.

The recent daily range is naturally measured by the average true range of Chapter 11C. The first anchor then asks for a pole of at least 2 to 3 ATRs.

Worked example: Measuring a flag

Step 1: the pole. With an ATR of $2.00, a stock runs from 100 to 108 in three sessions on heavy volume. The pole is 8 points, 4 ATRs, which clears the 2 to 3 the rule asks for.

Step 2: the flag. Over the next eight sessions the price drifts down to 105.50, on average volume 55% of the pole's, retracing 2.5/8=31%2.5/8 = 31\% of the pole, under the 38% limit.

Step 3: the trigger. The flag's high, 108, is the breakout level. A drift down to 104.50 would have retraced 3.5/8=44%3.5/8 = 44\%, too deep for a flag.

What the dealer sees. In the Dealer Mechanics Lab's reading, the flagpole is often dealer hedging flow itself: a short-gamma dealer forced to buy as a fundamental catalyst arrives. The flag is the brief period during which the gamma profile re-equilibrates. The breakout is the next wave of demand.

5 · The detector's thresholds

The table sets the three detectors side by side:

PatternShapeThresholdsContext requiredBuy point
Volatility contraction patternThree or more pullbacks, each shallower than the last, ending in a tight pivotPivot range under 5% of price; volume compressing into the pivotStage 2, a rising 30-bar MA; positive Mansfield relative strengthAbove the pivot
Cup and handleA rounded cup over weeks to months, then a shorter handle, typically 3 to 12 weeksCup depth typically 15% to 35%; handle retraces at most 50% of the cup's depth, on declining volumeStage 2, or moving from Stage 1 to Stage 2The handle's high
Bull flagA sharp pole on high volume, then a brief drift against it on lower volumePole at least 2 to 3 times the recent daily range; flag retraces at most 38% of the pole and lasts 1 to 3 weeks on a daily chartVolume in the flag decisively below the pole'sThe flag's high

6 · Why patterns work, when they do

Patterns are not magic but shorthand for institutional order flow that takes time to complete. When patterns fail, and they do often, it is almost always because the structural condition the pattern was supposed to encode was not actually there. The detector's job is to enforce the geometry. Your job is to verify the structural condition, meaning Stage 2, positive relative strength and a supportive macro read, before taking the trade.

The Edge Book does not evaluate chart patterns directly. Its general test for any candidate edge applies to them: a vivid narrative without academic backing is a red flag, and a real edge survives critical evaluation (Chapter 10I).

7 · Structure against noise

Run any pattern detector across hundreds of random tapes, for example by sweeping the seed of a random price generator. Even random tapes occasionally produce something the detector flags. False positives are the price of operating with a detector at all. The fix is not a stricter detector but the framework: patterns are necessary but not sufficient, and they earn capital only when the higher-layer conditions of regime, stage and relative strength confirm.

Screening arithmetic shows why, once you write π\pi for the share of scanned stretches that sit on genuine accumulation, the prevalence. Give the detector a sensitivity ss and a false-positive rate ff. By Bayes' theorem, the share of flags that are real is the positive predictive value:

PPV=s πs π+f (1−π) \text{PPV} = \frac{s\,\pi}{s\,\pi + f\,(1 - \pi)} (11D.4)
Worked example: Why the framework beats a stricter detector

Step 1: a raw scan. Suppose, hypothetically, that the detector catches 90% of genuine bases and flags 10% of random stretches, and that 5% of the stretches you scan sit on genuine accumulation. By (11D.4), PPV=0.045/(0.045+0.095)=32%\text{PPV} = 0.045/(0.045 + 0.095) = 32\%, so two flags in three are noise.

Step 2: a stricter detector. Tighten the thresholds until the detector flags only 3% of random stretches, at the cost of catching only 60% of real bases. Then PPV=0.030/(0.030+0.0285)=51%\text{PPV} = 0.030/(0.030 + 0.0285) = 51\%, and 40% of the real bases are missed.

Step 3: the framework instead. Keep the original detector but scan only stocks that pass the higher layers: Stage 2, positive relative strength and a supportive regime. If that raises the prevalence to a hypothetical 30%, PPV=0.27/(0.27+0.07)=79%\text{PPV} = 0.27/(0.27 + 0.07) = 79\%, while the detector still catches 90% of real bases.

Familiar ground

This is the lesson of screening a low-risk population. A mammogram with good sensitivity and specificity still yields mostly false positives when the prevalence of cancer is low. The same test performs far better in women already at high risk. Nobody fixes that by demanding a stricter radiologist. They fix it by choosing whom to screen, as the framework chooses which charts to run the detector on.

In practice
  • Measure, do not eyeball: write down each pullback's depth, the pivot's range and the volume ratios before you call a pattern.
  • Anchor first, pattern second: run the detector only on names that already pass Stage 2, positive relative strength and the dashboard of Chapter 11A.
  • Expect slippage at the breakout: everyone watching the same level buys the same tick, so spreads can widen and fills worsen just as you enter (Chapter 2D).
  • Size by the distance to invalidation: decide before entry which breakdown means the pattern failed, and size so that the loss there fits your budget (Chapters 11C and 13C).
When it fails

A pattern fails when the accumulation it was supposed to encode was never there, most visibly as a VCP that breaks down instead of out. It fails at the scan level when the detector runs on noise, where even random tapes produce flags. And it fails in the account when a gap carries the price through the level you meant to exit at.

Decision rule
  • Pass the geometry: every threshold in the table above, measured, not judged by eye.
  • Pass the anchors: Stage 2, positive relative strength and a supportive regime read. If any fails, the pattern is a false positive until proven otherwise.
  • Enter only at the buy point: the pivot, the handle's high or the flag's high.
  • Pre-commit the invalidation, sizing so that a failed pattern costs no more than your per-trade budget.
Common mistake: "it looks like a cup"

A shape that resembles a pattern is not the pattern. A cup 45% deep, a handle that gives back two thirds of it or a flag that retraces half its pole each fails a rule, however familiar the picture looks.

Common mistake: tightening the detector to cure false positives

Stricter thresholds trade false positives for missed real patterns. The positive predictive value still depends on how common real accumulation is among the charts you scan. Raise that prevalence with the higher layers instead.

What to carry forward
  • A chart pattern is a prior on order flow, the tape's picture of accumulation or distribution, whose geometry a detector turns into thresholds.
  • The VCP needs three or more shallower pullbacks and a pivot under 5% of price, in Stage 2 with positive Mansfield relative strength. The cup and handle needs a 15% to 35% cup and a handle that retraces at most half of it. The bull flag needs a pole of at least 2 to 3 daily ranges and a flag that retraces at most 38%.
  • Patterns fail mostly when the structural condition was absent. Verify Stage 2, relative strength and the regime before trading one.
  • False positives are the price of any detector. The framework, which raises the prevalence of real patterns among the charts you scan, fixes them better than a stricter detector does.

8 · Check yourself

Question 1

A stock pulls back 15%, then 9%, then 11%, then forms a pivot with a 4% range. Is it a VCP?

Answer

No. Each pullback must be shallower than the one before, yet the third, at 11%, is deeper than the second, at 9%. The pivot's range would pass, but the sequence fails.

Question 2

A cup's left lip is at 80 and its bottom at 56. The price recovers to 79, then pulls back to 70. Check the cup's depth and the handle, and give the buy point.

Answer

The depth is 24/80=30%24/80 = 30\%, inside 15% to 35%. The handle gives back (79−70)/24=37.5%(79 - 70)/24 = 37.5\% of the cup's depth, within the 50% limit. The buy point is the handle's high, 79.

Question 3

With an ATR of $1.50, a stock rises 4 points in two days on heavy volume, then drifts down 1.8 points on light volume. Is it a bull flag?

Answer

The pole is 4/1.5=2.74/1.5 = 2.7 ATRs, which passes if you read the rule as at least 2 ATRs but not as at least 3. The flag retraces 1.8/4=45%1.8/4 = 45\%, over the 38% limit, so the pattern fails on retracement.

Question 4

A detector catches 80% of real bases and flags 5% of random stretches. What is its positive predictive value when 10% of scanned stretches are real, and when 2% are?

Answer

By (11D.4), at 10% prevalence PPV=0.08/(0.08+0.045)=64%\text{PPV} = 0.08/(0.08 + 0.045) = 64\%. At 2% prevalence, the same detector gives PPV=0.016/(0.016+0.049)=25%\text{PPV} = 0.016/(0.016 + 0.049) = 25\%. The same detector is worth far less on an unfiltered scan.

Question 5

With a stock at 210, SPX at 6,000 and the moving average of their ratio at 0.0360, what is the Mansfield relative strength? Does the VCP anchor pass?

Answer

The ratio is 210/6,000=0.0350210/6{,}000 = 0.0350, so (11D.1) gives 0.0350/0.0360−1=−2.8%0.0350/0.0360 - 1 = -2.8\%. It is negative, so the anchor fails and the pattern does not count.