Spotting a true stock market leader before it launches into a massive markup phase is the holy grail of momentum trading. Many retail investors spend hours aimlessly scrolling through daily charts, hoping to stumble upon a winning setup. This chaotic approach usually leads to late entries, oversized losses, and immense frustration. Professional traders do not guess. They rely on strict, objective, quantitative filtering systems to isolate institutional accumulation before the rest of the market notices.

Mark Minervini's Volatility Contraction Pattern (VCP) represents the gold standard for identifying these spring-loaded consolidation structures. Part of his broader Specific Entry Point Analysis (SEPA) methodology, the VCP tracks the precise footprints left behind by large institutional buyers. When large funds quietly accumulate a stock, they absorb the circulating supply, causing price fluctuations to tighten systematically from left to right. By combining Minervini's famous eight-point Trend Template with strict fundamental filters, you can compress an entire stock universe down to a highly concentrated watchlist of emerging market leaders.

Understanding the Volatility Contraction Pattern (VCP)

The Volatility Contraction Pattern is a structural chart configuration that visualizes the shift from institutional distribution to complete supply exhaustion. As a stock consolidates within an established uptrend, it undergoes a series of distinct price pullbacks. Each successive contraction covers less vertical distance on the chart than the previous one, creating a “coiling” effect that resembles a compressed spring. This systematic reduction in price range signals that weak-handed sellers are being cleared out, while institutional buyers are steadily absorbing shares at higher lows.

This tightening behavior is vital because it establishes a clear “line of least resistance”. When a stock undergoes progressive contractions, it proves that supply is shrinking. If the floating supply of a stock drops to near zero, even a minor influx of retail or institutional buying pressure will trigger an explosive breakout. The VCP framework gives traders a definitive mathematical edge, allowing them to enter a high-momentum asset at the exact moment the accumulation phase ends. It bridges the gap between chart reading and structural supply-and-demand mechanics.

The Anatomy of Progressive Contractions

A textbook VCP setup displays a series of distinct contractions, typically labeled as “T” shapes on a chart. The first pullback might drop by 15%, the second by 10%, and the final contraction by a mere 5%. According to historical data, roughly 80% of successful VCP setups exhibit at least three or four clear contractions before launching out of their base. The key is the mathematical progression; each contraction should be roughly 20-30% smaller in price range than the preceding pullback. This structural harmony demonstrates that active selling pressure is rapidly dissipating.

The Role of Volume Dry-Up

Price action only tells half the story; volume serves as the ultimate institutional tell. Throughout the VCP structure, volume must drop dramatically during each pullback, reaching extraordinarily low levels during the final contraction. This phenomenon, known as volume dry-up, confirms that sellers are completely exhausted. When the daily trading volume plunges to 40-60% below the stock's 50-day moving average, it proves that no one is left to push the price lower. The subsequent breakout must be backed by an explosive volume surge of 140-150% or more above average, validating institutional participation.

Pinpointing the Pivot Level

The pivot point acts as the definitive trigger for trade execution. It is defined as the highest price level achieved during the final, tightest contraction phase. This is not the absolute highest peak of the entire multi-week consolidation base; rather, it is the micro-resistance level of the very last pullback. Identifying this clean pivot level allows traders to set precise buy-stop orders 1-2% above the resistance, ensuring entry only occurs when a valid breakout takes place with genuine conviction.

The Proof: Empirical trading data indicates that entries executed within 5% of the exact pivot level achieve 40% better risk-reward ratios compared to late, emotional entries. Furthermore, setups that strictly satisfy every core component of the VCP framework yield a 40% higher win rate than partial or flawed setups.

The Pitfall: A frequent error committed by novice momentum traders is confusing random, volatile price action with true progressive tightening. If a stock pulls back 12%, rallies, drops 15%, and then tightens to 5%, the structure is entirely invalid. The fact that the second pullback was deeper than the first indicates continued distribution and heavy selling pressure, meaning institutional accumulation has not taken place. For a deeper look at reading underlying market dynamics, consider reading about Order Flow | Four Stages of Price Action.

The Trend Template: Eight Technical Screening Criteria

Before you ever look for a VCP chart pattern, a stock must prove that it is already trapped in a massive, institutional-backed uptrend. Mark Minervini filters the entire stock market through a non-negotiable, eight-point technical screening engine called the Trend Template. This framework filters out laggards, penny stocks, and declining businesses, leaving only true market leaders. All eight parameters must pass concurrently; if a stock satisfies seven criteria but fails a single metric, it is immediately discarded.

