TradingView stock screening

TradingView premarket screener: filters and data checks

Use TradingView Stock Screener and its Extended Hours columns to find premarket movers. Select U.S. stocks, then filter by Pre-market Change % and Pre-market Volume. Check the session and data feed before comparing a result with a chart. Ordinary Relative Volume is calculated during regular sessions, so it is not a premarket volume confirmation. A matching row is a research candidate, not an entry signal.

See the decision guide

Set up an example premarket screen

Open TradingView through Products > Screeners > Stocks. Select the U.S. market, open the Extended Hours column set, and search for Pre-market in the filter selector. The settings below are an illustrative exercise, not optimized parameters or a tested trading strategy. Run it during an active premarket session, for example at 09:15 Eastern Time on a trading day.

  • Show the fields used in each filter as columns. Add Pre-market High and Pre-market Low for chart comparison.
  • Save the configuration and separately record its results with date, observation time, filters, and exchange-qualified tickers. Results change even when the saved filters do not.
  • For a separate negative-mover screen, replace the change filter with below -3%. Do not combine opposite thresholds with an AND condition.
  • Check the screener refresh setting. Refresh frequency controls when you see another snapshot, not the licensing delay of the underlying feed.
SettingExample valuePurpose
MarketU.S. stocks; choose the exchanges you followKeep listings and currencies comparable.
Pre-market Change %Above 3%Build a list of positive movers relative to the previous regular close.
Pre-market VolumeAbove 100,000 sharesExclude some sparsely traded results without claiming execution liquidity.
Pre-market PriceAbove USD 5Define a price universe; this does not establish safety or margin eligibility.
SortPre-market Volume, descendingReview activity alongside percentage change.

Read the premarket fields correctly

TradingView documents separate premarket price, open, high, low, volume, change, and gap fields. Use their definitions rather than substituting a regular-session field with a similar name.

  • Relative Volume uses current volume divided by the average of the previous 10 bars. TradingView says it is calculated only in regular sessions, not extended hours.
  • Relative Volume at Time is a separate comparison with matching five-minute bars from previous days. Do not rename either built-in metric as a custom premarket cumulative-volume ratio.
  • A high volume number does not identify the traders behind it, establish institutional buying, or measure the spread available at your broker.
FieldMeaning
Pre-market PriceThe premarket session closing price, updated as that session develops.
Pre-market Change %100 × (premarket price - prior regular close) / prior regular close.
Pre-market Gap %100 × (premarket open - prior regular close) / prior regular close. It is not an estimate of the 09:30 open.
Pre-market Change from Open %The percentage movement from the premarket opening price.
Pre-market VolumeTrading units recorded for the symbol during premarket. For stocks, the unit is shares.
Pre-market High / LowThe maximum and minimum prices recorded in that premarket session.

Check session time, missing values, and delayed data

Nasdaq lists premarket as 04:00 to 09:30 Eastern Time on trading days. Broker access can cover a shorter window. Eastern Time follows daylight saving changes; a fixed UTC offset will be wrong for part of the year. Overnight trading is a separate session and should not silently be added to a 04:00 premarket calculation.

  • TradingView documents real-time Cboe data as the default for U.S. stock charts. It can differ from primary-exchange feeds, especially in extended hours. A free account does not imply every U.S. quote is delayed by 15 minutes.
  • Exchange data subscriptions and TradingView plan subscriptions are separate. Paid plans do not automatically include every exchange fee. Verify the actual data entitlement instead of inferring it from the account tier.
  • Premarket fields refer to the latest market session and reset when a new premarket session starts. Preserve a dated snapshot if you need a historical comparison; do not treat these columns as an archive.
ObservationCheck before interpreting it
Screener shows values but chart has no premarket barsUse an intraday chart and select ETH in the session control. The symbol must have extended-hours data.
Missing premarket valueCheck whether a session is active, whether the symbol traded, and whether its feed supports the data. Missing is not zero.
Chart and screener disagreeMatch the listing, feed, session, timestamp, and refresh time before comparing price or volume.
Price appears staleInspect the market-data status and any delay notice. A quiet symbol and a delayed feed are different explanations.

Recheck the candidate after the regular open

