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.
오픈 소스 스크립트
트레이딩뷰의 진정한 정신에 따라, 이 스크립트의 작성자는 이를 오픈소스로 공개하여 트레이더들이 기능을 검토하고 검증할 수 있도록 했습니다. 작성자에게 찬사를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 코드를 재게시하는 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.
오픈 소스 스크립트
트레이딩뷰의 진정한 정신에 따라, 이 스크립트의 작성자는 이를 오픈소스로 공개하여 트레이더들이 기능을 검토하고 검증할 수 있도록 했습니다. 작성자에게 찬사를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 코드를 재게시하는 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.