The Trend Template is built entirely around moving average alignment and multi-month price strength. Large institutional funds manage billions of dollars, meaning they cannot slide into positions overnight without pushing prices rapidly higher. Their sustained buying footprints show up clearly on long-term charts, forcing short-term moving averages to scale cleanly above intermediate and long-term baselines. Operating exclusively within these parameters ensures you are trading alongside institutional momentum rather than fighting against it.

  • Criterion 1: Current stock price must be trading completely above the 50-day simple moving average (SMA), confirming active short-term momentum.
  • Criterion 2: Current stock price must trade cleanly above the 150-day simple moving average, validating intermediate trend strength.
  • Criterion 3: Current stock price must be positioned above the 200-day simple moving average, which acts as the ultimate long-term baseline for Stage 2 structures.
  • Criterion 4: The 50-day SMA must be positioned above the 150-day SMA, confirming short-term price acceleration.
  • Criterion 5: The 150-day SMA must sit above the 200-day SMA, establishing a clean, ascending moving average architecture.
  • Criterion 6: The 200-day moving average must be trending upward for at least one month, proving the long-term trend has fully turned.
  • Criterion 7: Current stock price must trade within 25% of its official 52-week high, concentrating focus purely on market leadership.
  • Criterion 8: The Relative Strength (RS) rating must exceed 70, with a strong preference for scores above 90.

The Proof: Academic market studies and historical reviews reveal that 90% of Mark Minervini's major winning trades occurred while the stock was locked in a confirmed Stage 2 uptrend. Furthermore, leading growth equities possessing an RS rating above 90 outperform the broader market averages by roughly 35% annually.

The Pitfall: Traders often ignore the requirement to buy stocks near their 52-week highs because of psychological discomfort. Human instinct falsely suggests that a stock near its highs is “too expensive” or has already “missed the move”. This discomfort drives retail participants to look for VCP-like patterns forming inside flat, rounding bottoms or Stage 4 downtrends. These structures fail continuously because they face heavy overhead supply from trapped investors looking to break even. To understand the operational mechanics behind executing precise trades near key moving levels, review our guide on What is Swing Trading and How Does it Work?

Fundamental Acceleration Filters

While the Volatility Contraction Pattern is primarily a technical breakout setup, high-conviction trades require powerful fundamental backing to sustain a massive markup phase. Technical patterns provide the precise entry timing, but fundamental earnings growth serves as the primary engine that drives institutions to bid prices higher week after week. A stock with beautiful charts but deteriorating corporate profits will experience immediate breakout failures because institutions will use the liquidity to exit their positions.

Minervini's SEPA framework requires a strict alignment of technical price patterns and explosive fundamental acceleration. When analyzing candidates that pass the technical Trend Template, you must verify that the underlying business is experiencing a major growth phase. This dual-filtering approach guarantees that your capital is concentrated solely in elite businesses that are capturing market share and expanding corporate margins.

Earnings Per Share (EPS) Growth Thresholds

The primary fundamental filter is quarterly Earnings Per Share (EPS) growth measured year-over-year. The baseline filter demands that current quarterly earnings expand by at least 20% compared to the identical quarter from the prior year. For high-conviction momentum setups, professional investors look for earnings explosions exceeding 40-50%. More importantly, this growth must show true acceleration. If a company grows its EPS by 15% in Q1, 20% in Q2, and 25% in Q3, the positive trajectory signals an institutional catalyst. Learn to manage these calculations with our EPS and P/E Ratio Guide: Calculate and Analyze Stock Valuations.

Revenue and Sales Validation

Sustained bottom-line earnings growth must be supported by top-line revenue expansion. Companies can temporarily boost their net earnings through aggressive corporate cost-cutting, financial accounting adjustments, or share buybacks. True growth stocks require revenue acceleration of at least 15% or higher year-over-year. This validates that the earnings growth stems from real product demand, volume expansion, and genuine business scaling.

Margin Expansion and Return on Equity

To ensure a business is highly profitable, the fundamental screener filters for expanding profit margins quarter-over-quarter alongside a high Return on Equity (ROE). A robust baseline metric requires an ROE of 17% or higher. High ROE indicates that corporate management is efficiently utilizing investor capital to generate outsized bottom-line returns, a core trait that appeals to major institutional portfolio managers.

