ETF screening workflow

TradingView ETF screener: fund selection and technical filters

Open TradingView through Products > Screeners > ETFs to filter funds by their attributes and built-in technical indicators. Choose the fund universe first, then review liquidity, trend and volatility. Custom Pine indicators belong in the separate Pine Screener, applied to a selected source such as an ETF watchlist. Pineify Market Screener provides technical snapshots for supported ETF collections; it does not replace a fund database or scan arbitrary Pine code across every ETF.

See the decision guide

Start with the fund universe

In TradingView ETF Screener, choose the market and consider Primary listing to reduce duplicate listings. Use the Holdings columns to review the tracked index, management style and leverage factor. Add the fields you filter on as columns, then save the screen. The official ETF Screener guide is linked below.

DecisionWhat to recordWhy it matters
ExposureEquity sector, broad equity, bonds or commoditiesCompare funds with a similar objective before ranking technical values.
Fund structureIssuer documents, holdings, fees and benchmarkA chart cannot reveal every cost or portfolio exposure.
ListingExchange-qualified ticker, currency and primary listingSimilar tickers or different share classes can represent different instruments.
LeverageDaily objective and reset mechanicsSeparate leveraged and inverse funds from an ordinary long-only comparison.

A daily ETF review screen

This is an illustrative research procedure, not a backtested strategy. Start with a group of unleveraged equity ETFs and use daily technical fields where available. Record the parameters before reviewing the results; changing thresholds until a preferred fund appears defeats a repeatable screen.

  • AUM measures fund size. It does not measure the spread available for your order or guarantee that a fund will remain open.
  • Review the issuer website for holdings, premiums or discounts to NAV, and median bid-ask spread. A high-volume fund can still be costly to trade at a particular moment.
  • Keep fund flows, share volume and relative price strength separate. A rising ratio alone does not identify institutional buying.
StepExample rule or measurementInterpretation
Liquidity reviewInspect average volume, current bid-ask spread and quote depthChoose limits for the intended order size. No universal volume threshold guarantees execution quality.
TrendPrice above the 200-day SMADescribes where price sits relative to its average; it does not predict a continued rise.
MomentumDaily RSI (14) above 50A simple momentum threshold. It can change while the daily bar is open.
VolatilityCompare ATR (14) as a percentage of priceNormalizes recent range across differently priced funds. Review it on a chart or in a supported technical workspace.
Relative strengthCompare ETF / benchmark with its 50-bar averageUse the Pine example below for this custom calculation; do not assume it is a native ETF Screener field.

Compare ETF relative strength with a Pine indicator

The example divides the ETF close by SPY, then measures that ratio against its own 50-bar SMA. A positive value means the ratio is above that average. The absolute ratio level, including whether it is above 1, says nothing about outperformance. This is a price-series comparison, not a dividend-reinvested total-return calculation. Use an appropriate benchmark for the asset class and keep sessions and adjustment settings consistent.

  • Paste the complete source into Pine Editor, save it and add it to an ETF chart. Select a daily timeframe to interpret the lengths as daily bars.
  • All plotted values use the preceding bar. On an open daily bar they describe the previous completed day; at the close they still describe that preceding day.
  • The benchmark is fixed to AMEX:SPY in this example. Change the source code if you need another benchmark. Missing benchmark data or insufficient history can produce unavailable values; do not treat them as zero.
  • The candidate column is 1 only when the previous ratio is above its average, price is above SMA 200 and RSI is above 50. ATR is reported for review and is not an entry condition. This indicator contains no order logic.
Complete Pine Script v6 indicator; daily timeframe for the example workflowpine
//@version=6
indicator("ETF trend and relative strength review", overlay=false)