Use a fixed review procedure to measure what happened after the scan. The following is a proposed observation method; it has not been tested for profitability. Premarket liquidity and prices can differ from the regular session, and a gap or range break does not establish that a move will continue.

  • Keep premarket volume and opening-bar volume as separate measurements with their own durations. No universal ratio is established here.
  • If you add VWAP, document whether it resets at the regular open or includes extended hours. Different anchors produce different comparisons.
  • A prospective strategy test also needs entry and exit rules, spread, slippage, fees, and failed or missing-data cases. This screening exercise does not supply those results.
Time in ETRecordInterpretation limit
09:15Candidate list, premarket change and volume, feed, and timestamp.A later scan may produce a different list.
Just before 09:30Premarket high and low from the same chart feed.Levels depend on available trades; a thin print can set an extreme.
09:35The completed 09:30-09:35 bar: close, volume, and position relative to the saved range.A close above the range describes an event; it does not prove demand will persist.
A fixed later time, such as 10:00Whether the range held, failed, or was never crossed; include every original candidate.Keeping failed candidates avoids selecting only successful examples.

Plot the available premarket range on a chart

This Pine Script v6 example tracks only the current chart symbol. Use a standard one-minute or five-minute candlestick chart with ETH enabled and enough history to include 04:00 ET. It updates the range during premarket and shows the saved values during regular hours. It does not submit orders, scan the market, or add fields to Stock Screener.

  • Manually compare the lines with the highest and lowest 04:00-09:30 candles on the same feed. Then check that the levels stop changing at 09:30.
  • The New York calendar-date reset prevents yesterday's range from carrying into a day with no premarket bars. With no available premarket bars, the lines remain missing.
  • The script cannot detect a partial session history or recover absent trades. Loading history from 08:00 produces only the observed 08:00-09:30 range.
  • The weekday time windows are not an exchange holiday or early-close calendar. Use the actual exchange schedule; this example has no live-market or replay acceptance result.
Chart-only premarket range. Syntax checked; chart behavior still requires the checks below.pinescript
//@version=6
indicator("Premarket range [Pineify]", overlay = true)

if not timeframe.isminutes or (timeframe.multiplier != 1 and timeframe.multiplier != 5)
    runtime.error("Use a standard 1-minute or 5-minute chart with ETH enabled.")

string tz = "America/New_York"
int dateKey = year(time, tz) * 10000 + month(time, tz) * 100 + dayofmonth(time, tz)
bool newDay = barstate.isfirst or dateKey != dateKey[1]
bool inPremarket = not na(time(timeframe.period, "0400-0930:23456", tz))
bool inRegular = not na(time(timeframe.period, "0930-1600:23456", tz))

var float pmHigh = na
var float pmLow = na
if newDay
    pmHigh := na
    pmLow := na
if inPremarket
    pmHigh := na(pmHigh) ? high : math.max(pmHigh, high)
    pmLow := na(pmLow) ? low : math.min(pmLow, low)

plot(inPremarket or inRegular ? pmHigh : na, "Premarket high", color.green, 2, plot.style_linebr)
plot(inPremarket or inRegular ? pmLow : na, "Premarket low", color.red, 2, plot.style_linebr)

Choose the tool for the next step

TradingView Stock Screener uses built-in fields and cannot run this Pine script. TradingView Pine Screener is a separate tool for compatible indicators on selected watchlists or indices. Its 500-bar calculation window, supported intervals, and request limits require separate validation; chart session behavior is not proof that a Pine Screener scan uses equivalent premarket data.

  • Use the native Stock Screener for the dedicated premarket fields described above.
  • Use Pineify Market Screener to organize supported symbols and technical snapshots into collections. Confirm timestamps and field availability; do not assume it reproduces TradingView premarket columns or accepts arbitrary Pine indicators.
  • Use Pine Script AI Coding Agent to develop a chart study with explicit session boundaries and missing-data handling. Review generated code and test it on the intended feed before relying on it.
Where Pineify fits

Pineify Market Screener

Compare supported technical snapshots in symbol collections. Check available fields and timestamps before using a collection for extended-hours research.

Also useful: Pine Script AI Coding Agent. Develop a custom chart indicator from session rules, then review its source and validate it with the data you intend to use.

Explore Market Screener

Frequently asked questions

Educational information, not investment advice. Example filters and review times are not tested trading recommendations. Extended-hours prices can have limited liquidity and wider spreads; data and execution conditions vary by feed and broker.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.