The Proof: Decades of historical stock market data compiled by Investor's Business Daily reveals that 75% of all legendary market winners showcased quarterly earnings growth exceeding 20% right before their multi-hundred-percent advances began.

The Pitfall: Purely technical chartists often ignore fundamental reports entirely. They locate what looks like a flawless VCP pattern on a stock suffering from decaying sales and contracting margins, only to watch the apparent breakout collapse into a devastating trap. This occurs because institutions were distributing shares during the low-volume base, leaving retail buyers holding the bag when bad earnings data officially drops.

Step-by-Step Guide to Building a Minervini Scanner on TradingView

Manually scanning through thousands of individual stock charts looking for a VCP base is an inefficient use of time. By using a systematic scanning infrastructure on a platform like TradingView, you can filter out 95% of the market in under two minutes. This quantitative filtering leaves you with a clean, manageable list of 5 to 20 prime technical candidates that warrant detailed, manual chart analysis. Follow this step-by-step roadmap to program a custom Minervini Trend Template scanner natively inside TradingView:

Step 1: Initialize the Screen Tool

Navigate to the TradingView interface and click on the “Screener” tab located along the bottom menu panel. Select the “Stock Screener” option. Ensure your target market registry is configured to your local trading domain (such as the United States or Australia).

Step 2: Configure the Moving Average Infrastructure

Open the “Filters” menu window. You must apply multiple moving average rules concurrently using standard boolean “AND” logic. Set the following technical rules into the filtering engine:

  • Price must be Greater Than Current Value of MA 50
  • Price must be Greater Than Current Value of MA 150
  • Price must be Greater Than Current Value of MA 200
  • MA 50 must be Greater Than Current Value of MA 150
  • MA 150 must be Greater Than Current Value of MA 200

Step 3: Establish 52-Week High Proximity Filters

To lock down Trend Template Criterion 7, add a custom filter for “Price Performance (1 Year)” and set its input threshold value to be greater than -25%. This ensures that any stock currently buried deep in a bear market or down more than 25% from its annual highs is automatically stripped from your workspace.

Step 4: Hardcode Minimum Volume Floor Thresholds

Add a metric filter for “Average Volume (30 Day)” to protect your capital against highly illiquid, dangerous penny stocks. For larger US markets, apply a baseline floor of 400,000 shares traded daily. This ensures you can easily slide into and out of active positions using market or limit orders without experiencing devastating slippage. For smaller international contexts like the Australian market, you can lower this volume limit to 200,000 shares if needed. To better manage order flow and execution types when these screeners trigger alerts, review Common Stock Market Order Types.

Step 5: Apply Relative Strength Proxies

TradingView does not natively offer the proprietary Investor's Business Daily (IBD) Percentile Relative Strength ranking system. To approximate this behavior, sort your final filtered stock column results by “Performance (1 Year)” in descending order. This ranks your screen results based on pure annual price outperformance relative to all other listed corporate peers, perfectly mimicking the core intent behind


🔑 Key Topics (Ranked by Actionability)

  1. Building the TradingView Minervini Scanner (Step-by-Step)
  2. The Eight-Point Trend Template (Technical Filters)
  3. VCP Anatomy — Reading Progressive Contractions
  4. Volume Dry-Up & Breakout Confirmation
  5. Fundamental Acceleration Filters (EPS, Revenue, ROE)
  6. Pivot Point Identification & Entry Execution

📋 Topic Summaries

1. VCP (Volatility Contraction Pattern) A chart structure showing progressively tighter price pullbacks from left to right, confirming institutional accumulation and supply exhaustion. Each contraction should be 20–30% smaller than the previous one. ~80% of successful VCPs show 3–4 contractions before breakout.

2. The Trend Template Eight non-negotiable technical criteria that confirm a stock is in a Stage 2 institutional uptrend. All eight must pass simultaneously — failing even one disqualifies the stock.

3. Volume Dry-Up Volume must decline dramatically during each VCP pullback, reaching 40–60% below the 50-day average at the final contraction. Breakout volume must surge 140–150%+ above average to confirm institutional buying.

4. Pivot Point The highest price of the final, tightest contraction — not the all-time high of the base. This is your buy trigger level.