// Use a daily chart for daily screening. SPY is an example benchmark.
float benchmark = request.security("AMEX:SPY", timeframe.period, close, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
float ratio = not na(benchmark) and benchmark > 0 ? close / benchmark : na
float ratioAverage = ta.sma(ratio, 50)
float priceAverage = ta.sma(close, 200)
float rsDistance = not na(ratio) and ratioAverage > 0 ? 100 * (ratio / ratioAverage - 1) : na
float priceDistance = priceAverage > 0 ? 100 * (close / priceAverage - 1) : na
float momentum = ta.rsi(close, 14)
float atrValue = ta.atr(14)
float atrPercent = close > 0 ? 100 * atrValue / close : na

// Every output refers to the preceding completed chart-timeframe bar.
float closedRs = rsDistance[1]
float closedTrend = priceDistance[1]
float closedRsi = momentum[1]
float closedAtr = atrPercent[1]
bool ready = not na(closedRs) and not na(closedTrend) and not na(closedRsi) and not na(closedAtr)
bool candidate = ready and closedRs > 0 and closedTrend > 0 and closedRsi > 50

plot(closedRs, "Previous RS distance from 50-bar SMA (%)", color=color.blue)
plot(closedTrend, "Previous price distance from SMA 200 (%)", color=color.orange)
plot(closedRsi, "Previous RSI 14", color=color.purple)
plot(closedAtr, "Previous ATR 14 (%)", color=color.gray)
plot(ready ? (candidate ? 1 : 0) : na, "Previous-bar candidate (1=yes)", color=color.green)

Use Pine Screener for the custom calculation

Create an ETF watchlist from the funds you have reviewed. In Pine Screener, select that source and the saved indicator, use the daily interval, then filter Previous-bar candidate (1=yes) equal to 1. Check your TradingView plan for Pine Screener access. The example uses one request call and five plots; syntax validation alone does not establish successful execution on every symbol or data subscription.

  • Pine Screener runs one indicator per screen, permits at most five separate request.*() calls and calculates using the latest 500 bars. Strategies are not supported.
  • Its supported intervals are 1, 5, 15 and 30 minutes; 1, 2 and 4 hours; daily, weekly and monthly. Custom intervals are unsupported.
  • input.symbol(), input.timeframe() and input.time() use script defaults in Pine Screener. The fixed benchmark in this example avoids implying that a symbol input can be changed there.
  • Run the scan again after changing the source, indicator, inputs, timeframe or filters. A scan result is not a running alert or an order.

Check timestamps before acting on a result

Refresh cadence and market-data entitlement are separate. TradingView paid plans do not include every exchange data fee. Inspect the data status for the exchange and symbol you use; refreshing a table cannot turn delayed quotes into real-time quotes. A screener row and chart may also use different sessions, timeframes or adjustment settings.

  • Record the observation time, exchange-qualified ticker, interval and whether the reported bar is open or complete.
  • Save a dated result snapshot alongside the screen settings. A saved screen preserves a configuration, not the old results.
  • When values disagree, align the feed, session, bar time and indicator settings before concluding that a calculation is wrong.

Review the supported ETF collection in Pineify

Pineify Market Screener includes an Index ETFs starter collection and an ETF category in its supported symbol selector. The current implementation allows up to 100 symbols and 20 selected indicator columns per collection. Access requires Expert or a higher eligible plan. Symbol availability depends on the supported universe and current data availability.

  • Open Market Screener, choose the Index ETFs collection or create a collection, and select supported ETFs. Use the daily interval for the daily workflow above.
  • Add supported columns such as SMA 200, RSI 14 and ATR 14 %. Sort the displayed technical values and inspect the corresponding charts.
  • The visible active collection attempts a refresh every 60 seconds. This describes the interface refresh interval, not a real-time exchange-data guarantee.
  • Review AUM, holdings, expense ratios and executable bid-ask spreads elsewhere. This page does not claim these are Pineify technical columns or that its workspace accepts arbitrary Pine indicators.

Keep leveraged and inverse ETFs in a separate review

Many leveraged and inverse ETFs target a daily objective. Compounding can make longer-period returns differ substantially from the stated daily multiple. Read the particular fund prospectus rather than applying a universal holding period or assuming an ATR stop removes that risk. These products are outside the ordinary unleveraged equity example above.

Where Pineify fits

Pineify Market Screener

Review supported ETF collections with selectable technical columns, including SMA, RSI and ATR percentage. Sign in with an eligible plan and confirm symbol availability before building your collection.

Open Market Screener

Frequently asked questions

Educational screening examples, not investment advice. No return, execution quality or risk reduction is promised. Verify fund documents and data before making a decision. Pineify is independent of TradingView.

Sources and verification