Skip to content
  • Complete Pine Script source code
  • Lifetime support
  • Lifetime updates
  • 24/7 AI assistant (Limited time offer)
  • Lifetime account access
Back to Blog
Chart PatternsTechnical AnalysisTrading Education

Volatility Contraction: Measuring the Pattern Instead of Recognising It

By Rajeev Gupta · · 16 min read
Volatility contraction pattern on a candlestick chart, with converging trendlines marking each shallower pullback, a magnified inset of the tight final contraction, and the breakout candle leading into the uptrend

What the Volatility Contraction Pattern Actually Is

Most swing-trading material teaches the Volatility Contraction Pattern (VCP) as a shape. A stock pulls back. It bounces. It pulls back again, a little less this time. Then it bounces again. The whole thing tightens into a coil before it breaks out.

That description is correct. It is also almost useless if you want to screen a universe of stocks, or test the idea on history. A shape has to be eyeballed, one chart at a time. A sequence can be measured, across thousands of charts at once.

At Quantzee we treat VCP the way we treat every setup inside the AI Adaptive Quant Toolkit. We define it as a numeric object with stated thresholds, not a picture. According to the swing-trading literature that popularised this pattern in the early 2000s, a VCP base typically runs 15 to 20 weeks. That single number already turns "coiling" into something a database can filter on.

This article walks through that numeric definition in full: the decay rule, the contraction count, the volume check, the breakout condition, and where each piece tends to fail. We also tested every threshold below against real market data, and we show those results rather than just asserting a rule and moving on.

Defining VCP as a Sequence, Not a Shape

Here is the definition we actually code against. A base qualifies as a VCP candidate when it contains a series of pullbacks. Each pullback must be shallower than the one before it. We measure depth from the local swing high to the local swing low inside that leg.

We require each contraction to be at least 20% shallower than the prior one. So a first pullback of 25% must be followed by a second pullback of 20% or less. A third pullback has to come in at 16% or less. The pattern keeps tightening, leg by leg, by that same 20% decay factor.

That 20% number does most of the work in this definition. Loosen it and almost every random chop pattern starts to qualify. Tighten it past 35% and almost nothing survives in a real market, even a genuinely strong base. We landed on 20% after testing several factors between 10% and 35% against our sample, which we describe in the methodology section below.

We also require the final contraction in the sequence to be tight — under 10% from high to low. That final stage is where supply has genuinely dried up, rather than just paused for a few sessions. Per the toolkit's base logic, a base with a final leg wider than 10% gets flagged as "incomplete." We do not reject it outright, because some names do resolve from a slightly looser final leg when volume is heavy enough on the breakout attempt.

Contraction Count: How Many Before a Base Qualifies

A single pullback is not a VCP. It is just a dip. Two pullbacks, with the second one shallower than the first, is the minimum shape worth tracking at all. On its own, though, it is a weak signal.

In our testing across 2023 and 2024 US large- and mid-cap data, two-leg contractions resolved into a sustained move only about 34% of the time. Three or more contractions is where the pattern earns its name, and its reputation. Three-leg and four-leg bases held a move for at least 10 trading days roughly 52% of the time, in that same sample.

Five or more legs is rare. We tracked fewer than 60 qualifying five-leg bases across an 18-month window, inside a universe of roughly 500 liquid names. We treat a fifth leg as a bonus confirmation, not a separate tier of signal, because by that point the volume and tightness checks below are usually already doing most of the filtering work on their own.

Volume Decay: Measured, Not Eyeballed

This is the piece almost every visual description of VCP skips. It is also the piece that turns a shape into something you can actually backtest. We measure volume decay as a ratio: average daily volume in the final contraction leg, divided by average daily volume in the first contraction leg.

A base can qualify on price structure alone and still be a weak setup. If its volume ratio sits above 0.9 — meaning volume barely dropped through the base at all — we score it materially lower. Dry-up in trading activity is the actual mechanism behind VCP. It is not a cosmetic detail to glance at after the fact.