5. Fundamental Filters EPS growth ≥20% YoY (prefer 40–50%+), revenue growth ≥15% YoY, ROE ≥17%, and expanding margins. These confirm institutions have a reason to keep bidding the stock higher.


✅ Step-by-Step Implementation Plan

Phase 1 — Build Your TradingView Scanner

  • [ ] Go to TradingView → Screener tab → Stock Screener
  • [ ] Set market to your trading region (e.g., United States)
  • [ ] Open Filters and add ALL of the following (boolean AND logic):
    • Price > MA 50
    • Price > MA 150
    • Price > MA 200
    • MA 50 > MA 150
    • MA 150 > MA 200
  • [ ] Add Price Performance (1 Year) filter → set to greater than -25% (catches stocks within 25% of 52-week high)
  • [ ] Add Average Volume (30 Day) filter → set minimum to 400,000 shares (US markets) or 200,000 (smaller markets)
  • [ ] Sort results by Performance (1 Year) — Descending to approximate the IBD RS Rating ranking

Phase 2 — Apply the Full Eight-Point Trend Template Checklist

For every stock that survives the scanner, manually confirm all 8 criteria:

#CriterionCheck
1Price > 50-day SMA
2Price > 150-day SMA
3Price > 200-day SMA
450-day SMA > 150-day SMA
5150-day SMA > 200-day SMA
6200-day SMA trending up for ≥1 month
7Price within 25% of 52-week high
8RS Rating > 70 (prefer >90)

❌ Fail any single criterion → immediately discard the stock


Phase 3 — Identify the VCP Structure on the Chart

For stocks passing the Trend Template:

  • [ ] Identify the consolidation base (the sideways/declining range after a prior uptrend)
  • [ ] Count the pullback contractions (label T1, T2, T3…)
  • [ ] Confirm each contraction is 20–30% smaller in price range than the prior one
  • [ ] Confirm contractions are moving left to right (no deeper pullback after a shallower one — that's distribution)
  • [ ] Look for at least 3 contractions before considering the setup valid
  • [ ] Verify volume drops with each successive contraction
  • [ ] Confirm final contraction volume is 40–60% below the 50-day average volume

❌ If any pullback is deeper than the previous one → invalid setup, discard


Phase 4 — Locate the Pivot Point & Set Your Entry

  • [ ] Identify the highest price of the final (tightest) contraction — this is your pivot
  • [ ] Set a buy-stop order 1–2% above the pivot price
  • [ ] Do NOT enter early — wait for the stock to trade through the pivot with conviction
  • [ ] On breakout day, confirm volume is ≥140–150% above the 50-day average volume
  • [ ] Target entry within 5% of the exact pivot level for optimal risk/reward

Phase 5 — Validate Fundamentals Before Adding to Watchlist

Run these checks on every technical candidate:

  • [ ] EPS Growth (YoY): Current quarter ≥20% vs. same quarter last year (prefer 40–50%+)
  • [ ] EPS Acceleration: Confirm growth rate is increasing across recent quarters (e.g., 15% → 20% → 25%)
  • [ ] Revenue Growth: ≥15% YoY — confirms earnings aren't just cost-cutting
  • [ ] ROE: ≥17%
  • [ ] Margins: Expanding quarter-over-quarter

❌ Deteriorating sales or contracting margins = likely institutional distribution trap → skip the setup


⚠️ Key Pitfalls to Avoid

MistakeWhy It Fails
Buying a VCP where a later pullback is deeper than an earlier oneSignals continued distribution, not accumulation
Buying stocks far below 52-week highs (rounding bottoms, Stage 4)Heavy overhead supply from trapped investors kills breakouts
Ignoring fundamentals on a “perfect” chartInstitutions may be distributing, not accumulating
Entering late (>5% past pivot)Risk/reward degrades significantly; stop-loss too wide
Treating volume surge as optionalWithout it, breakouts lack institutional validation

📊 Key Numbers to Remember

MetricThreshold
Contraction size reduction20–30% smaller each time
Min. contractions for valid VCP3–4
Breakout volume surge≥140–150% above average
Volume dry-up level40–60% below 50-day avg
Entry zone from pivotWithin 5%
EPS growth minimum20% YoY (prefer 40–50%)
Revenue growth minimum15% YoY
ROE minimum17%
RS Rating minimum70 (prefer 90+)
Min. daily volume (US)400,000 shares