OPEN-SOURCE SCRIPT
VCP Tightness Score

VCP Tightness Score
Original concept and script by joshdm_94 (@ETFbreakouts on X). Modified and extended with a 3-zone color system and single dot display.
Spotting a true Volatility Contraction Pattern requires more than just looking for small candles. A 5% price swing might be tight for a high-beta growth stock but extremely loose for a slower mover. This indicator solves that by measuring how tight a stock's recent price action is relative to its own historical volatility — not against a fixed number.
How It Works
The script calculates two metrics over your chosen lookback period (default 5 bars):
- Closing Spread: the percentage difference between the highest and lowest close
- Total Swing Spread: the percentage difference between the absolute high and low
Both are divided by the stock's Average Daily Range % and normalized on a 0–100 scale based on a historical baseline window (default 50 bars). A score near 0 means the stock is compressing tighter than at any point in the baseline period. A score near 100 means price action is wide and volatile.
How to Read It
A single colored dot in the top right corner of your chart updates in real time:
- 🟢 Green (0–15): Entry zone. Price is compressed and ready. Look for a pivot with volume dry-up confirmation.
- 🟠 Orange (16–40): Still contracting. Keep it on your watchlist and check back daily.
- 🔴 Red (41–100): Too loose. Stay away until volatility contracts further.
Inputs
- Tightness Lookback: bars to measure current compression (default 5)
- ADR Lookback: bars to calculate the stock's normal volatility (default 20)
- Historical Baseline: normalization window for the 0–100 score (default 50)
Best Use Cases
Designed for daily and weekly charts. Most effective when used alongside volume dry-ups to confirm VCPs, high tight flags, and cup and handle bases before the breakout.
Original concept and script by joshdm_94 (@ETFbreakouts on X). Modified and extended with a 3-zone color system and single dot display.
Spotting a true Volatility Contraction Pattern requires more than just looking for small candles. A 5% price swing might be tight for a high-beta growth stock but extremely loose for a slower mover. This indicator solves that by measuring how tight a stock's recent price action is relative to its own historical volatility — not against a fixed number.
How It Works
The script calculates two metrics over your chosen lookback period (default 5 bars):
- Closing Spread: the percentage difference between the highest and lowest close
- Total Swing Spread: the percentage difference between the absolute high and low
Both are divided by the stock's Average Daily Range % and normalized on a 0–100 scale based on a historical baseline window (default 50 bars). A score near 0 means the stock is compressing tighter than at any point in the baseline period. A score near 100 means price action is wide and volatile.
How to Read It
A single colored dot in the top right corner of your chart updates in real time:
- 🟢 Green (0–15): Entry zone. Price is compressed and ready. Look for a pivot with volume dry-up confirmation.
- 🟠 Orange (16–40): Still contracting. Keep it on your watchlist and check back daily.
- 🔴 Red (41–100): Too loose. Stay away until volatility contracts further.
Inputs
- Tightness Lookback: bars to measure current compression (default 5)
- ADR Lookback: bars to calculate the stock's normal volatility (default 20)
- Historical Baseline: normalization window for the 0–100 score (default 50)
Best Use Cases
Designed for daily and weekly charts. Most effective when used alongside volume dry-ups to confirm VCPs, high tight flags, and cup and handle bases before the breakout.
Mã nguồn mở
Theo đúng tinh thần TradingView, tác giả của tập lệnh này đã công bố nó dưới dạng mã nguồn mở, để các nhà giao dịch có thể xem xét và xác minh chức năng. Chúc mừng tác giả! Mặc dù bạn có thể sử dụng miễn phí, hãy nhớ rằng việc công bố lại mã phải tuân theo Nội quy.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.
Mã nguồn mở
Theo đúng tinh thần TradingView, tác giả của tập lệnh này đã công bố nó dưới dạng mã nguồn mở, để các nhà giao dịch có thể xem xét và xác minh chức năng. Chúc mừng tác giả! Mặc dù bạn có thể sử dụng miễn phí, hãy nhớ rằng việc công bố lại mã phải tuân theo Nội quy.
Thông báo miễn trừ trách nhiệm
Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.