⚙️ Trading Tools

TradingView Alert: Once Per Bar vs Once Per Bar Close — Which Setting Stops False Signals (2026)

⚠️ Disclosure: Some links on this page are affiliate links. If you sign up through them, I may earn a commission — at no extra cost to you. I only review tools I actually use.

Why Your TradingView Alerts Fire Too Often (Or Not at All)

You set up a TradingView alert on your RSI crossover, go to bed, and wake up to 47 notifications. Half of them fired on the same bar. The other half reversed before the bar even closed.

The culprit? The alert frequency setting — specifically, the difference between "Once Per Bar" and "Once Per Bar Close."

This is one of TradingView's most misunderstood features. Get it wrong and you'll either drown in false signals or miss real ones entirely. I've been running live TradingView alerts for my USDJPY momentum strategy for months, and I've hit every failure mode. Here's how each setting actually works.

The Five Alert Frequency Options Explained

When you create an alert in TradingView, the "Trigger" section gives you five frequency options. Each one changes *when* and *how often* your alert fires:

1. Only Once

The alert fires exactly one time, then deactivates permanently.

Use case: One-off price targets. "Alert me when BTC hits $100,000" — you only need that notification once. Gotcha: The alert triggers on the *first tick* that meets the condition, not at bar close. If price briefly spikes past your level on a wick and reverses, you still get the alert.

2. Once Per Bar

The alert fires the *first time* the condition becomes true during each bar, then stays silent for the rest of that bar. It resets when the next bar opens.

Use case: You want to know as soon as something happens within a bar, but don't want repeated alerts if the condition flickers on and off during the same bar. The problem: On a 1-hour chart, "Once Per Bar" fires the moment RSI crosses 70 — even if RSI drops back to 69 before the hour ends. The bar hasn't closed yet. The signal isn't confirmed. If you're sending alerts to a webhook for automated trading, you just placed a trade on an unconfirmed signal.

3. Once Per Bar Close ⭐

The alert checks the condition only *after the bar has fully closed*. If the condition is true at close, it fires. If the condition flickered to true mid-bar but reverted before close — no alert.

Use case: Almost every strategy-based alert. This is the setting you want 90% of the time. Why it matters: Most technical indicators (RSI, MACD, moving averages) are designed to be evaluated on *closed* bars. A moving average crossover that happens mid-bar can reverse before close. Once Per Bar Close eliminates these phantom signals.

I run my USDJPY momentum alerts on the daily chart with Once Per Bar Close. Before switching to this setting, I was getting 3-4 false crossover alerts per week on the 4H chart. After switching: zero false fires in two months.

4. Once Per Minute

The alert checks every 60 seconds and fires each time the condition is true. No deduplication per bar.

Use case: Real-time monitoring of fast-moving conditions where you want constant updates. Price within a range, volume spikes, etc. Warning: This can generate A LOT of notifications. If your condition stays true for an entire 4-hour bar, that's 240 alerts. Use sparingly.

5. Every Time the Condition Changes (default for some alert types)

Fires whenever the condition transitions from false→true or true→false.

Use case: Tracking state changes — "RSI entered overbought" and "RSI left overbought" as separate events. Warning: On volatile instruments with noisy indicators, this creates alert storms. RSI bouncing between 69.8 and 70.2 will fire on every cross.

The Real Decision: Once Per Bar vs Once Per Bar Close

For strategy alerts, the choice boils down to these two. Here's a side-by-side:

Once Per BarOnce Per Bar Close
When it firesFirst tick condition is trueAfter bar closes, if true
SpeedFaster (real-time)Delayed (waits for close)
False signalsMore (mid-bar reversals)Fewer (confirmed signals)
Best forBreakout alerts, price levelsIndicator crossovers, strategy signals
Webhook tradingRiskyRecommended

When Once Per Bar Actually Makes Sense

When You Must Use Once Per Bar Close

Common Mistakes and How to Fix Them

Mistake 1: Using Once Per Bar for a strategy, then blaming the strategy

"My backtest shows 65% win rate but my live alerts are only winning 40%."

The backtest runs on closed bars. Your alerts fire on the first tick. You're comparing two completely different signal sets.

Fix: Switch to Once Per Bar Close. Your live results should now match your backtest more closely.

Mistake 2: Setting Once Per Bar Close on a price level alert

"I set an alert for BTC at $100K with Once Per Bar Close on the daily chart. Price hit $100,200 intraday, pulled back, and closed at $99,800. My alert never fired."

That's working as designed — but probably not what you wanted.

Fix: Use Once Per Bar for price level alerts. Or switch to a shorter timeframe (1-minute chart with Once Per Bar Close gives near-real-time confirmation).

Mistake 3: Wrong timeframe + wrong frequency

You have a 5-minute chart with Once Per Bar Close alerts, but your strategy was designed on the daily chart. Your alert is checking a daily crossover every 5 minutes.

Fix: Alerts inherit the timeframe of the chart they were created on. Make sure you create the alert while viewing the correct timeframe. Alternatively, use Pine Script with request.security() to hardcode the timeframe.

Mistake 4: Alert condition repaints

Some indicators repaint — they change their historical values after the bar closes. With Once Per Bar, you get the alert based on the real-time (repainting) value. With Once Per Bar Close, you get the non-repainting value.

If your indicator repaints and you use Once Per Bar, you'll see signals in your alert history that don't exist on your chart anymore. Confusing.

💡 TradingView