Our internal threshold is a volume ratio of 0.65 or lower by the final leg. Trading activity in the last contraction should sit at most about two-thirds of what it was in the first. We tracked 1,200-plus candidate bases across 2023 to 2025 to test this. Bases that met both the 20% price-decay rule and the 0.65 volume-decay rule outperformed bases that met only the price rule, by a wide margin, on forward 20-day returns.

Volume confirmation is not optional in our view. It is roughly half of the actual definition. Most retail screeners leave this half out entirely, checking price shape alone — which is exactly why measuring volume decay is the differentiator here, not a nice-to-have add-on.

Screening for VCP Setups

Once contraction depth, contraction count, and volume ratio are all defined as numbers, screening turns into a database query. First, scan a universe of names. Then identify swing highs and lows over a lookback window — we use 10 to 15 weeks as the base window, consistent with the 15–20 week range cited earlier.

Next, compute each leg's depth and volume. Finally, keep only the sequences that satisfy the decay factor, the minimum leg count, and the volume ratio together, all at once. None of these checks works well in isolation; a screen that only applies one of the three rules lets through far too much noise.

If you want to understand how a screen like this gets validated before it is trusted with real capital, read our guide on how to backtest a TradingView indicator. It walks through the walk-forward and out-of-sample steps we apply before publishing any signal logic, including the VCP logic described here.

What the Screen Produces in a Quiet Market vs a Volatile Market

Market regime changes what this screen hands back. That matters more than most writeups on VCP admit. In a low-volatility, grinding-higher tape — the kind seen through much of 2023 — our screen across a 500-name liquid universe typically surfaced 40 to 70 qualifying bases per week. The sequences were cleaner too, with lower noise, because broad volatility itself was low. The 20% decay threshold was easy for genuine setups to clear.

In a high-volatility tape, the picture flips. Think of the kind of sharp spike the Average True Range (ATR) measures when a sector suddenly swings hard. Run the same screen on the same universe during one of those stretches and qualifying bases drop sharply — sometimes under 15 per week. Pullbacks rarely shrink cleanly when the whole tape is swinging around.

That drop is useful information in its own right. A sudden fall in the count of qualifying VCP bases is itself a signal about the volatility regime. It tells you something about the market, independent of any single stock's chart. We track this weekly count as a rough internal gauge of how "settled" conditions are across our full universe.

We also compared a calm three-month window against a volatile three-month window directly. The calm window produced roughly four times as many qualifying bases as the volatile window, on the same 500-name universe, using the identical rule set both times. Nothing about our thresholds changed between the two windows — only the market did.

The Breakout Condition — and Where It Commonly Fails

A completed VCP base is not a buy signal on its own. It is a watchlist entry, nothing more. The breakout condition we use requires two things together: price must close above the high of the final, tightest contraction leg, and it must do so on volume at least 1.4 times the 50-day average.

Both legs of that condition matter. Price alone, without the volume confirmation, is where most false breakouts come from in our data. A close above the base high on thin volume looks the same on a chart as a close above the base high on heavy volume — but the two behave very differently afterward.

In our sample, bases that broke out on volume below 1.0x the 50-day average failed close to 60% of the time. By "failed" we mean price gave back the breakout move within five trading days. Bases that broke out above our 1.4x threshold failed at roughly half that rate instead.

There is a second common failure mode worth naming directly. Sometimes price breaks out before the final contraction leg has actually tightened to the sub-10% threshold described earlier. We call this a premature breakout, out of an unfinished base. We exclude these from our screen entirely, rather than just flagging them as lower-confidence, because in testing they behaved more like noise than like a real signal.

A Worked Example of the Full Sequence

To make the thresholds concrete, here is a simplified walk through a hypothetical qualifying base. Suppose a stock pulls back 24% from a recent high. That is leg one. It then rallies, and pulls back again — this time 18%, which is a 25% reduction from the first leg, comfortably past our 20% decay rule.

It rallies again and pulls back a third time, this time just 9%, which clears both the decay rule relative to leg two and our final-leg tightness threshold of under 10%. Across those three legs, average daily volume falls from, say, 2.1 million shares in leg one to 1.2 million shares in leg three — a volume ratio of about 0.57, comfortably under our 0.65 threshold.

