TradingView's Pine Screener now lets a script make up to 40 request.*() calls, the same limit as the chart. Until TradingView's update of October 23, 2026 it allowed 5, so many multi-timeframe indicators had to be cut down before they'd scan. Identical calls with the same arguments count once; calls inside an imported library count too. The Pine Screener itself needs a Premium or Ultimate plan, per TradingView's pricing page on 2026-10-29.
The counter above reads your script the way TradingView describes the count. Below: what changed, what counts, how to run a scan, and the errors that keep a script out of the screener whatever its count.
A simulated schematic, not a screenshot: no TradingView artwork, tickers or prices. The Pine Screener needs a Premium or Ultimate plan; we drew the scan from TradingView's help.
Read as text
- 1. Count the requests: 8 unique request.*() calls.
- 2. Before Oct 23, 2026: the screener stopped at 5.
- 3. Since Oct 23, 2026: 40, the chart's limit.
- 4. A repeated call: same arguments: counts once.
- 5. Scan: the script runs unchanged.
- Calls inside an imported library count too. Premium and Ultimate plans only.
How this window was chosen: From TradingView's blog post of October 23, 2026 on the Pine Screener's request.*() calls and its Pine Screener help, read 2026-10-29. The script is our example on this page, counted by the checker above.
What changed on October 23, 2026?
The limit went from 5 request.*() calls per script to 40. TradingView's post, Pine Screener now supports up to 40 request calls per script, dated October 23, 2026: "Until now, there was a catch: a script could make no more than 5 request.() calls in the screener, while the same script on Supercharts could make up to 40." And: "Pine Screener now supports up to 40 request.() calls per script — the same limit as the chart."
What that opens up, in the post's words:
- Scan across timeframes. "Combine conditions from different intervals in one script – say, a weekly uptrend, a daily RSI reading, and a 4-hour volume spike — and filter for symbols that pass all of them."
- Compare against a benchmark. "Pull in an index or another symbol and use it in your conditions — for example, to find stocks outperforming the S&P 500 over the last month."
- Run heavier indicators as they are. Dashboards, scripts that check several lookbacks, and indicators built from libraries that make their own requests: "the ones you previously had to simplify or keep a separate 'screener version' for".
Our example in the counter does the first two in one script. It makes eight unique calls: over the old limit, well inside the new one.
The Pine Screener help now says the same: "No more than forty separate request.*() calls can be used inside of the scanned script." On the chart, TradingView's Pine limits page gives 40 unique calls, "or up to 64 unique calls if the user has the Ultimate plan". The screener's help says forty and doesn't mention Ultimate's 64; we couldn't test whether an Ultimate account gets more in the screener, so keep a script for the screener at 40 or fewer.
What counts as a request.*() call?
Every unique call to a function in the request.*() namespace. "Every time a script asks for data it doesn't already have — a value from another timeframe, another symbol, an index, financials — that is one request.*() call," TradingView's post says. The Pine limits page lists the functions that count: request.security(), request.security_lower_tf(), request.currency_rate(), request.dividends(), request.splits(), request.earnings(), request.quandl(), request.financial(), request.economic() and request.seed().
Four rules decide the count, from TradingView's pages:
- Identical calls count once. "Identical calls with the same arguments count as one." The limits page shows a loop calling
request.security(syminfo.tickerid, "1D", close)50 times without an error, because each call is the same. - Different arguments count separately. The same page changes the timeframe on each pass of that loop, and the script "will reach the request.*() call limit while executing the loop and raise a runtime error". By the same rule, we read a function called with three timeframes as three calls, and so does the counter.
- Library calls count. "Calls inside imported library functions count toward the limit," even, the limits page adds, "if the script already calls the same request.*() function with the same arguments in its main scope". The counter can't see inside a library: open its source and add its calls.
- Tuples share a call. One
request.security()that returns[close, high, volume]is one call. All of a script's requests together can return at most 127 tuple elements, per the limits page.
request.footprint() has its own rule: one unique call per script, and only Premium and Ultimate users can run scripts that call it.
How do you cut a script's request.*() count?
Merge calls that ask the same symbol and timeframe, and drop the repeats. The counter lists both under "How to cut the count", and the film's "Cut the count" tab shows the merge happen. Before:
//@version=6
indicator("Three calls")
c = request.security(syminfo.tickerid, "240", close)
v = request.security(syminfo.tickerid, "240", volume)
a = request.security(syminfo.tickerid, "240", ta.sma(volume, 20))
plot(v > 2 * a ? c : na)
After, one call:
//@version=6
indicator("One call")
[c, v, a] = request.security(syminfo.tickerid, "240", [close, volume, ta.sma(volume, 20)])
plot(v > 2 * a ? c : na)
Three calls on the same symbol and timeframe become one, and the script returns the same values. Two more ways:
- Compute on the chart's own timeframe where you can. A value on the screener's own interval needs no request at all.
- Keep loops from changing arguments. A loop that requests a new symbol or timeframe on every pass makes one call per pass. If you need ten symbols, that's ten calls, and the counter says so.
If you trimmed a script to fit the old limit of 5, TradingView's own suggestion is to undo it: "If you cut requests from a script to fit the old limit, now is a good time to put them back."
How do you run a script in the Pine Screener?
Add the indicator to your favorites, open the Pine Screener, pick a source and the indicator, set filters, then Scan. TradingView's post: "Nothing changes in how you work: add the indicator to your favorites on the chart, select it in Pine Screener, set your filters, and run the scan." The steps, from the Pine Screener help:
- Add the script to your favorites on the chart. The screener's Add indicator dialog lists the scripts saved there: your own, built-ins and community scripts.
- Open the Pine Screener. From TradingView's home page, Products → Screeners → Pine, or go to tradingview.com/pine-screener/.
- Pick the source: one of your watchlists, or an index. An index can hold up to 4,000 symbols. One source at a time.
- Click Add indicator and choose the script. One indicator per screen. Its first ten plots become filters and table columns, and two of its alert conditions are added.
- Set your filters on its plots or alert conditions, then click Scan. Change the source, the inputs, the timeframe or the filters and you scan again.
We're on the free Basic plan, so these steps are TradingView's, not ours. Signed out on 2026-10-29, the Pine Screener's page showed a BETA label and "Log in to use Pine Screener" over a Log in button.
Why won't my script run in the Pine Screener?
Six causes, each from the Pine Screener's help or TradingView's post, and the fix for each. The counter flags all six, and a note's "Show line" button selects the line to fix in your pasted script.
| What you see | Cause | Fix |
|---|---|---|
| The script is greyed out in Add indicator | No alertcondition() and no supported plot | Add plot(), plotshape(), plotchar(), plotarrow(), plotbar(), plotcandle() or hline(), or an alertcondition() |
| You can't scan a strategy | The screener doesn't support strategies | Put the entry condition in an indicator and plot it |
| An error on a request | More than 40 unique request.*() calls | Merge calls into tuples; remove repeats |
| A request on "45" or "3D" fails | A timeframe off the screener's list | Use 1, 5, 15, 30, 60, 120, 240, 1D, 1W or 1M |
| Your Settings timeframe is ignored | input.timeframe(), input.symbol() and input.time() aren't supported | Change the input's default in the code |
| An old script's alert conditions don't work | Pine v3 or earlier | Move the script to v6 (our v5 to v6 guide) |
Two limits that aren't errors but change results: the screener "calculates data based on only the last 500 bars on the chart", and it doesn't support Indicator-on-Indicator or custom timeframes. Everything else about the Pine Screener "remains the same", TradingView's post says.
Use itPaste the script before you upgrade a plan for it: if it's over 40, or uses a timeframe the screener can't request, the plan won't fix it.
Watch outThe counter reads the source. A library's own calls, or a series argument that changes bar to bar, can add requests it can't see.
Which TradingView plan has the Pine Screener?
Premium and Ultimate. On TradingView's pricing page, read on 2026-10-29, the Screeners section ticks Pine Screener for Premium and Ultimate and crosses it out for Basic, Essential and Plus. Prices per month, billed annually, the same day:
| Plan | Pine Screener | Price |
|---|---|---|
| Basic | No | $0 |
| Essential | No | $12.95 |
| Plus | No | $29.95 |
| Premium | Yes | $59.95 |
| Ultimate | Yes | $199.95 |
The stock, ETF, DEX and crypto screeners are on every plan, Basic included; the Bond Screener is Ultimate only. If the Pine Screener is the only reason you'd pay, run the counter first; if you're choosing a plan for several features, the plan picker ticks them all at once.
The deep version, as a PDF
TradingView Power-User Guide
The plan you actually need, Pine without the pain, alerts that fire, and backtests you can trust.
- Every plan's limits on one page, which plan each kind of trader needs, and how to fit more on the one you have
- Original research: two strategies, three Strategy Tester settings and two fill-order assumptions on a year of gold and Bitcoin, and how far each result moved
- Alerts and webhooks that fire when they should, with the full why-it-didn't checklist and a JSON template
One payment, instant download. Refund within 7 days if you haven't downloaded it.
Where we stand
On 2026-10-29 we read TradingView's October 23, 2026 post, its Pine Screener help, its Pine limits page and its pricing page, and opened the Pine Screener signed out. We're on the free Basic plan and haven't run a scan: the scan steps are TradingView's own. The counter is ours: it reads your source in your browser, counts calls by the rules above and sends nothing anywhere.
We write Pine indicators ourselves: each tool in our Pine v6 stack is a .pine file you paste into the Pine Editor. TradingView doesn't endorse us. We're in its partner program, so our links to TradingView are partner links: if you open a new account through one and buy a plan, TradingView may pay us, at no cost to you.
Use this animation on your site.
Frequently asked questions
How many request.security() calls can the Pine Screener make?
Up to 40 request.*() calls per script, the same limit as the chart, since TradingView's update of October 23, 2026. Before that the Pine Screener allowed 5. The limit counts every request.*() function, not only request.security().
Do repeated request.security() calls count toward the limit?
Not when they're identical. TradingView says identical calls with the same arguments count as one. A call in a loop or a function that runs with different arguments counts once for each different set, and calls inside an imported library's functions count too.
Is the Pine Screener free on TradingView?
No. TradingView's pricing page, read on 2026-10-29, ticks the Pine Screener for Premium and Ultimate only; Basic, Essential and Plus don't have it. Signed out, the Pine Screener's page asks you to log in.
Why is my indicator greyed out in the Pine Screener?
TradingView's help says an indicator shows as inactive when it has no alertcondition() and no supported plot: plot(), plotbar(), plotcandle(), plotchar(), plotshape(), plotarrow() or hline(). Add one of them, save, and add the script to your favorites again.
Can the Pine Screener run a strategy?
No. The Pine Screener's help says it doesn't support strategies, profiles or patterns. Copy the strategy's entry condition into an indicator and output it with plot() or alertcondition().
Which timeframes does the Pine Screener support?
1, 5, 15 and 30 minutes, 1, 2 and 4 hours, 1 day, 1 week and 1 month. In Pine that's "1", "5", "15", "30", "60", "120", "240", "1D", "1W" and "1M". A request.*() call asking for any other timeframe won't run in the screener.
Does the Pine Screener use my input.timeframe() setting?
No. The help says the screener ignores the values you pick for input.timeframe(), input.symbol() and input.time() and uses the script's defaults, so set the default to the timeframe you want scanned.


