RTH Range Projector + Time-Matched RVOL

Range Fuel Gauge: RTH Range Projection & Live RVOL
OVERVIEW
This overlay answers two intraday questions on one chart:
1. How much of a typical day's range has price already covered today?
2. Is volume running above or below normal for this exact time of day, including in the pre-market?
Both readings come from the chart's own intraday bars, inside the regular-session window you set. That way they share the same session boundaries and can be read together.
WHY RANGE AND VOLUME ARE COMBINED
Range on its own does not show whether a move has participation behind it. Volume on its own does not show how far price has already travelled. A stock that has used 90% of its average range on 0.6x relative volume is a different situation from one that has used 40% on 3x. This script puts the two side by side, measured over the same session window, so they can be compared directly without lining up separate indicators.
HOW IT WORKS
1) Average daily range (ADR or ATR)
At the end of each regular session, the script records that session's range using only bars inside the session window (default 09:30-16:00 America/New_York):
- High-Low mode (default): session high minus session low.
- True Range mode: the higher of session high and prior session close, minus the lower of session low and prior session close. This adds any gap to the range.
The value shown is a simple average of the last N completed sessions (default 14).
This is not the built-in ta.atr(), which uses Wilder's RMA smoothing on the symbol's own bars. Building the range from intraday bars lets you pick any session window, for example the 09:30-16:00 cash session on index futures, whose daily bars cover almost 23 hours. On US stocks, TradingView's daily bars already use the regular session, so the differences there are the averaging method and that the value is available directly on your intraday chart for the projections below.
2) Projection lines
During the session, up to three horizontal lines are drawn above the current session low:
- Full line = session low + average range
- Inner line = session low + average range x inner % (default 80%)
- 30m OR line (optional) = session low + the average range of the first 30 minutes of the session over the last 20 sessions
The lines move down whenever a new session low prints. They mark where price would be if today's low-to-high range matched the recent average. They are reference levels, not forecasts: a session can, and often does, exceed its average range, especially on news or heavy volume.
3) Time-matched cumulative RVOL
For every past session, the script stores cumulative volume at each time slot (one slot per chart bar, counted from the scheduled open). That way a 10:15 reading is compared only with past 10:15 readings, even if some bars are missing.
RVOL (cum) = today's cumulative session volume so far / average cumulative volume at the same time over the last N sessions (default 20).
After the close, the cell switches to the full-session total vs the average full-session total, marked "final".
4) Pre-market RVOL
While the pre-market is running, the same time-matched method is applied to pre-market bars: pre-market volume so far / average pre-market volume at the same clock time over the last N pre-markets. This value is marked "live".
Once the regular session opens, the cell shows the completed pre-market total / the average completed pre-market total.
This needs extended hours turned on for the chart. If it is off, the cell shows "ETH off".
5) Other table rows
- Range used: (session high - session low) / average range, in %.
- 30m OR: average first-30-minute range. Orange when today's opening range was larger than average, green when smaller.
- Gap: (today's open - prior session close) / average range.
TABLE COLORS
- Range used: green below 50%, yellow 50-80%, orange 80-100%, red 100% and above.
- RVOL: green below 0.5x, yellow 0.5-1x, orange 1-1.5x, red 1.5x and above.
HOW TO USE IT
Before the open: scan your watchlist with extended hours on. A live pre-market RVOL well above 1x means a stock is trading far more than usual for that time of the morning. The Gap row shows how big the gap is relative to a normal day's range.
Early in the session: read Range used and RVOL (cum) together. Little range used plus high RVOL means price has covered less than a normal day's range while volume is running well above normal. A lot of range used on low RVOL means price is already near a normal day's range without unusual volume behind it.
Near the inner and full lines: these show where today's range would reach the recent average. Traders can use them as context for targets, partial exits, or judging how much of a normal day's range is left. They are one input among others, not a signal on their own.
The script does not generate buy or sell signals, and past range and volume averages do not guarantee future behaviour.
ALERTS
- Crossed inner range line: the bar's high crosses above the inner projection.
- Crossed full range line: the bar's high crosses above the full projection.
SETTINGS
- Range method: High-Low (ADR) or True Range (ATR).
- Range length: number of completed sessions to average (default 14).
- Inner line %: position of the inner line as a fraction of the average range (default 0.8).
- Opening-range avg: number of sessions averaged for the 30m OR line (default 20).
- Regular Trading Hours / Timezone: session window used for every calculation (default 0930-1600, America/New_York).
- Intraday RVOL avg / Pre-mkt RVOL avg: number of days averaged for each RVOL reading (default 20, maximum 50).
- Display and Style: show or hide each line, the labels and the table; colors, line styles, width, and table position.
REQUIREMENTS AND LIMITATIONS
- Intraday timeframes only. 1m to 15m works best. The 30m OR row needs a timeframe of 30m or lower.
- History: the range average needs N completed sessions loaded on the chart. Until then the table shows progress, e.g. "- (8/14)". RVOL needs at least 5 days. On a 1-minute chart with extended hours, 14 sessions is roughly 13,000+ bars. If your plan loads fewer bars, use a 5-minute chart.
- Pre-market RVOL needs extended hours on and a symbol with a pre-market session (e.g. US stocks).
- The first, usually partial, session on the chart is left out of the averages.
- A past day that ended before the current time slot (e.g. a half-day session) is left out of that slot's RVOL average.
- On realtime bars, today's volume includes the bar that is still forming, while the history uses completed bars. RVOL can therefore read slightly low early in each bar.
- Lines are anchored to the session low, so on a day that keeps making new lows they move down with price.
Open-source, written in Pine Script v6.
OVERVIEW
This overlay answers two intraday questions on one chart:
1. How much of a typical day's range has price already covered today?
2. Is volume running above or below normal for this exact time of day, including in the pre-market?
Both readings come from the chart's own intraday bars, inside the regular-session window you set. That way they share the same session boundaries and can be read together.
WHY RANGE AND VOLUME ARE COMBINED
Range on its own does not show whether a move has participation behind it. Volume on its own does not show how far price has already travelled. A stock that has used 90% of its average range on 0.6x relative volume is a different situation from one that has used 40% on 3x. This script puts the two side by side, measured over the same session window, so they can be compared directly without lining up separate indicators.
HOW IT WORKS
1) Average daily range (ADR or ATR)
At the end of each regular session, the script records that session's range using only bars inside the session window (default 09:30-16:00 America/New_York):
- High-Low mode (default): session high minus session low.
- True Range mode: the higher of session high and prior session close, minus the lower of session low and prior session close. This adds any gap to the range.
The value shown is a simple average of the last N completed sessions (default 14).
This is not the built-in ta.atr(), which uses Wilder's RMA smoothing on the symbol's own bars. Building the range from intraday bars lets you pick any session window, for example the 09:30-16:00 cash session on index futures, whose daily bars cover almost 23 hours. On US stocks, TradingView's daily bars already use the regular session, so the differences there are the averaging method and that the value is available directly on your intraday chart for the projections below.
2) Projection lines
During the session, up to three horizontal lines are drawn above the current session low:
- Full line = session low + average range
- Inner line = session low + average range x inner % (default 80%)
- 30m OR line (optional) = session low + the average range of the first 30 minutes of the session over the last 20 sessions
The lines move down whenever a new session low prints. They mark where price would be if today's low-to-high range matched the recent average. They are reference levels, not forecasts: a session can, and often does, exceed its average range, especially on news or heavy volume.
3) Time-matched cumulative RVOL
For every past session, the script stores cumulative volume at each time slot (one slot per chart bar, counted from the scheduled open). That way a 10:15 reading is compared only with past 10:15 readings, even if some bars are missing.
RVOL (cum) = today's cumulative session volume so far / average cumulative volume at the same time over the last N sessions (default 20).
After the close, the cell switches to the full-session total vs the average full-session total, marked "final".
4) Pre-market RVOL
While the pre-market is running, the same time-matched method is applied to pre-market bars: pre-market volume so far / average pre-market volume at the same clock time over the last N pre-markets. This value is marked "live".
Once the regular session opens, the cell shows the completed pre-market total / the average completed pre-market total.
This needs extended hours turned on for the chart. If it is off, the cell shows "ETH off".
5) Other table rows
- Range used: (session high - session low) / average range, in %.
- 30m OR: average first-30-minute range. Orange when today's opening range was larger than average, green when smaller.
- Gap: (today's open - prior session close) / average range.
TABLE COLORS
- Range used: green below 50%, yellow 50-80%, orange 80-100%, red 100% and above.
- RVOL: green below 0.5x, yellow 0.5-1x, orange 1-1.5x, red 1.5x and above.
HOW TO USE IT
Before the open: scan your watchlist with extended hours on. A live pre-market RVOL well above 1x means a stock is trading far more than usual for that time of the morning. The Gap row shows how big the gap is relative to a normal day's range.
Early in the session: read Range used and RVOL (cum) together. Little range used plus high RVOL means price has covered less than a normal day's range while volume is running well above normal. A lot of range used on low RVOL means price is already near a normal day's range without unusual volume behind it.
Near the inner and full lines: these show where today's range would reach the recent average. Traders can use them as context for targets, partial exits, or judging how much of a normal day's range is left. They are one input among others, not a signal on their own.
The script does not generate buy or sell signals, and past range and volume averages do not guarantee future behaviour.
ALERTS
- Crossed inner range line: the bar's high crosses above the inner projection.
- Crossed full range line: the bar's high crosses above the full projection.
SETTINGS
- Range method: High-Low (ADR) or True Range (ATR).
- Range length: number of completed sessions to average (default 14).
- Inner line %: position of the inner line as a fraction of the average range (default 0.8).
- Opening-range avg: number of sessions averaged for the 30m OR line (default 20).
- Regular Trading Hours / Timezone: session window used for every calculation (default 0930-1600, America/New_York).
- Intraday RVOL avg / Pre-mkt RVOL avg: number of days averaged for each RVOL reading (default 20, maximum 50).
- Display and Style: show or hide each line, the labels and the table; colors, line styles, width, and table position.
REQUIREMENTS AND LIMITATIONS
- Intraday timeframes only. 1m to 15m works best. The 30m OR row needs a timeframe of 30m or lower.
- History: the range average needs N completed sessions loaded on the chart. Until then the table shows progress, e.g. "- (8/14)". RVOL needs at least 5 days. On a 1-minute chart with extended hours, 14 sessions is roughly 13,000+ bars. If your plan loads fewer bars, use a 5-minute chart.
- Pre-market RVOL needs extended hours on and a symbol with a pre-market session (e.g. US stocks).
- The first, usually partial, session on the chart is left out of the averages.
- A past day that ended before the current time slot (e.g. a half-day session) is left out of that slot's RVOL average.
- On realtime bars, today's volume includes the bar that is still forming, while the history uses completed bars. RVOL can therefore read slightly low early in each bar.
- Lines are anchored to the session low, so on a day that keeps making new lows they move down with price.
Open-source, written in Pine Script v6.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.