Skip to main content
A dark trading scene where coral data packets stream from a candlestick chart toward a glowing stopwatch, illustrating the delay between a TradingView signal and its delivery

TradingView Webhook Delay: 34,174 Alerts on Real Latency

· 14 min read

From candle close to the moment an alert webhook reaches our server, the median wait is 4.0 seconds. Not a spike, not a bad day: that is the normal case across 34,174 alerts logged over 24 straight days. Under US market load it climbs 27%, and the tail is heavy. This post is the full breakdown behind the number, measured by us, with the method and the caveats laid open.

TL;DR

  • Median TradingView webhook delay is 4.0 seconds from 1-minute candle close to server receipt (n = 34,174, 24 days).
  • Almost one in three alerts take longer than 5 seconds, 9% take longer than 8, and the worst hit 40.5s.
  • The delay lives on TradingView's side (alert evaluation plus delivery). Our clock stops when the webhook lands, so everything after that sits outside this dataset.
  • Latency tracks market activity: the US session (13:00-19:59 UTC) runs 27% slower at the median than off-peak, and weekdays run 31% slower than weekends.
  • Reliable from the 5-minute chart up. One minute is marginal, 30 seconds is risky, 15 seconds is unusable, and HFT is out of reach by six orders of magnitude.

Key Takeaways

1
Median total4.0 scandle close → webhook received
2
95th percentile9.9 s1 in 20 alerts are slower
3
Under US load+27%median, vs off-peak hours
4
Sample size34,174alerts over 24 continuous days

How we measured TradingView webhook latency

