TradingView data troubleshooting

Missing candles on TradingView: find which layer is missing

Missing candles on TradingView can mean hidden price bars, excluded sessions, intervals with no trades, unavailable feed data, or a script that plots no value. First restore the main price series on a standard time-based candle chart. Then inspect the timestamps around the gap with the exact symbol, exchange and session fixed. A script cannot reconstruct prices the provider never supplied.

See the decision guide

Follow this decision tree before changing the script

Save the symbol, exchange, interval, chart type, session, timezone and two timestamps bordering the suspected gap. Change one setting at a time. A discontinuity between one candle close and the next open is a price gap; it does not by itself mean a time interval is missing.

ObservationCheckNext branch
No price candles are visibleShow the main series at the top left. In chart settings, enable Body, Borders and Wick with contrasting colors, then enable autoscale.If prices reappear, this was a display problem. If not, open the same symbol in a fresh chart.
Only an indicator or custom candle layer disappearsHide that indicator and inspect the main series and Data Window at the same timestamp.If the main prices remain, inspect script inputs, visibility, conditions and na values.
The time labels jump between existing candlesUse standard time-based candles. Match the exchange calendar, session and timezone.If the interval was outside the selected session, no candle was expected in that dataset.
The interval was inside an open sessionCheck whether that exact venue and instrument traded. Compare a matching provider record where available.No trades can explain an absent bar. Confirmed activity with absent bars warrants a data report.
The same unexplained hole survives a fresh chartRetain screenshots, exact timestamps, symbol, interval and session for TradingView support.Treat the cause as unresolved until the provider or support confirms it; changing colors will not repair history.

Separate market closure, quiet trading and session filters

An exchange holiday, an overnight closure or a scheduled break is different from an interval with no transactions during an open session. PineCoders documents missing bars in both cases, as well as feed irregularities. A blank interval alone cannot identify which occurred.

  • Use the instrument calendar, including holidays, early closes and maintenance breaks. A weekday label or a 24-hour market description is not enough.
  • On an intraday chart, compare Regular and Extended trading hours under Settings > Symbol > Session where supported. Extended hours can expose available bars outside RTH; the setting cannot create unavailable data.
  • Keep the listing or broker prefix and futures contract fixed. Another venue can trade during an interval when the selected venue does not, so its candle is supporting evidence rather than a replacement.
  • Use the same timezone when comparing timestamps, and account for daylight-saving changes. Range, Renko and other event-based charts do not promise one bar per fixed time interval.
  • A higher timeframe can conceal a hole by combining surrounding activity. Seeing an hourly candle does not establish complete one-minute coverage.

Check script na without confusing it with missing market bars

TradingView documents that plotcandle and plotbar draw nothing when any of their four OHLC inputs is na. A conditional filter or an unavailable requested value can therefore remove a custom candle while the underlying market candle still exists. Inspect the four inputs and the condition at an affected timestamp.

Script behaviorMeaning and limit
A request uses barmerge.gaps_onThe requested series returns na on chart bars where new requested data is not confirmed. Sparse higher-timeframe plots can be intentional.
A request uses barmerge.gaps_offHistorical gaps in the requested series use the last confirmed value; realtime bars can use developing values. This merges values onto existing chart bars, not missing exchange candles.
A line crosses an interval with missing valuesThe default line style can bridge na values visually. A line-with-breaks style exposes them. A connected line is not proof of continuous observations.
A script replaces missing values with zero or a prior valueThe replacement is an explicit assumption. Check each calculation function: na handling is function-specific, so retaining na alone does not guarantee entries are blocked.

Worked example: count candidate gaps and test the averaging rule

Assume a standard one-minute chart inside one uninterrupted trading session. The observed bar-opening times are 10:00, 10:01 and 10:04, with hypothetical closing prices of 100, 102 and 104 USD. The elapsed time from 10:01 to 10:04 is 180 seconds. Candidate missing slots = 180 / 60 - 1 = 2: 10:02 and 10:03. This calculation detects absent time slots, not their cause.

  • Adjacent 10:00 and 10:01 bars give 60 / 60 - 1 = 0 candidate slots. The first observed bar has no prior timestamp and cannot support this comparison.
  • Do not apply this arithmetic across session breaks, daily/monthly bars, irregular bars or misaligned timestamps. Build an expected schedule first; do not round a fractional result into a confident missing-bar count.
  • If 10:05 and 10:06 also have observed prices, a strict three-slot window becomes complete at the close of 10:06. Longer calculations may need a longer recovery period.
Treatment at the close of 10:04Three-observation calculationInterpretation
Use the last three observed closes(100 + 102 + 104) / 3 = 102.00Three observed bars span five scheduled opening times. This is not a three-minute window.
Carry 102 forward into both absent minute slots(102 + 102 + 104) / 3 = 102.67The last three scheduled slots now include two assumed prices. This is a hypothetical reindexed dataset, not a TradingView chart repair.
Require all three scheduled slots to contain observed prices10:02 and 10:03 are unknown, so the window is invalidAn explicit completeness rule blocks a new entry based on this window. It does not erase an existing position.

Choose a missing-data policy before comparing backtests

Skipping absent intervals changes the relationship between bar counts and elapsed time. Filling them changes the price series. Keeping them unknown makes coverage visible, but the strategy still needs a rule for incomplete inputs and open positions. Record the policy before inspecting performance.

  • A stop after five observed bars can occur later than a stop after five clock minutes. Specify which clock the strategy uses.
  • Forward-filled closes can suppress measured variation and alter moving averages. Fabricated highs and lows cannot establish whether a stop or target actually traded during the missing interval.
  • The TradingView broker emulator uses available chart data and execution assumptions. By default, a market order created at a bar close can fill on the next available tick, usually the next bar open; a hole can separate those events in time.
  • If data quality is unresolved, label affected tests incomplete or compare a separately defined clean period. Excluding periods after seeing losses creates selection bias; keep the original result and the exclusion rationale.
  • Compare the first differing signal and simulated fill with symbol, session, source version, date range, warm-up, costs and order settings fixed. A higher net profit after filling gaps does not validate the filled prices.

Record the evidence and define an observable warning

For a chart helper, specify the expected session, fixed interval, adjacent timestamp check and treatment of incomplete inputs. A warning on the next received bar can identify a preceding time jump; it cannot prove the exchange feed failed or act retroactively inside that gap. A script without incoming updates cannot be assumed to deliver a timely outage alert.

  • Keep a before/after screenshot and note the exact setting changed. Record whether the conclusion is a confirmed closure, no-trade interval, script condition or unresolved data issue.
  • For an affected trade, preserve the original decision-time note and add the investigation as a dated review. A label written after the gap was discovered is not a live signal.
  • Do not recreate nonexistent trades merely to attach a journal record. Keep a separate investigation record when no actual or explicitly labeled simulated trade occurred.
Where Pineify fits

Pine Script AI Coding Agent

Ask Pineify to generate or revise a chart helper using your documented session and timestamp rules. Review the source, request a syntax check and test known closures and gaps on TradingView. The agent cannot recover missing supplier prices or certify feed completeness.

Also useful: Trading Journal. Save the hypothesis and review notes with the affected trade. Attach chart screenshots when your Journal plan includes screenshot uploads, and distinguish the original observation from later findings.

Define a chart data check

Frequently asked questions

Educational information, not investment advice. Example prices and timestamps are hypothetical. Missing-data assumptions and simulated fills do not establish actual execution or future performance.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.