METHODOLOGY
VCP Patterns Explained: How to Scan for Volatility Contraction Setups
A Volatility Contraction Pattern is a sequence of tightening price pullbacks and quieter trading activity near a defined pivot. That evidence can organize a breakout review; it cannot certify accumulation or predict what happens next.
BY TRADEREGIMEN EDITORIAL / PUBLISHED / UPDATED · 9 MIN READ
A chart can look tight without being a VCP. The useful test is more demanding: can you mark each pullback, measure it the same way, compare its depth with the prior pullback, inspect volume, and identify the price that would complete the setup? If those observations are not clear, the label is doing more work than the evidence.
Mark Minervini describes the Volatility Contraction Pattern in Chapter 10 of Trade Like a Stock Market Wizard. The central observation is not one magic percentage. It is a series of price contractions that become smaller from left to right, paired with contracting trading activity as the chart approaches a pivot.
A VCP label is a hypothesis about supply and demand. The measurable evidence is the sequence of pullbacks, volume behavior, and the price structure around the pivot.
What a VCP does and does not say
In the method, progressively smaller pullbacks are interpreted as supply being absorbed. Quieter volume near the final contraction adds evidence that fewer shares are being offered. Those are useful observations, but price and volume alone cannot identify the buyers, prove institutional accumulation, or establish a future win rate.
The VCP is Minervini's named framework. It is often used by the same growth and momentum traders who use CAN SLIM-style selection, but it is not one of the seven CAN SLIM factors and a pattern match does not replace fundamental, market, liquidity, or risk review.
Review four pieces of evidence
1. The preceding trend
Start with context. A contraction after an established advance is a different proposition from similar-looking noise inside a long-term decline. A weekly Stage Analysis review can help describe that broader trend, but it does not supply the entry.
2. Successively smaller pullbacks
Measure each contraction from its local high to its following local low. Minervini's book uses 25%, 10%, and 5% as one illustrative sequence. That example explains the direction of change; it is not a rule that every valid chart must reproduce. A chart with unclear swing points should remain an uncertain candidate.
3. Contracting trading activity
The method looks for volume to recede as price tightens, especially in the final contraction. Minervini describes final-contraction volume below the 50-day average, sometimes with one or two exceptionally quiet sessions. A fixed claim such as “40%-50% below average” needs its own defined calculation and evidence; it is not a universal VCP threshold.
4. A pivot defined before the trade
The pivot is the resistance level that price must clear to complete the setup. Minervini describes a move above the pivot on expanding volume. Traders can define a numeric relative-volume rule for their own process, but “1.5x the 50-day average” should not be presented as the one canonical definition. The reference period and whether volume is intraday or from a completed session both matter.
A fictional measurement example
Suppose a fictional chart produces these high-to-low moves. The prices are illustrative, not current market data or a recommendation.
| Observation | High | Low | Depth |
|---|---|---|---|
| First pullback | $100.00 | $75.00 | 25% |
| Second pullback | $98.00 | $88.20 | 10% |
| Final pullback | $96.00 | $91.20 | 5% |
The depth formula is (high - low) / high. The sequence is visibly contracting, but it is still only a candidate. The next review asks whether volume also contracted, whether the preceding trend remains intact, and whether the $96.00 pivot and $91.20 structural low still describe the current chart.
If a trader chose $96.00 as the entry reference and $91.20 as the invalidation reference, planned risk would be $4.80 per share. A 0.5% risk allowance on a hypothetical $50,000 account is $250; dividing by $4.80 and rounding down gives 52 shares, or $249.60 of planned price risk. That arithmetic ignores gaps, slippage, fees, and the possibility that a stop order executes away from its trigger. See the full position-sizing workflow before treating the share count as usable.
What TradeRegimen's current screen actually checks
TradeRegimen's current VCP_BREAKOUT screen is a trend-and-proximity heuristic, not a complete VCP detector. It narrows the review queue and builds a consistent plan from historical price data. It does not test a sequence of progressively smaller pullbacks or volume dry-up.
| Layer | Current implementation | What it does not establish |
|---|---|---|
| Minervini Trend Template preset | Price above the 150-day and 200-day averages; a bullish moving-average stack; a 200-day average rising for at least four weeks; price at least 30% above the 52-week low and within 25% of the 52-week high; RS percentile of at least 70; and price of at least $10. | A contraction sequence, contraction-by-contraction volume, or a completed breakout. |
| VCP_BREAKOUT plan gate | Price above the 50-day and 200-day averages, the 50-day above the 200-day, a positive recent closing-price slope check, less than 4% below the highest close in the latest 20 daily bars, and less than 10% above the 50-day average. | That the chart is a textbook VCP. The gate does not inspect multiple pullback legs or volume dry-up. |
| Generated plan | A scan-entry level at that 20-session closing-price pivot, an entry zone through 3% above it, stop candidates, structural target candidates, reward-to-risk checks, and an entry grade. | An order, fill, recommendation, or guarantee. A candidate can be omitted when the target ladder misses the user's reward-to-risk floors or the entry grade is F. |
The Minervini preset is an upstream trend and leadership screen, not a VCP validator. Its current Customize controls can change the maximum distance from the 52-week high, minimum RS percentile, minimum number of rising 200-day-average weeks, and minimum price. Those controls live in the Today preset workflow, not in the Trading Constitution.
For a candidate that passes the plan gate, the app sets the scan-entry level to the highest close in the latest 20 daily bars. The entry zone runs from that level through 3% above it. It then compares eligible stop candidates from the latest 10-bar low, the 10- and 20-day exponential averages, the 50-day simple average, a 1.5 ATR level, and the product's maximum stop-distance guardrail. It ranks eligible candidates by distance from the entry, then applies a further non-round adjustment before persisting the plan. The displayed stop can therefore sit slightly below the price implied by its candidate label; it is not necessarily the final contraction low.
The plan also chooses structural target candidates and applies the user's reward-to-risk floors. Those calculations organize a review; TradeRegimen does not place, block, cancel, or manage brokerage orders. Quotes and daily bars can be delayed, incomplete, or unavailable, so check the chart and source timestamp before acting.
Turn a candidate into a defined decision
- Reconstruct the pattern. Mark each local high and low, calculate the pullback depths, and note the volume behavior.
- Write the pivot before price reaches it. A pivot chosen after the move cannot test whether the original plan was followed.
- Choose invalidation before position size. A recent structural low can be one candidate, but the stop must fit the setup, account risk, and order mechanics. Review the stop-first workflow.
- Reject an unclear setup. A scanner label does not repair missing contractions, elevated selling volume, or stale data.
- Recheck the plan at decision time. A setup can be correctly identified and later become too old, too extended, or structurally invalid. That is why the app separates a scan from its signal-validity lifecycle.
Common review errors
- Treating every tight chart as a VCP. Tightness without a readable contraction sequence and volume context is incomplete evidence.
- Turning an interpretation into a fact. Lower volume can be consistent with reduced supply; it does not prove that a named class of investor is accumulating shares.
- Making one volume multiple universal. If a process requires 1.5x or 2x average volume, define the window and test that rule on the trader's own sample.
- Chasing beyond the planned zone. The original stop and targets produce different risk at a higher entry. Recalculate the plan instead of carrying forward stale reward-to-risk.
- Assuming a stop price is a guaranteed fill. In fast markets, a stop order can execute at a materially different price; a stop-limit order carries non-execution risk.
Sources and review context
- Mark Minervini, Trade Like a Stock Market Wizard, McGraw Hill, 2013. Chapter 10, especially pages 198-205 and 226-229, is the primary methodology reference used here.
- FINRA, Stop Orders: Factors to Consider During Volatile Markets, for execution-price and stop-limit limitations.
- TradeRegimen implementation reviewed September 16, 2026. Product thresholds above describe the inspected implementation, not Minervini's universal rules. See our editorial method and corrections policy and full disclaimer.
Educational information only, not individualized investment advice. Pattern labels, screens, grades, and trade plans do not guarantee an outcome. The trader remains responsible for the decision and any resulting loss.
FREQUENTLY ASKED
What is a Volatility Contraction Pattern (VCP)?
A VCP is a price-and-volume framework described by Mark Minervini. The chart forms a series of pullbacks that generally become smaller from left to right, while trading activity contracts near the final pivot. Practitioners interpret that combination as reduced available supply, but the chart cannot prove who is buying or predict that a breakout will succeed.
Does a valid VCP require fixed percentages or a fixed number of days?
No universal sequence of percentages or duration makes a VCP valid. Minervini's book uses sequences such as 25%, 10%, and 5% to illustrate contraction, not as a mandatory screen. Measure each pullback consistently, compare the sequence, and treat ambiguous structure as ambiguous.
Does a breakout need 1.5 times average volume?
Minervini describes expanding or stronger-than-usual volume as confirmation after quieter trading near the pivot, but 1.5 times the 50-day average is a trader-defined threshold rather than a universal VCP rule. The comparison window and whether the session is complete should be stated.
What does TradeRegimen's VCP_BREAKOUT screen detect?
The current screen is a trend-and-proximity heuristic. It checks moving-average alignment, a positive recent closing-price slope check, proximity to the highest close in the latest 20 daily bars, and distance above the 50-day average. It does not currently verify a sequence of progressively smaller pullbacks or volume dry-up, so every result still needs chart review.
Is a VCP screen result a buy signal?
No. A screen result is a candidate generated from historical price data. It does not establish current liquidity, execution quality, portfolio fit, or a profitable outcome. The trader still decides whether the chart evidence, trigger, invalidation, size, and current market context fit a written plan.
Run your trading like a system.
Build your Constitution, check a manual position plan when you log it, and review rule states while recorded positions are open.
Get Started