WhitmanTrading

How to Set TradingView Alerts: 8 Steps, Frequencies, Webhooks and Plan Limits (2026)

To set TradingView alerts, choose what the alert watches, the operator, the frequency and an expiration, then write a message and pick where it is delivered. The alert then runs on TradingView's servers as a saved copy of the chart's symbol, timeframe and settings, so later edits to the chart do not change it.

To set a TradingView alert, open the Create Alert dialog, pick the condition, operator and frequency, set the timer, write the message and tick where it should arrive. The frequency is the setting that changes what you hear: on QQQ’s hourly bars, an alert at the prior day’s high fired on a bar that then closed back below on 38.01% of first breaks.

TradingView alerts are conditions that TradingView checks on its own servers and reports when they come true: a price crossing a level, an indicator leaving a range, a Pine script calling alert(), or a strategy filling an order. Nothing needs to stay open on your computer. Platform facts below come from TradingView’s Help Center, pricing page and Pine Script manual, first read 27 Oct 2026; the limits, frequencies, webhook rules and plan counts were read again on 1 Nov 2026.

This page is the mechanics. Choosing the level before any alert is set is covered in how to set a price alert, and the platform as a whole on the TradingView page.

Before you start

A chart open on the symbol and timeframe the alert should watch, because the alert copies both. The Help Center says alerts on a plain data series do not depend on the interval, while for indicators the interval matters because it changes the calculation. A moving-average cross on the hourly chart and on the daily chart are two different alerts.

One condition you can name in a sentence. “Close above the line I drew at the March high” can be built; “tell me when it looks strong” cannot.

Somewhere to receive it that you check, and for a webhook a receiving server you control. The choices are the mobile app, a pop-up, email, a sound, plain text to an alternative email address, or a webhook URL. Webhook alerts need two-factor authentication switched on.

The steps

1. Open the chart on the alert’s timeframe

Load the symbol and set the interval first. Then open the dialog in any of six ways: the top toolbar, the alert manager, the right-click menu, the drawing panel, the plus button beside the price on the price scale, or Alt + A (Option + A on a Mac).

2. Pick the condition source

Price watches the symbol itself. Lines, channels, rectangles, Anchored VWAP and Fibonacci tools can carry their own alert, and any indicator on the chart, community scripts included, appears in the list, as do strategies.

3. Choose the operator that matches the event

Crossing fires from either direction; Crossing up and Crossing down fire from one. Greater than and Less than on price need the move to pass the level by at least one minimum tick. Entering, Exiting, Inside and Outside Channel work on two boundaries. Moving up, Moving down and their % versions measure a change over a set number of bars.

4. Set the frequency to Once per bar close for indicators

Pick one of the four frequencies described below. For anything built on an indicator or a script, Once per bar close matches what the chart shows once the bar has finished, and Pine’s own manual points to it as the simplest way to avoid alerts on values that later change.

5. Set the timer and the notification schedule

The alert switches itself off when its timer expires. The notification schedule is separate: it blocks delivery outside chosen hours, while the alert keeps triggering and keeps writing to the log.

6. Write a name and a message with variables

The name can run to 300 characters and the message to 4,000; a Pine alert() message can run to 40,960. Variables such as the ticker, close and interval, each typed inside two pairs of curly brackets, are filled in when it fires. Put the reason for the alert in the text, because the message is all that arrives.

7. Choose delivery, webhook only for your receiver

A webhook sends the message as an HTTP POST to your URL, which is how alerts reach a spreadsheet, a chat bot or a trading tool, and it needs its own care (below).

8. Fire a test and read the alert log

Set a throwaway alert a tick away from the current price with Only once, wait for it to trigger, and open the log. Its Webhook status column shows whether a webhook got through.

How to tell it worked

The test alert shows 1 trigger in the log with every variable replaced by a value. TradingView says the replacement works on alertcondition() alerts in scripts written in Pine v4 or higher, so a message that still shows a variable’s name in brackets can point to an older script.

A script alert set to Once per bar close fires at most 1 time per bar, at the bar’s close.

A webhook trigger shows no error in the Webhook status column, and your receiver logged the request and answered within 3 seconds.

The four frequencies, and the one to use

Only once fires the first time the condition is met and then stops.

Once per bar checks every bar and fires whenever the condition is met, no more than once per bar, so it can fire while the bar is still forming and later closes back on the other side.

Once per bar close is the same, but the bar must close before it fires.

Once per minute or every time checks conditions every minute and fires whenever they hold. A price alert is worked out on 1-minute data in any case, which is why the interval variable can return 1 on one.

A worked example: one line, two frequencies

The setup: QQQ’s hourly chart, a line at the prior session’s high, and two alerts on it, one set to Once per bar and one to Once per bar close. On 24 Sep 2026 QQQ’s hourly high was $742.65, printed in the 12:30 bar.