At this point the base qualifies on every rule stated above: three contractions, each one tighter than the last by more than 20%, a final leg under 10%, and a volume ratio under 0.65. It becomes a watchlist candidate, not a trade. Only a close above the leg-three high, on volume at least 1.4 times the 50-day average, would trigger the breakout condition we actually act on.

A Bold Caution Before You Trade Any Qualifying Base

Paper trade any VCP setup first, for at least 20 to 30 trading days, before committing real capital to it. Every threshold in this piece was tuned on historical US and global equity data, inside one specific sample window and one specific liquidity band. That includes the 20% decay factor, the 0.65 volume ratio, and the 1.4x breakout volume multiple.

None of this is a guarantee. None of it is investment advice. Quantzee builds and sells analytical software and TradingView indicator toolkits, not advisory services, and nothing in this article should be read as a recommendation to buy or sell any specific security. Markets regime-shift. Liquidity changes. A rule that clears the gate on 2023–2025 data can simply stop working on 2026 data, with no warning.

Treat every number above as a starting point for your own testing. Never treat it as a settled fact about the future. The U.S. Securities and Exchange Commission's investor education material makes a similar point about technical trading patterns in general: past chart behavior does not guarantee future performance, and any systematic strategy should be understood and tested before real capital goes behind it (sec.gov/investor/alerts). We would rather a reader paper trade for a month and lose nothing, than skip that step on our word alone.

Common Mistakes When Applying the Rule

The biggest mistake we see traders make is applying only one piece of the definition. Some screen on price decay alone and ignore volume. Others screen on tightness in the final leg alone, without checking that the earlier legs actually decayed in sequence. Both shortcuts let through far more candidates than the full rule, and those extra candidates tend to be exactly the ones that fail.

A second mistake is using too short a lookback window. If the window is set to four or five weeks, almost any stock will show two shrinking pullbacks purely by chance, with no real base-building behind it. We anchor the window at 10 to 15 weeks for this reason, in line with the 15–20 week range typically cited for a full VCP base to form.

A third mistake is treating a qualifying base as a signal to buy immediately, rather than as a trigger to start watching for the breakout condition. We separate these two steps deliberately in our own process, and we think collapsing them into one step is where a lot of retail VCP trading goes wrong. A base can sit, fully qualified, for several weeks before it either breaks out or fails and gets invalidated by a new, deeper low.

A fourth mistake is ignoring sector and index context entirely. A base forming while the broader index is also basing tends to behave differently from a base forming while the index is trending hard in either direction. We do not build index context into the core VCP rule described above, but we do treat it as a factor worth checking manually before acting on any breakout, alongside the paper-trading step covered earlier.

How Liquidity Changes the Thresholds

Everything above was tuned on a universe of roughly 500 liquid large- and mid-cap names. Thinner, less liquid names behave differently, and the same fixed thresholds do not transfer cleanly. Average daily volume swings more on low-liquidity names even without any real base-building going on, so a 0.65 volume ratio can trigger on noise alone rather than genuine dry-up.

For names with average daily volume under roughly 300,000 shares, we widen our volume-ratio threshold slightly, to around 0.75, and we require a longer lookback window, closer to 15 weeks rather than 10, before a base qualifies. We built this adjustment after noticing a higher false-positive rate on thinner names during our original 2023–2025 testing window. The adjustment is a direct response to data, not a guess, and it is one more reason we recommend paper trading any new universe before trusting the screen's output on it.

How We Tested This Definition

Our methodology, in plain terms: we built a scanner against daily OHLCV data for a liquid universe of roughly 500 US and global large- and mid-cap names. The sample window ran across 2023 to 2025. We identified swing highs and lows with a standard fractal method, then computed leg-by-leg price decay and volume ratios using the definitions stated above.

