TradingView Alerts: Conditions, Frequency and Notification Workflow
A TradingView alert is more than “tell me when price gets there.” It is a small monitoring specification defining which source and operator to evaluate, on what interval and bar state, how often, until when and through which channel. One missing field can produce silence, repeated messages, a timestamp mismatch or a condition based on old settings. This guide writes the condition first, then validates the interface, delivery path and review ledger.
Who this guide is for: Users building price, indicator or Pine alerts and diagnosing missed, duplicated, intrabar or webhook notifications
Key points to understand first
- Decompose an alert into source, left operand, operator, right operand, interval, bar state, frequency, expiration and channel.
- Separate an “above” state from a crossing event and state whether evaluation uses an open or confirmed bar.
- After a chart or indicator change, verify the alert snapshot and whether recreation is required.
- Treat a notification as a review request and exclude passwords, API secrets, personal data and unconditional order commands from webhooks.
Lock condition and evaluation time before delivery
- L1SourceSymbol, provider, price or plot, interval
- L2ConditionLeft side, operator, right side, cross direction
- L3EvaluationIntrabar, bar close or script call
- L4Frequency & expiryOnce, per bar, deadline and timezone
- L5DeliveryApp, email, webhook and message
- L6Review logNotification time, chart, decision and result
Preserve creation-time script and inputs
Exclude secrets from payload and notification history
An alert requests review; it is not a recommendation
Convert a monitoring idea into a reproducible alert specification
A TradingView alert monitors a configured price, drawing, indicator, strategy or Pine Script condition and sends a selected notification. In a controlled workflow it means “refresh the evidence now,” not “place a trade.” Execution availability, acceptable loss, product suitability and obtainable price remain separate decisions.
Before opening the dialog, write: “Notify once when the confirmed one-hour close of full symbol XYZ crosses upward through 102.50.” Decompose it into source, operands, operator, threshold, interval, bar state and frequency and reconcile every field. Conditions and channels vary by plan, device, permission and date, so prefer the current interface and official help.
Distinguish price, drawing, indicator and Pine sources
A price alert evaluates a selected price series against a value. A drawing alert uses an object such as a line. An indicator alert can use a plot or declared condition. Pine alerts can be generated through script logic such as alertcondition() or alert(). A label such as “cross” does not make the sources or update timing identical. Read and preserve full symbol, venue/provider, condition name and interval from the creation dialog.
| Source | Left-side example | What can change | Identifier to preserve |
|---|---|---|---|
| Price | Last or price series | Tick, session and data delay | Full symbol, provider, field |
| Drawing | Horizontal or trend line | Anchors, movement and scale | Object name, anchors, owner chart |
| Indicator | Plot or condition | Inputs, bar state and repainting | Script, author and inputs |
| Pine alert() | Call inside code | Branch, frequency and message | Version and code hash/saved date |
Verify currently supported sources and choices in TradingView.
Do not assume an existing alert automatically follows a later indicator or script change. Preserve a creation-time snapshot and use current official behavior to determine whether it must be recreated. Pair this work with the indicator and repainting checklist.
Separate an above-state from an upward-cross event
A > B describes a state. Crossing upward describes a transition from a prior A≤B to a current A>B. If price remains above a threshold for several bars, the state remains true while the crossing event ordinarily occurs at the boundary. Notification count still depends on the displayed condition, script implementation and frequency. Translate the interface label into an equation.
Distance = current value A − threshold BPercentage from threshold = (A − B) ÷ |B| × 100Example: A = 101.20 and B = 102.50 → −1.30 and −1.27%Distance does not estimate arrival probability, future direction or fair value.For a crossing, record previous and current values, equality treatment, tick updates and confirmation. For two indicator series, preserve both sets of inputs and timeframes. If a drawing moves, the effective threshold can move, so retain creation-time anchors. Express compound AND/OR logic with parentheses and test the truth of each component separately.
Choose intrabar evaluation and delivery frequency separately
Price and indicators can update repeatedly during an open bar. Once, once per bar and once per bar close relate to when a qualifying alert can notify. Bar-close evaluation can avoid some intrabar changes, but it does not cure every feed revision or higher-timeframe issue. Decide first whether the purpose is early awareness or a record of confirmed values.
| Concept | Monitoring use | Possible omission or excess | Ledger field |
|---|---|---|---|
| Once | One deadline-bound review | Does not report recurrence | Created and ended time |
| Once per bar | First occurrence within a bar | Condition can reverse before close | Interval and first time |
| Once per bar close | Confirmed-bar state | Misses temporary intrabar event | Close time and timezone |
| Script frequency | Code-controlled event | Call location can conflict with setup | Version and frequency |
Confirm exact names and behavior for the current alert type.
Place expiration, timezone and trading session in the same ledger. An alert that expires during a closure does not prove the condition remained false. Check active status shortly after creation, during its life and before expiration, and distinguish stopped, error, expired and triggered states. Use the Forex sessions guide for cross-market clock control.
Make the message a review procedure and keep secrets out of webhooks
A message should include alert ID, full symbol, provider, interval, condition, frequency, trigger time, timezone and the next verification action. “XYZ BUY” loses source and reasoning and can be misread when forwarded. If placeholders are used, test which value is inserted at trigger time and inspect unresolved tokens, decimals and timezone.
- Include: Alert ID, symbol, interval, condition, trigger time and the review sequence.
- Exclude: Passwords, API secrets, session tokens, personal data, account numbers and unconditional order commands.
- Webhook receiver: Authenticate, allowlist where appropriate, rate-limit, deduplicate, log and provide a shutdown path.
- Device delivery: Test OS permission, focus mode, email filtering and loss of connectivity.
Review a 102.50 upward cross on a confirmed one-hour bar
Fictional alert A-017 monitors Venue X symbol XYZ. It notifies the app once when the one-hour close crosses upward through 102.50 and the bar is confirmed. At a current value of 101.20, distance is 101.20−102.50=−1.30 and percentage from threshold is about −1.27%. That is a position relative to the configured level, not a forecast that 1.27% movement will occur.
| Field | Setting | Test evidence | Action after notification |
|---|---|---|---|
| Source | Venue X:XYZ close / 1H | Full-symbol image | Recheck provider and timestamp |
| Condition | Crossing up 102.50 | Prior ≤102.50, current >102.50 | Reconcile bar and operator |
| Evaluation | Once per bar close | Confirmation time and timezone | Confirm it is not an open bar |
| Expiration | Fictional date 30 days later | Active list and deadline | Consider recreation if expired |
| Delivery | App / ID A-017 | Test notification time | Open chart and read assumptions |
The symbol, price and expiration are fictional and are not a trading recommendation.
Test delivery through a fictional condition or non-executing environment rather than silently changing the production threshold. A material change receives a new ID and version, and the old alert is stopped with evidence. If position size is considered later, calculate acceptable loss separately with the stop-loss and position-sizing guide; the alert does not determine risk.
Manage creation, testing, monitoring and retirement in one ledger
Completion is not pressing Create. The written specification and dialog must agree, a safe delivery test must arrive, the active list must show ID and expiration, the post-notification review must be defined, and the user must be able to stop it. A weekly review removes orphaned alerts, duplicate conditions, expired items, old scripts and unused channels.
- Write one specification
State full symbol, source, operator, threshold, interval, bar state and frequency.
- Reconcile the dialog
Check condition name, inputs, timezone, expiration and channel one field at a time.
- Test safely
Use a fictional or non-executing setup to check placeholders, delay, duplicates and permissions.
- Register the alert
Save ID, creation time, script version, image, owner and shutdown procedure.
- Reverify after delivery
Read symbol, timestamp, bar state, snapshot and invalidation before recording a separate conclusion.
Observe an indicator condition with the free indicator library, or continue to the Pine Script v6 beginner guide for a custom condition. Route historical trigger evaluation to Backtest Lab. This page remains focused on reproducible and safe alert operations.
Measure current value against a threshold
Calculate distance and percentage from the configured level. This does not estimate arrival probability, direction or suitability.
The result uses the first two inputs. A negative result only means the current input is below the threshold. Audit-note fields do not enter the condition calculation.
Frequently asked questions
Why did my TradingView alert not trigger?
Possible causes include a false condition, expiration, stopped or error state, data or script status, notification permission, network delivery and timezone assumptions. Check the active list and ledger sequentially.
What is the difference between once per bar and once per bar close?
The former generally permits a notification when the condition becomes true within the bar; the latter emphasizes evaluation at confirmation. Verify exact behavior for the current alert and script type.
Will an existing alert change when I edit indicator settings?
Do not assume it will. Preserve the creation-time script and inputs as a snapshot and verify current official behavior to determine whether recreation is required.
Is it safe to use a webhook for automatic orders?
Notification transport does not establish execution safety. Exclude secrets from payloads and independently design receiver authentication, deduplication, rate limits, loss limits, shutdown controls and provider compliance.
Primary sources and verification links
- TradingView | Learn how to configure alertsOfficial alert dialog, condition, frequency, expiration and notification guidance
- TradingView | How to set up alertsOfficial procedure for creating alerts from a chart
- TradingView | How to configure webhook alertsOfficial webhook configuration and security cautions
- TradingView Pine Script | AlertsOfficial Pine alert events, frequency and message concepts
Edited and published by: SG Group · Editorial approach: We prioritize official TradingView Help Center and Pine Script documentation, then use exchange, regulator and other primary materials for market and product context. Features, data, pricing and connection terms change, so verify the current interface and linked sources before use.
Important notice: This article provides general education about TradingView interfaces, charts, alerts, screeners, paper trading and Pine Script. It is not investment advice, a trading signal, a recommendation of any instrument, data source or broker, or a guarantee of future price or profit. Features, pricing, data, exchange coverage, notifications, order integrations and Pine Script behavior vary by plan, region, connection and date and may change. Before risking money, verify current TradingView documentation and the terms of the relevant data source and connected provider, then rehearse the workflow with fictional data or paper trading.

