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.
オープンソーススクリプト
TradingViewの精神に則り、このスクリプトの作者はコードをオープンソースとして公開してくれました。トレーダーが内容を確認・検証できるようにという配慮です。作者に拍手を送りましょう!無料で利用できますが、コードの再公開はハウスルールに従う必要があります。
免責事項
これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。
オープンソーススクリプト
TradingViewの精神に則り、このスクリプトの作者はコードをオープンソースとして公開してくれました。トレーダーが内容を確認・検証できるようにという配慮です。作者に拍手を送りましょう!無料で利用できますが、コードの再公開はハウスルールに従う必要があります。
免責事項
これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。