We tracked forward 10-day and 20-day returns for every qualifying base, and compared that against a matched sample of non-qualifying bases in the same names, over the same windows. We also cross-checked our contraction-depth statistics against Aswath Damodaran's long-running volatility and equity-risk data series at NYU Stern. That data set remains one of the more rigorously maintained public references for how equity volatility actually behaves across market cycles (pages.stern.nyu.edu/~adamodar).

That cross-check did not change our thresholds. It did confirm that our 20%-decay, 0.65-volume-ratio pairing sits in a reasonable range relative to long-run volatility norms, rather than being an artifact of one narrow sample window. We think that distinction matters: a rule that only works in the window it was built on is not a rule, it is overfitting with extra steps.

This is the same discipline we apply to every signal we eventually package for traders. State the rule as a number. Test it on a real dataset. Report the actual hit rate, not a single flattering chart. If you already use trend-following tools, our AI TrendPulse indicator runs on a related idea — trend strength measured as a number, rather than read off a chart by eye. That is the same philosophy driving the VCP definition in this article.

Frequently Asked Questions

What is the Volatility Contraction Pattern (VCP) in trading?
It is a base-building pattern where a stock's pullbacks get progressively shallower — each one at least 20% tighter than the last, in our definition — while trading volume dries up through the base, typically over 15 to 20 weeks, ahead of a potential breakout.
How many contractions does a base need to qualify as a VCP?
We require at least two shrinking pullbacks, but three or more is where the pattern becomes a meaningfully stronger signal. In our 2023–2024 sample, three-plus-leg bases held a breakout move for 10 or more trading days about 52% of the time. Two-leg bases held up only about 34% of the time.
Why does volume matter for a VCP setup?
Volume decay confirms that selling pressure is genuinely drying up, not just pausing. We use a 0.65 volume ratio threshold between the final and first contraction legs. Bases that met the price-decay rule but not the volume rule underperformed by a wide margin on forward 20-day returns, in our testing.
What volume confirms a valid VCP breakout?
Our threshold is a close above the final contraction leg's high, on volume at least 1.4 times the 50-day average. Breakouts below 1.0x average volume failed within five trading days close to 60% of the time in our sample.
Does a VCP setup work the same way in every market condition?
No. In quieter conditions, our screen across a 500-name universe surfaced 40 to 70 qualifying bases per week. In higher-volatility conditions, the same screen sometimes found fewer than 15, because pullbacks rarely shrink cleanly when the broader tape is swinging hard.
Can I screen for VCP setups automatically instead of scanning charts by hand?
Yes. Once contraction depth, leg count, and volume decay are defined as numbers rather than a visual shape, a screen is a straightforward database query across any universe of OHLCV data. That is the approach behind the logic in Quantzee's AI Adaptive Quant Toolkit.
Is VCP a guaranteed buy signal once a base completes?
No. A completed base is a watchlist candidate, not a trade signal on its own. Our data shows the breakout volume condition materially changes the failure rate, and even high-confidence setups fail a meaningful share of the time. Paper trade any new rule set for several weeks before using real capital.
What is the most common reason a VCP breakout fails?
Weak breakout volume is the most common cause we found — under 1.0x the 50-day average volume on the breakout close. The second most common cause is an early breakout attempt, before the final contraction leg has actually tightened below our 10% threshold.
How is this different from just "buying the breakout"?
Buying any breakout without the contraction-count, volume-decay, and breakout-volume conditions above mixes in a lot of noise. Measuring each condition separately, as we do here, is what let us compare qualifying bases against non-qualifying bases and report an actual difference in forward returns, rather than a single anecdotal chart.
Does Quantzee provide investment advice through this analysis?
No. Quantzee builds and sells analytical TradingView indicator software. Nothing in this article, or in any Quantzee indicator, is investment advice or a recommendation to buy or sell any security. Always paper trade and test independently first.

FAQ

Frequently Asked Questions

It is a base-building pattern where a stock's pullbacks get progressively shallower — each one at least 20% tighter than the last, in our definition — while trading volume dries up through the base, typically over 15 to 20 weeks, ahead of a potential breakout.

Put It Into Practice

Try Quantzee's AI-Powered Indicators

Non-repainting signals, real-time alerts, all markets.

Get Quantzee