Like what you're reading? Try it yourself — this link supports ChartedTrader at no cost to you.

Get started with TradingView →

Fix: Use non-repainting indicators, or at minimum use Once Per Bar Close to reduce (not eliminate) the mismatch.

How to Set Alert Frequency in TradingView

Step by step:

1. Right-click on your chart or click the "Alert" button (clock icon) in the top toolbar

2. Set your condition — choose the indicator, crossing direction, and value 3. Under "Trigger" — this is where you select the frequency: - Open the dropdown that says "Once Per Bar" (or whatever the default is) - Select "Once Per Bar Close" for strategy-based alerts 4. Set expiration — free plan alerts expire after 2 months; paid plans get indefinite alerts 5. Configure notifications — app notification, email, webhook, or all three 6. Click Create

If you're using Pine Script alerts (via alertcondition() or alert()), the frequency setting in the UI still applies. Your script generates the condition; the frequency setting controls how often TradingView checks and fires it.

Pine Script Alert Frequency Tips

If you write your own indicators, you can avoid most frequency headaches by designing your Pine Script correctly:

// Bad: condition is true whenever RSI > 70
alertcondition(ta.rsi(close, 14) > 70, "RSI Overbought")
// This fires repeatedly while RSI stays above 70

// Good: condition fires only on the crossover
alertcondition(ta.crossover(ta.rsi(close, 14), 70), "RSI Crosses Above 70")
// This fires once when RSI first crosses 70, regardless of frequency setting

// Best: use Once Per Bar Close + crossover for confirmed signals
alertcondition(ta.crossover(ta.sma(close, 20), ta.sma(close, 50)), "Golden Cross")
// Pair with Once Per Bar Close for maximum reliability

The ta.crossover() and ta.crossunder() functions are your best friends. They only return true on the exact bar where the cross happens, which naturally limits alert frequency even if you accidentally leave it on "Once Per Bar."

My Setup: What I Use for Live Trading

For my USDJPY momentum strategy running on the daily chart:

Different alert types need different frequency settings. There's no single "correct" option — it depends entirely on what the alert is for.

FAQ

Does Once Per Bar Close work on all timeframes?

Yes. On a 1-minute chart, it checks after each minute closes. On a weekly chart, it checks after each week closes (Sunday night for most instruments). The delay before firing is proportional to the timeframe.

Can I change alert frequency after creating it?

No. You need to delete the alert and create a new one with the correct frequency. This is a common TradingView annoyance — there's no edit option for the trigger setting.

Do webhook alerts respect the frequency setting?

Yes. If you set Once Per Bar Close, the webhook only receives a POST request when the bar closes and the condition is true. This is critical for automated trading — you don't want your webhook firing mid-bar.

I'm on the free plan. Does this affect my alert limit?

The frequency setting doesn't affect how many alerts you can create (free plan: 1 active alert; Essential: 20; Plus: 100; Premium: 400). But choosing Once Per Bar Close means fewer total notifications, which helps if you're hitting notification limits.

Why does my alert fire at slightly different times than bar close?

TradingView checks alert conditions in batches, not instantaneously at bar close. There can be a 1-5 second delay after the bar closes before your alert fires. For webhook trading, this latency is normally acceptable, but be aware of it for scalping strategies.

Bottom Line

Default to Once Per Bar Close for everything strategy-related. Only switch to Once Per Bar for price level alerts or time-sensitive breakout notifications.

If you're automating trades via webhooks, Once Per Bar Close isn't optional — it's mandatory. The alternative is placing orders on unconfirmed signals and wondering why your live results don't match your backtest.

And if you're still getting too many alerts after switching? The problem isn't the frequency setting — it's your indicator. Use ta.crossover() instead of raw threshold comparisons, and your alert inbox will thank you.

*Trading with TradingView alerts? Get started with TradingView — the platform I use daily for live USDJPY signals.*

Related Articles

---

*This article contains affiliate links. If you sign up through our links, we may earn a commission at no extra cost to you. This helps support our independent research and content.*

TradingView

Ready to get started? Use the link below — it helps support ChartedTrader at no cost to you.

Get started with TradingView →
📈

About the author

I'm a systematic trader running live strategies on IB (USDJPY momentum) and Hyperliquid (crypto perps). Every tool reviewed here is something I've used with real capital. Questions? Reach out.

📚 Related Articles

⚙️ Trading Tools

Forex Tester Exit Optimizer: Find Your Best Stop Loss & Take Profit Automatically (2026 Guide)

Forex Tester's Exit Optimizer automatically tests thousands of stop loss, take profit, and holding duration combinations to find what actually works for your strategy. Here's how to use it with real trade data and why it changes how you think about exits.

March 22, 2026 ⏱ 14 min read
⚙️ Trading Tools

TradingView Alert Not Triggering? 12 Fixes That Actually Work (2026)

TradingView alerts not firing? This troubleshooting guide covers the 12 most common reasons alerts fail — from wrong frequency settings to expired conditions — with step-by-step fixes from a daily TradingView user.

March 21, 2026 ⏱ 10 min read
⚙️ Trading Tools

Forex Tester Review 2026: The Backtesting Software That Actually Changed How I Trade

Hands-on Forex Tester review after 6 months of daily use. Features, pricing, honest pros/cons, and who should actually buy it in 2026.

March 20, 2026 ⏱ 8 min read

📬 Get weekly trading insights

Real trades, honest reviews, no fluff. One email per week.