What fired, bar by bar, on 25 Sep. The 9:30 bar opened at $742.84, traded to $745.42 and closed at $740.77, $1.88 under the line. The Once per bar alert went off in that first hour; the Once per bar close alert stayed silent, because the bar finished below. The 10:30 bar closed at $742.69, four cents over the line, and only then did the bar-close alert fire.

QQQ hourly candles from 12:30 on 24 September to 15:30 on 25 September 2026 with a dashed line at the 24 September high of $742.65; the 9:30 bar on 25 September, marked A, reaches $745.42 and closes at $740.77, and the 10:30 bar, marked B, closes at $742.69.
QQQ 60-minute bars, 24 Sep 2026 12:30 to 25 Sep 15:30 (ET), with the 24 Sep hourly high of $742.65 drawn as a line; A marks the 9:30 bar on 25 Sep and B the 10:30 bar. Source: Yahoo Finance, QQQ 60-minute bars (yahoo-qqq-60m-730d.json).

What the two alerts told you. The intrabar alert reported a breakout an hour before any bar had closed above the line, and that first bar then finished under it. The bar-close alert came an hour later, after a bar had actually finished above the line. Neither one was “right” about what QQQ did next; they answered two different questions, and the frequency box is where you choose which question you are asking.

Which alert type for which job

Job Condition source and operator Frequency
Price reaches a level you chose Price, Crossing (or Crossing up / down) Only once
A close beyond a level Price, Greater than or Less than Once per bar close
A line you drew is touched The drawing itself, Crossing Only once or Once per bar
An indicator crosses a value The indicator, Crossing up / down Once per bar close
Every signal a script produces The script’s alert() call, Any alert() function call Set in the code
The same rule across many symbols A watchlist alert (Premium and Ultimate) Once per bar close

The pool matters as much as the setting. An alert counts as a price alert only when it uses the symbol and a price with Crossing, Crossing up, Crossing down, Greater than or Less than; drawings, indicators, strategies, channel and moving operators and multiple conditions make it technical, and the two pools have separate limits.

A message and a webhook body that work

For a phone notification, write the reason and the numbers. A message such as “QQQ hourly close above yesterday’s high”, followed by TradingView’s close and interval placeholders (each name typed inside double curly braces), arrives as a sentence you can act on without opening the chart.

For a webhook, send JSON. A body that is a JSON object with four fields (ticker, close, time and why), where the first three hold TradingView’s ticker, close and timenow placeholders in double curly braces and “why” holds your own reason, goes out with an application/json header; anything that is not valid JSON goes out as text/plain.

The rules the receiver has to live with: only ports 80 and 443, no IPv6, and a 3-second limit after which the request is canceled. If your server answers with a status from 500 to 599 other than 504, TradingView sends the same message again after 5 seconds, up to 3 more times, so one trigger can arrive 4 times. Our advice, not a TradingView setting: have a receiver that acts on alerts ignore a repeat carrying the same ticker, time and reason.

Never put a password or login in the URL or the message. TradingView’s article on webhook credentials says so, and it states that its alerts are not designed for automated trading. A trading bot built on webhooks inherits every limit here; automate a strategy covers what else it needs.

Plan limits, as TradingView states them

Active price alerts by plan, from TradingView’s pricing page on 1 Nov 2026: 3 on Basic, 20 on Essential, 100 on Plus, 400 on Premium and 1,000 on Ultimate. The same table lists technical alerts of 20, 100, 400 and 1,000 for the four paid plans, and watchlist alerts of 2 on Premium and 15 on Ultimate. The Help Center matches the Premium (400 and 400) and Ultimate (1,000 and 1,000) figures.

Expiry depends on the plan. The Help Center says a standard alert lasts at most two months and that Premium and Ultimate can set one with no end date; the pricing page lists alerts that do not expire on every paid plan. The two pages did not agree on 1 Nov 2026, so check the expiration menu on your own account. An alert is switched off automatically only when it is over a year old and has neither triggered nor been edited in a year.

Two hard stops. A regular alert that fires more than 15 times in 3 minutes is stopped. A watchlist alert stops one symbol at 15 triggers in 3 minutes and the whole list at 1,000 triggers in 3 minutes.

Alerts from Pine Script

Code cannot create a running alert. Scripts only create alert events; someone still has to open the dialog and choose the script as the condition, and alerts only trigger on the realtime bar.

alertcondition() works in indicators only and adds one named choice to the condition list. alert() works in indicators and strategies, its message is built while the script runs, and the code sets its frequency: alert.freq_once_per_bar (the default), alert.freq_once_per_bar_close or alert.freq_all. The Pine Script page covers the language, and strategy alerts report the strategy tester’s simulated fills, not trades at any broker.

The original data

The question: how often does the choice between Once per bar and Once per bar close change what you hear? We took the simplest alert a trader sets, a line at the previous session’s high, and asked what the first bar to trade above it did on QQQ. The bars are Yahoo Finance’s, regular hours, not TradingView’s own feed.

