Volatility Contraction PatternThe Volatility Contraction Pattern (VCP), popularized by Mark Minervini, is a price-action formation that reflects supply drying up and institutional accumulation before a breakout. A proper VCP demonstrates a prior uptrend, constructive base development, sequential declines in downside volatility, and evidence of institutional accumulation.
This indicator identifies and tracks VCP behavior by mapping successive contraction legs (up to five), verifying that each pullback forms a higher low with diminishing depth, and highlighting when the final contraction tightens sufficiently relative to earlier legs. A dynamic pivot line highlights the key breakout level, and a confirmation trigger signals when price breaks above that pivot.
A classic VCP typically includes:
A strong prior uptrend into the base
2–5 tightening pullbacks (contractions) with higher lows
Decreasing volatility and often reduced volume
A clear pivot level (last swing high)
Breakout through the pivot as demand overwhelms supply
The psychology: early sellers are absorbed, weak holders exit, and stronger hands take control — setting up for a powerful upside move.
How This Indicator Identifies VCPs
This script automatically tracks price swings to detect VCP-style contraction sequences. It:
Anchors to an initial swing high and low
Identifies each subsequent contraction when price pulls back and then moves back up
Ensures each contraction is higher-low + shallower than the prior
Verifies a minimum contraction bar count to avoid noise
Tracks up to five contractions (C1 → C5)
Confirms a valid VCP when the final contraction tightens within a user-defined threshold
Marks the pivot (last contraction high)
Triggers a breakout signal when price exceeds that pivot
Indicator Settings & Features
Contraction Display
Plots each contraction leg and base structure
Supports curved or straight visual style
Optionally labels each contraction with its depth (% decline)
This helps quickly evaluate whether volatility is truly contracting.
Contraction Depth Controls
Maximum Depth — filters out patterns with overly deep first-leg pullbacks
Final Contraction Depth — requires the last pullback to be especially tight, as Minervini describes
This ensures the base tightens toward the right side — a key VCP principle.
Breakout Logic
Breakout confirms when price exceeds the pivot high
Triangle marker plots at breakout candle
Reset & Threshold Logic
A small threshold buffer prevents false pattern resets when price slightly exceeds highs
Auto-reset after excessive depth or extended time to avoid stale patterns
Alerts
VCP Forming when a qualifying contraction sequence completes
VCP Breakout when price clears the pivot
Pine Script® インジケーター






















