OPEN-SOURCE SCRIPT

Virgin CPR Zones (Open Source) D / W / M / Y

787
Virgin CPR Zones — D / W / M / Y

OVERVIEW
This indicator plots the Central Pivot Range (CPR) for four timeframes — Daily, Weekly,
Monthly and Yearly — and automatically marks the "virgin" ones as extending zones on the
chart.

A CPR is called virgin when price never traded inside it during the period it belonged to.
Because that range was never tested while it was active, many traders treat it as an
untouched area of interest that price may react to when it eventually returns.

WHAT IT DRAWS
1. CPR lines for each enabled timeframe:
- TC (Top Central) = 2 × Pivot − BC
- Pivot = (High + Low + Close) / 3
- BC (Bottom Central) = (High + Low) / 2
The CPR is latched at the first bar of each new period using the previous period's
completed HLC, so the levels never repaint or shift mid-period.

2. Virgin CPR zones: when a period closes without price having traded into its own CPR,
a box is drawn between TC and BC and extended forward bar by bar. The zone stops
extending the moment price trades into it, leaving a permanent record of where and
when it was consumed.

HOW IT WORKS
Each timeframe runs through its own self-contained state machine, so the Daily, Weekly,
Monthly and Yearly logic never share arrays, latches or touch flags with one another.
Higher-timeframe data is requested with lookahead disabled and gaps off, so nothing is
known before it would have been known in real time.

The touch test is reset at the start of each new period before the current bar is
evaluated, which means the very first candle of a period can register as a touch. A CPR
is only promoted to a virgin zone after its own period has closed untouched, so zones
appear at the period boundary rather than intrabar.

Each timeframe only draws if the chart timeframe is equal to or lower than the CPR
timeframe. For example, Weekly zones will not appear on a Monthly chart.

INPUTS
- General: toggle the D / W / M / Y text tags on each zone.
- Per timeframe (Daily, Weekly, Monthly, Yearly):
- Show CPR lines on/off
- Show virgin CPR zones on/off
- Maximum number of zones to keep (oldest is deleted first)
- Colour

Defaults: Daily and Weekly lines are on, Monthly and Yearly lines are off to keep the
chart clean, while zones are enabled for all four.

HOW TO USE IT
Untested zones from a higher timeframe tend to carry more weight than lower ones, so a
virgin Monthly or Yearly CPR is generally treated as more significant than a virgin
Daily. Common uses are watching for a reaction on the first tag of a zone, or using the
zone edges (TC and BC) as reference levels for entries, targets and invalidation.

This is a levels and context tool. It does not generate buy or sell signals and should be
combined with your own structure, trend and risk management rules.

NOTES
- Zones are capped per timeframe to stay within drawing object limits. Increase the
"Max zones" input if you want more history, reduce it if the chart feels crowded.
- Because CPR is built from the previous period's completed data, the levels for the
current period are fixed from its first bar onward.

Author: Vishwajeeth J K

免責事項

これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。