We ran a Pine script on a 1-minute Bybit BTCUSDT chart that fires one TradingView webhook per bar close, carrying the {{timenow}} placeholder (TradingView's own alert-generation timestamp). Our server logs the receipt time. From July 27 to August 20, 2026 that produced 34,174 measurements, one per minute.

The payload used a warm-up token, so the backend logged it and answered OK without touching an exchange. No order, no queue, no side effects. Twenty-four days at one alert per minute allow 34,560 measurements, and we captured 34,174 of them, a rate of 98.9%. We didn't establish what happened to the 386 missing points, so we report the gap without a cause.

Every alert splits into three parts, so we can see where the time actually goes:

  • Engine: bar close to alert generation. This is TradingView evaluating the alert condition.
  • Delivery: generation to receipt. This is TradingView's dispatch plus the network hop.
  • Total: bar close to receipt. The per-alert sum, and the number that matters to you.
What the numbers can and can't tell you

Engine and delivery add up to total on every single alert. They don't add up percentile by percentile, because the median of a sum isn't the sum of the medians, so don't expect the p50 column to reconcile. {{timenow}} is truncated to whole seconds, so the split is biased and not merely noisy: the engine reads up to 1s too low and delivery up to 1s too high, about 0.5s each on average. Total never touches that timestamp, so it stays unaffected and exact.

The absolute figures include a fixed network path from TradingView to our data center in Europe, so the value lives in the shape and spread of the distribution, not in the raw network hop. Our own server runs NTP (ntp.org); we assume TradingView's does too, which we can't verify from outside. A clock offset would shift the engine/delivery split without changing the total. One probe, one account, one symbol: treat this as a deep sample of one configuration, not a survey of many.

How fast are TradingView webhooks, really?

Across 34,174 alerts the median total latency was 4.03 seconds, with a right-skewed mean of 4.71s (our study, 2026). The spread is what stings: the 90th percentile sits at 7.62s and the 99th at 16.1s. A single alert took 40.5 seconds from candle close to arrival.

TradingView webhook latency by percentileLine chart. X axis percentiles p50, p75, p90, p95, p99, p99.9. Engine (blue) rises from 1.0s to 14.0s. Delivery (coral) rises from 1.63s to 23.7s. Total (white) rises from 4.03s to 25.4s. Source: TradingView Hub study, 2026.0s5s10s15s20s25sp50p75p90p95p99p99.9TotalDeliveryEngine
Latency by percentile. Total and delivery fan out in the tail while the engine stays comparatively flat. Source: TradingView Hub study, n = 34,174, July-August 2026.

Here is the full percentile table, in seconds:

Componentp50p75p90p95p99p99.9max
Engine1.003.004.006.009.0014.022.0
Delivery1.632.944.746.8413.723.739.5
Total4.035.417.629.8816.125.440.5

The engine and delivery rows carry the second-truncation bias described above, so don't read them against each other below p99. Only from p99 up is the gap wide enough to separate the two components. The total row is exact at every percentile.

Those percentiles hide the shape. Binned into half-second classes, the distribution isn't one smooth hump but a comb: peaks at 2.0-2.5s (14.2% of alerts), 3.0-3.5s (17.3%) and 4.0-4.5s (12.7%), with visible dips between them. Half the mass sits under 4 seconds, 91.0% under 8, and 95.1% under 10.

Distribution of TradingView webhook latencyColumn chart with a cumulative line. Share of alerts per latency class: under 2.0s 0.5%, 2.0-2.5s 14.2%, 2.5-3.0s 8.7%, 3.0-3.5s 17.3%, 3.5-4.0s 8.8%, 4.0-4.5s 12.7%, 4.5-5.0s 6.0%, 5.0-5.5s 8.1%, 5.5-6.5s 8.2%, 6.5-8.0s 6.5%, 8.0-10.0s 4.1%, 10.0-15.0s 3.6%, above 15.0s 1.3%. Cumulative share reaches 49.5% at 4.0s, 76.3% at 5.5s, 91.0% at 8.0s and 95.1% at 10.0s. Source: TradingView Hub study, n = 34,174, July-August 2026.0%5%10%15%20%0%25%50%75%100%14.217.312.749.5%91.0%02.02.53.03.54.04.55.05.56.58.01015+Total latency, lower bound of each class (seconds)Share per classCumulative share
Total latency by class. The five faded columns cover wider classes than 500 ms, so read their labels rather than comparing their heights. The cumulative curve is plotted at the upper bound of each class, so read each point against the tick below it, not against the bar it stands on. Source: TradingView Hub study, n = 34,174, July-August 2026.

What shapes the upper two peaks is the market mix inside one dataset. The quiet hours and the busy hours sit side by side here, and the busy ones push their own hump to the right of the quiet one. Cut the data by time and those two humps separate. The 2.0-2.5s peak sits well below even the off-peak median of 3.59s, and we can't account for it from this dataset. For the payload that rides inside each of these alerts, our webhook format reference breaks the JSON down field by field.

Why is my TradingView alert delayed?

If your alert feels late, the delay is almost entirely upstream of your execution service. Delivery, not evaluation, is the bottleneck, and the tail is where you see it: delivery's p99 is 13.7s against the engine's 9.0s, and its worst case is 39.5s against 22.0s (our study, 2026). The two medians sit within the second-resolution bias described above, so they can't separate the components. The tail is far too wide for that bias to explain.

The engine stays remarkably steady. Whether the market is dead or roaring, evaluating your condition costs about the same. Delivery is the variable part.

It is TradingView's dispatch pipeline, and its mean (2.57s) sits well above its median (1.63s), which is the signature of a long tail dragging the average up. So when people ask whether a tool is "slow," the honest answer is that the seconds are spent on TradingView's side, before the webhook reaches anyone, and the dispatch queue is what makes that wait unpredictable.

Across the whole dataset, delivery swings far more widely than the engine. If you want a faster fill, the lever is not the receiving service, it is how much slack TradingView's dispatch has at that moment.

One footnote that trips people up: TradingView waits only about three seconds for your endpoint to acknowledge the POST, then logs a delivery failure even though the alert usually arrived and executed. Our guide to debugging a failed alert documents that timeout and shows how to tell the false alarm from a real miss.

Does TradingView webhook latency get worse under load?

Yes, and predictably so. During the US session (hourly buckets 13 through 19 UTC, so 13:00 to 19:59, or 9am to 4pm New York) the median total rises to 4.55s, a 27% jump over the 3.59s off-peak median, and the p99 climbs 28% (our study, 2026). The engine barely moves. The extra time is all delivery, which nearly doubles at the median.

TradingView webhook latency by hour of dayLine chart across six sampled UTC hours (3, 10, 13, 14, 19, 21). US session buckets 13 through 19 UTC shaded. Total p50 by hour: 3.47s at 03, 3.55s at 10, 4.45s at 13, 4.84s at 14, 4.71s at 19, 3.22s at 21. Delivery p50 peaks at 3.30s at 14 UTC. Source: TradingView Hub study, n = 34,174, July-August 2026.US session0s2s4s6s03h10h13h14h19h21hTotal p50Delivery p50
Selected hours across the day. Both curves lift inside the US session, and the whole gain comes from delivery. Source: TradingView Hub study, six sampled UTC hours, July-August 2026.

The session cut is clean:

Windownp50p90p99Delivery p50
Off-peak24,3923.59s7.29s14.8s1.47s
US session (13:00-19:59 UTC)9,7824.55s8.44s18.9s2.80s

A second, independent cut says the same thing. Weekdays run about 31% slower than weekends at the median (4.23s vs 3.24s), and every working day looks nearly identical while Saturday and Sunday dip together. Latency follows the market, full stop.

Weekday versus weekend TradingView webhook latencyGrouped bars at p50, p90, p99. Weekday (coral): 4.23s, 8.02s, 17.3s. Weekend (blue): 3.24s, 6.53s, 12.4s. Weekdays higher at every percentile. Source: TradingView Hub study, 2026.0s5s10s15sp504.233.24p908.026.53p9917.312.4WeekdayWeekend
Weekday against weekend at three percentiles. The gap widens as you move into the tail. Source: TradingView Hub study, n = 34,174, July-August 2026.

Already know your strategy tolerates four seconds?

TradingView Hub turns your webhook into a live exchange order across every major venue, with the same JSON schema everywhere.

Start Free TrialRead the webhook docs

Can you scalp with TradingView webhooks?

Not at the tick level. With a 4.0s median and a 95th percentile near 9.9s, sub-second scalping over TradingView webhooks is physically impossible, and the tail makes the timing unpredictable under exactly the conditions scalpers care about (our study, 2026). Nearly one alert in three needs more than 5 seconds, 9% need more than 8, and 4.9% cross 10.

Share of TradingView alerts exceeding each latency thresholdSurvival curve. Over 2s: 99.5%. Over 3s: 76.6%. Over 5s: 31.8%. Over 10s: 4.9%. Over 20s: 0.4%. Over 30s: 0.02%. Source: TradingView Hub study, n = 34,174, July-August 2026.0%25%50%75%100%99.5%76.6%31.8%4.9%0.4%0.02%2s3s5s10s20s30s
Share of alerts exceeding each latency threshold. The curve is why the average understates your real-world wait. Source: TradingView Hub study, n = 34,174, July-August 2026.

So what actually works? Strategies with room to breathe. Swing setups, higher timeframes, and levels that stay valid for minutes or hours absorb a few seconds of drift without changing the outcome. What breaks is anything betting on a precise second: tight breakout scalps, tick-by-tick entries, and stops placed inside a candle's own range.

If your edge dies in four seconds, a candle-close webhook was never the right tool. If it survives four seconds, this latency is a non-issue, and you can wire the same alert straight into an exchange like Bybit or KuCoin. Our step-by-step Bybit walkthrough covers the key permissions, the TradingView automation guide covers the full end-to-end setup, and the quickstart gets a first alert live in minutes.

Which timeframes are reliable for TradingView webhook automation?

From the 5-minute chart up. At the 90th percentile of 7.6s, a signal lands about 2.5% into the next 5-minute bar, but 13% into a 1-minute bar and halfway through a 15-second one (our study, 2026). At the 4.0s median those shares roughly halve. The higher the timeframe, the smaller the drift.

The table shows the delay as a share of a single bar. Median for the typical case, plus the 90th and 99th percentile for the bad ones:

TimeframeMedianp90p99Verdict
15 seconds27%51%107%Unusable
30 seconds13%25%54%Risky
1 minute6.7%13%27%Marginal
5 minutes1.3%2.5%5.4%Reliable
15 minutes0.4%0.9%1.8%Reliable
1 hour0.1%0.2%0.5%Very reliable

A practical rule: if the 90th percentile delay stays under about 5% of your bar, the drift is noise. That puts the safe floor at the 5-minute chart. One minute is a coin toss under load, and on a 15-second bar the alert can arrive after the next candle has already closed (p99 above 100%).

What about HFT?

It is not on the table. High-frequency trading works in microseconds to milliseconds. Our median is 4 seconds, four million microseconds, so it misses the microsecond end of that range by six orders of magnitude and the millisecond end by three. TradingView webhooks are an automation tool for discretionary and systematic strategies on minute-and-up timeframes, not a low-latency execution path. No webhook relay or faster receiving server changes that, because the delay is created inside TradingView before the webhook is ever sent.

?

Frequently asked questions

How fast are TradingView webhooks?

Median total latency is 4.0 seconds from 1-minute candle close to server receipt, based on our own study of 34,174 alerts over 24 days (2026). The 90th percentile is 7.6s and the 99th is 16.1s, so plan for seconds, not milliseconds.

Why is my TradingView alert delayed?

The delay is on TradingView's side, split between evaluating the alert (the engine) and delivering it (dispatch plus network). Delivery is the variable part and dominates the tail, reaching a p99 of 13.7s against the engine's 9.0s in our data. Our stopwatch stops when the webhook lands, so whatever your execution service adds after that is not part of these numbers.

Does TradingView webhook latency get worse under load?

Yes. During the US session (13:00-19:59 UTC) the median rose 27% versus off-peak, and weekdays ran 31% slower than weekends in our study. The engine stayed flat, so the entire increase came from TradingView's delivery pipeline.

Can you scalp or run HFT with TradingView webhooks?

Neither at sub-second speed. With a 4.0s median and a heavy tail, roughly one alert in three takes over 5 seconds, so tick-level scalping and second-precise entries are out. High-frequency trading is further out still: it runs in microseconds to milliseconds, six and three orders of magnitude below our median (our study, 2026). The delay is created inside TradingView before the webhook is sent, so no relay or faster server closes that gap. Swing trading and higher timeframes handle the wait comfortably.

Do I need a paid TradingView plan to send webhooks?

Yes. As of August 2026, TradingView's free plan includes 3 active price alerts and 0 technical alerts, with no webhook notifications. Price alerts can still reach TV-Hub through email signals, so simple price-level automation works on the free plan. Indicator or strategy automation needs a paid plan: technical alerts and webhooks start with Essential.

Is the delay the execution service or TradingView?

TradingView. Our measurement runs from candle close to the moment the webhook lands on our server, and that whole window is TradingView's evaluation plus delivery. Anything the receiving service does after that sits outside the measured window, so this dataset can't speak to it. See TradingView's own about webhooks documentation (retrieved August 2026) for how alerts are dispatched.

Which timeframe is reliable for TradingView alerts?

The 5-minute chart and higher. At a 7.6s 90th-percentile delay, a signal lands about 2.5% into a 5-minute bar but 13% into a 1-minute bar. Keep the delay under roughly 5% of your bar and the drift is noise, which rules out sub-minute timeframes.


Four seconds is the honest number for a candle-close TradingView webhook, and it is stable enough to build around once you stop expecting milliseconds. Match your strategy's tolerance to the distribution above, lean on native exchange stops rather than second-perfect entries, and the latency stops being a mystery. If you want to put this to work, the webhook setup docs are the place to start.