TradingView unusual volume screening
Use Stock Screener to combine a relative-volume threshold with a market, price floor and liquidity floor. Fix the timeframe and session first, then review the matching symbols on charts. High volume alone does not establish who traded or where price goes next.
Demonstration inputs, not a recommended strategy
US stocks · USD · completed regular session · daily Relative Volume > 2 · Price > $5 · Average Volume (30 days) > 500,000 shares
These assumptions make the shortlist reproducible. They do not guarantee liquidity or trading performance.
Choose the volume field before the threshold
| Field | What it compares | Use in this scan |
|---|---|---|
| Relative Volume | Current volume / mean of the previous 10 bars, excluding the current bar. | Select 1D for the daily example. |
| Relative Volume at Time | A 5-minute bar / the same time slot averaged over the preceding 10 days. | A different intraday comparison; not cumulative session volume. |
| Average Volume (30 days) | A 30-day moving average of traded volume. | Liquidity proxy; not the 10-bar RVOL denominator. |
TradingView documents regular-session calculations for Relative Volume and Average Volume. Use the dedicated extended-hours fields when researching premarket activity. Check each field's settings rather than assuming one interval controls every column. Sources: relative volume definitions and average volume.
Build the Stock Screener shortlist
- Open Products → Screeners → Stocks. Select the market and exchanges you intend to research. Keep stock type and currency consistent with your thresholds.
- Add Price and Average Volume filters. For the demonstration, use Price above $5 and Average Volume (30 days) above 500,000 shares.
- Add Relative Volume, open its settings, choose the daily interval and enter above 2. Add the same field as a visible table column.
- Display symbol, exchange, price, daily volume, average volume and relative volume. Sort Relative Volume descending, then record the scan time, interval and session.
- Open each surviving chart. Check the exchange, data timestamp, news, spread and price structure before saving the candidate. Save the screen so the rules can be repeated.
The official screener walkthrough covers filters, column settings and saved screens. Interface labels can vary by market.
Four inputs, one candidate to investigate
All symbols and values below are invented. Assume a completed daily session with valid volume history. M means million shares; the RVOL calculation uses the previous ten daily bars. The 30-day average is a separate supplied input.
| Symbol | Price | 30-day avg. | Day volume / prior-10 avg. | Decision |
|---|---|---|---|---|
| DEMO-A | $24.00 | 1.20M | 3.30M / 1.10M = 3.00 | Keep for chart review |
| DEMO-B | $8.00 | 0.08M | 0.24M / 0.06M = 4.00 | Exclude: average volume below 0.50M |
| DEMO-C | $42.00 | 2.80M | 4.50M / 3.00M = 1.50 | Exclude: RVOL below 2.00 |
| DEMO-D | $3.00 | 0.90M | 2.40M / 0.80M = 3.00 | Exclude: price below $5 |
DEMO-B has the largest ratio but fails the liquidity floor. DEMO-A passes all three numeric rules; it can still be rejected after chart review. For example, a hypothetical $23.90 bid and $24.10 ask imply a $0.20 spread, or 0.83% of the $24 midpoint, before fees or slippage.
Review timing and missing data before direction
- At midday, today's daily volume is still accumulating. A morning daily RVOL and the closing daily RVOL answer different questions. Do not compare an unfinished day with a completed-day shortlist as if both were final.
- Keep the exchange feed, regular or extended session, and bar interval aligned. Refreshing a table does not turn delayed data into a live feed.
- Exclude missing volume, zero denominators and insufficient history from ratio rankings. A blank value is not evidence of low activity.
- Read the catalyst and chart together. An earnings gap, rebalance or trading halt can explain activity without producing a usable entry. Review spreads and available liquidity separately.
Use Pine Screener for a custom rule
Stock Screener cannot run this code. In the separate Pine Screener, select a watchlist or index, choose the saved indicator, set the interval, and scan. Filter Previous-bar match above 0.5. The script also colors confirmed unusual-volume chart bars and can label their ratios.
The outputs deliberately refer to the preceding completed bar, so they lag the live bar by one interval. With length 10, a previous bar of 3.30M and its prior-ten average of 1.10M produce 3.00 and a match of 1. A missing or zero baseline produces no ratio. This is a bar-based demonstration, not a same-time-of-day indicator.
//@version=6
indicator("Unusual Volume Review [Pineify]", overlay=true)
int length = input.int(10, "Prior-bar volume average length", minval=1, maxval=100)
float threshold = input.float(2.0, "RVOL threshold (strictly above)", minval=0.1, step=0.1)
bool showLabels = input.bool(true, "Label confirmed unusual-volume bars")
float priorAverage = ta.sma(volume, length)[1]
float rvol = not na(volume) and not na(priorAverage) and priorAverage > 0 ? volume / priorAverage : na
bool unusual = not na(rvol) and rvol > threshold
bool confirmedUnusual = unusual and barstate.isconfirmed
barcolor(confirmedUnusual ? (close >= open ? color.green : color.red) : na)
if confirmedUnusual and showLabels
label.new(bar_index, high, "RVOL " + str.tostring(rvol, "#.##"), yloc=yloc.abovebar, style=label.style_label_down, textcolor=color.white)
// Pine Screener columns use the preceding completed bar.
float closedRvol = rvol[1]
float closedMatch = na(closedRvol) ? na : (closedRvol > threshold ? 1.0 : 0.0)
plot(closedRvol, "Previous-bar RVOL", display=display.data_window)
plot(closedMatch, "Previous-bar match", display=display.data_window)
Use matching chart and scan sessions; the script does not force regular hours. Pine Screener uses one indicator per screen and the most recent 500 bars. Its table displays the chosen indicator's plots. Account access, feed differences and runtime behavior still need checking in TradingView. Read the Pine Screener guide and current requirements.
Compare volume and trend in Pineify Market Screener
Create a collection of supported symbols, select a common timeframe, and add Relative Volume, Volume, Volume SMA 20 and SMA Trend. Sort the volume column and inspect the trend columns beside it. Pineify's SMA Trend describes the alignment of the 20, 50 and 200-period averages.
Check the underlying definitions before reusing a TradingView cutoff. Volume SMA 20 is a 20-bar average, not the example's 30-day liquidity filter. This workflow does not promise identical RVOL calculations, private watchlist synchronization, or a combined dark-pool and options-flow scan. Product access depends on your account plan.
Open Market ScreenerFrequently asked questions
Sources and scope
Official documentation checked October 17, 2026. The examples are educational and are not investment advice or performance forecasts.
- TradingView: Relative Volume and Relative Volume at Time
- TradingView: Average Volume calculation
- TradingView: screeners walkthrough
- TradingView: Pine Screener features and requirements
- TradingView: Pine Screener source and indicator selector update
More TradingView screening workflows · Pineify Market Screener