Hourly bars, 28 Nov 2023 to 26 Oct 2026. Yahoo’s hourly file skips 13 and 14 Jul 2026, is short on 30 Jan, 2 Feb and 10 Jul 2026, and has no 12:30 bar on half-day sessions, so those sessions, and the sessions that use them as the prior day, are left out: 710 of 727 remain. On 392 of them some hourly bar traded above the prior session’s high. The first bar to do so closed back at or below the line on 149 of 392 (38.01%): an alert judged during the bar fired, one judged at the close did not. The other 243 (61.99%) closed above on the same bar. On 83 (21.17% of all 392) of those 149 a later hourly bar closed above the line, a median one bar later, and the bar-close alert fired then; on 66 none did that session.

Horizontal bars for QQQ hourly bars from November 2023 to October 2026: of 392 first breaks of the prior session's high, 243 closed above on the same bar, 83 closed back and closed above on a later bar, and 66 never closed above that session.
What the first hourly bar to trade above the prior session's high did, QQQ, 392 sessions from 28 Nov 2023 to 26 Oct 2026. Source: Yahoo Finance, QQQ 60-minute bars (m100-qqq-first-cross-of-prior-session-high.csv).

The finding: on more than a third of first breaks the two frequencies disagreed, and on 66 of 392 sessions (16.84%) only the intrabar alert ever fired. On QQQ’s daily chart since March 1999 the same pattern held at a larger scale: 1,527 of the 3,765 sessions that traded above the prior day’s high (40.56%) closed back at or below it. On 5-minute bars, 3 Aug to 26 Oct 2026, it was 8 of 28 first breaks (28.57%), a small sample.

The check. Using Nasdaq’s own daily highs for QQQ as the line instead of the hourly bars’ highs gives 150 of the same 392 (38.27%). The two highs agree within 5 cents on 692 of 728 sessions; the largest gap, $8.78 on 13 Apr 2026, is a session where Yahoo’s own daily bar agrees with Nasdaq and the hourly bars do not. With no sessions left out at all, the count is 153 of 405 (37.78%). Every session is in the first-break file.

What the videos teach. In this site’s 24,971-video search study, 57 titles name TradingView and alerts, at a median of 2,199 views. None of the 47 with description text mentions webhooks, expiration, bar close or repainting. The groups are in the title groups CSV.

When it fails

The first failure is an alert on an unfinished bar. Once per bar, or alert.freq_all, reports a cross the closed bar then undoes, as it did on 149 of 392 first breaks above.

The second is editing the chart and expecting the alert to follow. It kept a copy of the inputs and the timeframe; change the length of a moving average and the old alert keeps firing on the old length.

A third is a noisy alert. More than 15 triggers in 3 minutes and TradingView stops it.

A fourth is a silent expiry and a short log. An expired alert sends nothing. The log removes triggers older than 30 days and keeps only the latest 100 per alert, in a cleanup each day at 21:00 UTC, so export it to CSV before then.

A fifth is delayed data. If the exchange variable in a message ends in _DL or _DLY, the symbol is on delayed data, and the alert is firing on a delayed price.

And a sixth is treating a webhook as an order route. A slow receiver, a nonstandard port or a repeated request breaks the chain without any error on the chart.

Questions people ask

What is the difference between Once per bar and Once per bar close?

Once per bar fires as soon as the condition is met during a bar; Once per bar close waits for the bar to finish. On QQQ’s hourly bars the first break of the prior session’s high closed back below on 38.01% of sessions, where only the first would have fired on that bar.

How many alerts can I have on TradingView?

On 1 Nov 2026 TradingView’s pricing page listed 3 active price alerts on the free Basic plan, and 20, 100, 400 and 1,000 on Essential, Plus, Premium and Ultimate, with technical alerts counted in a separate pool.

Do TradingView alerts work when my computer is off?

Yes. Alerts run on TradingView’s servers, so the chart, the browser and the computer can all be closed; only the place the alert is delivered to has to be reachable.

Can I set an alert on RSI or another indicator?

Yes, on a paid plan; the free Basic plan lists price alerts only. Add the indicator to the chart, open the dialog, pick the indicator as the condition and choose an operator such as Crossing up 30. It counts as a technical alert, and Once per bar close keeps it from firing on a value the finished bar does not keep.

Why did my TradingView alert stop?

The causes TradingView’s own pages name are the timer running out, more than 15 triggers in 3 minutes, and a switch to a lower plan, which stops all active alerts until they are turned back on within the new limits.

TradingView explains the platform as a whole, and the free vs paid comparison sets the plans side by side. Pine Script explains the language behind script alerts, and how to write a Pine script is the place to start one. For the habit of deciding a level before any alert is set, how to set a price alert is the companion to this page.

What I actually do

Set anything built on an indicator to Once per bar close. A condition can be true halfway through a bar and false when it finishes, and an alert that fires on the unfinished bar reports a signal the chart will never show.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.