A TradingView price is different from your broker's price because the two usually come from different data. The chart plots the feed you selected, such as one broker, an exchange or a composite of contributors, and some feeds plot the mid price. Your MetaTrader 5 broker quotes its own Bid and Ask, usually charts the Bid, and fills buys at the Ask. Index and gold CFDs add broker-specific pricing and sessions, so one chart can touch a level the other never reaches.
The gap matters most when a workflow turns a chart level into an order: an idea, a measurable rule, a TradingView alert, then an MT5 order at your broker. This guide belongs to the trading mechanics library, and the bid-ask spread guide covers the two quote sides in more depth.

TradingView vs broker prices at a glance
Scroll horizontally to read every column.
| What differs | On the TradingView chart | At your MT5 broker |
|---|---|---|
| Data source | The provider shown beside each symbol in Symbol Search: a broker, an exchange, a composite such as ICE, or TVC data calculated by TradingView.[1][2][3] | The broker's own quotes for its own symbol, shown in Market Watch.[4] |
| Price the candles use | Set by the feed. TradingView says FOREX.com charts are built on the mid price.[5] | Bid, or Last for exchange instruments. The symbol's Specification shows it as Chart mode.[4][6] |
| Price a trade uses | A strategy's broker emulator fills from chart data by default.[7] | Generally, buys at the Ask and sells at the Bid.[8] |
| Stop loss and take profit | Strategy exits are simulated on the chart data.[7] | In the forex examples: Bid for longs, Ask for shorts. Exchange calculation modes can use Last under exchange trigger rules.[8] |
| Hours and timestamps | Trading hours can vary by provider.[1] | Quoting and trading sessions sit in the Specification. Quote times use the broker's server time zone.[4] |
| Symbol name | The same instrument can carry different symbols on different exchanges.[2] | The exact broker symbol, including any prefix, suffix and capital letters.[9] See the broker symbol suffix guide. |
PineConnector's FAQ gives the same short list: TradingView and MetaTrader "can use different data feeds, bid/ask quotes, spreads and timestamps".[10]
How far apart can the prices be? The quote-gap formula
Two effects add together: which side of the quote each platform shows, and how far the two data sources disagree. For a TradingView feed that plots the mid price, the broker's quotes at the same moment are:
Broker Bid = TradingView price + feed offset − spread ÷ 2; Broker Ask = TradingView price + feed offset + spread ÷ 2
- Spread is the broker's Ask minus its Bid, the definition MetaTrader 5 uses in Market Watch.[4]
- Mid is (Bid + Ask) ÷ 2. TradingView's broker help describes chart data "built at the middle price of the market’s Buy and Sell".[11]
- Feed offset is this page's name for the broker's mid minus the TradingView price at the same moment. It can be positive, negative or zero, and it changes over time.
Rearranged, the formula shows which chart price corresponds to the broker's quote reaching a level L:
Chart price when the broker Bid reaches L = L − feed offset + spread ÷ 2; chart price when the broker Ask reaches L = L − feed offset − spread ÷ 2
Divide any price gap by the pip size to express it in pips. PineConnector defines one pip as 10 quoting points, which is 0.00010 on five-digit EURUSD.[12] If your feed plots its Bid rather than the mid, measure the offset between the two Bids instead; the broker's Ask is then that Bid plus the full spread.
Worked example: an alert at 1.10000 that the broker's Bid never reaches
Illustrative example, not a recommendation. A TradingView alert watches EURUSD crossing 1.10000 on a mid-price feed. When the chart prints 1.10000, the broker's spread is 2.0 pips (0.00020). Its mid sits 0.5 pip (0.00005) below the feed, so the feed offset is −0.00005.
| Price at that moment | Value | Working |
|---|---|---|
| TradingView feed (mid) | 1.10000 | Chart print and alert level |
| Broker mid | 1.09995 | 1.10000 − 0.00005 |
| Broker Bid | 1.09985 | 1.09995 − 0.00010 |
| Broker Ask | 1.10005 | 1.09995 + 0.00010 |
Illustrative values. Check: 1.10005 − 1.09985 = 0.00020, the assumed 2.0-pip spread.
Now apply the same 1.10000 level at the broker:
- The TradingView alert triggers under its configured rules. Indicators normally update on realtime feed updates; strategy execution depends on its calculation settings. The receiving MT5 broker quote does not automatically become the alert’s input.[26]
- A long position's take profit at 1.10000 is not reached. MT5 checks a long's take profit against the Bid.[8] The Bid is 1.10000 − 1.09985 = 0.00015, or 1.5 pips, short. The chart must first reach 1.10000 − (−0.00005) + 0.00010 = 1.10015.
- A short position's stop loss at 1.10000 has already triggered. MT5 checks a short's stop against the Ask, now 1.10005. The Ask reached 1.10000 when the chart showed 1.10000 + 0.00005 − 0.00010 = 1.09995.
Between chart prices of 1.09995 and 1.10015, the two platforms disagree about whether 1.10000 was reached. The window is 1.10015 − 1.09995 = 0.00020 wide, the full spread, and the feed offset sets where it sits. Pending orders on forex and CFD symbols follow the same sides. MetaQuotes describes a Buy Stop as buying at an Ask at or above its price, and a Sell Limit as selling at a Bid at or above its price.[8] Exchange calculation modes usually trigger on the Last price instead.

The message format decides which gap reaches the broker. Suppose the strategy's stop sits 20 pips below its chart entry, at 1.09800. The TradingView alert's Message field could carry either of these illustrative lines:
-
LicenseID,buy,EURUSD,vol_lots=0.01,sl_price=1.09800sends the chart level itself. PineConnector passes an exact price through unchanged and warns: "A price from TradingView can be invalid at the broker."[14] A fill at the 1.10005 Ask would put this stop 1.10005 − 1.09800 = 0.00205, or 20.5 pips, below entry. -
LicenseID,buy,EURUSD,vol_lots=0.01,sl_pips=20sends a distance of 20 × 0.00010 = 0.00200, which PineConnector measures from the applicable entry using the broker symbol's pip size.[15] Which quote the EA treats as that entry for a market order is not documented; test on demo.
PineConnector's FAQ says distance-based targets "can avoid some fixed-price mismatches when they fit your strategy".[10] Choosing between a fixed level and a distance remains a strategy decision.
Where the difference shows up in TradingView, MT5 and PineConnector
Follow the chain from idea to order and note which price each stage reads.
- TradingView Symbol Search: each row shows "the data source to the right", and each tab can filter by source.[2] ICE forex symbols "consist of data received from dozens of contributors, while others are separate forex brokers".[1] TVC data "is calculated by TradingView", and comparing it with the original instrument "would be incorrect because they have different data sources".[3]
-
TradingView charts and Pine Script: chart settings offer Bid and Ask lines for comparing a feed's candles with its quotes.[16] The Pine Script v6
bidandaskvariables work only on the 1T timeframe and return na on other timeframes.[17] A strategy on standard bars works from chart prices, and its broker emulator fills "using only the available chart data by default".[7] - TradingView alerts over time: realtime and historical bars "often rely on different data feeds", and providers may adjust realtime values later.[13] A reloaded chart may no longer show the print that triggered an alert.
- TradingView's order panel: with a connected broker, "the order panel uses data directly from your broker and not from TradingView".[18]
-
MetaTrader 5: a symbol price chart "can be based on Bid or Last prices", which MQL5 reports as
SYMBOL_CHART_MODE.[6] MetaQuotes notes that "The Ask price is not displayed on the chart" unless you enable the Ask price line.[19] On Bid-charted symbols, the High and Low columns in Market Watch show Bid values.[4] -
PineConnector: the optional
spread=filter computes (Ask − Bid) ÷ pip size when the signal arrives. Its reference says: "Use the broker quote at arrival."[20] The EA error guide warns that a level copied from TradingView "may be too close to, or on the wrong side of, your broker’s current quote".[21]
The alert triggers on TradingView’s data under its configured rules, the webhook delivers its message, PineConnector processes it and the EA sends an order request. Check the broker’s actual result. A stop defined only inside TradingView is not automatically a broker stop. Omitted alert fields do not establish the EA’s targets: check the applicable syntax/settings and the position’s actual S/L.[25] The stage-by-stage diagnosis covers each checkpoint.

Why index and gold CFD prices can differ even more
When your broker's index or gold symbol is a CFD, you hold a contract with the provider rather than the underlying asset. Australia's regulator, ASIC, says a CFD's value is derived from the underlying asset but "it may not track it exactly". It also notes that "Market makers quote their own prices for all CFDs they offer."[22]
- Different instruments: TradingView lists the S&P 500 both as TVC:SPX, calculated by TradingView, and as SP:SPX.[3] Your broker's US index CFD is a separate product. The guide to CFDs, futures and spot prices explains why their prices can differ.
- Different sessions: the MT5 Specification lists the symbol's quoting and trading sessions, "specified for every day of the week".[4] TradingView notes that trading hours "might also vary depending on the provider".[1] An alert can only react to ticks its own feed sends, so one side can be quoting while the other is closed.
- Reopenings: after a closed session, compare the first broker quote with the TradingView print instead of assuming they match. The weekend gap guide covers that case. PineConnector's error guide says to confirm the symbol "has a current quote during its trading session" before sending again.[23]
- Different names: PineConnector's symbol mapping guide warns that a mapping "does not establish that two broker contracts have the same size, pricing or trading conditions".[9]
How do you reduce TradingView vs broker price mismatches?
None of these steps makes two feeds identical. They make the difference visible and stop it from breaking an order.
- Chart your broker's feed if TradingView lists it. Check the source column in Symbol Search before you build alerts.[2] A matching broker name alone does not prove identical quotes on your MT5 server. Neither platform documents that, so compare the two on demo.
- Find out which price the chart plots. Turn on TradingView's Bid and Ask lines and compare them with the candle close.[16] In MT5, enable the Ask price line and read Chart mode in the Specification.[19][4]
- Measure the gap before you choose a buffer. Record the TradingView print and the MT5 Bid and Ask at the same moments, on one clock. MT5 shows quote times in the broker's server time zone,[4] and the broker server time guide explains the conversion.
- Size any price buffer from your own measurements. In the worked example, an alert meant to fire only once the broker's Bid reaches 1.10000 would sit at 1.10015: half the spread plus the offset, 1.0 + 0.5 = 1.5 pips. Illustrative only. Spreads float, offsets drift, and no single buffer suits every symbol or session.
-
Consider distances where they fit the strategy.
sl_pips=is measured at the broker, whilesl_price=is passed through unchanged.[15][14] Stops must still clear the broker's minimum distance, which the MT5 stops level guide explains. - Reconcile every test signal. Compare the TradingView alert log, the PineConnector Signals log and the MT5 fill. PineConnector notes that a received signal "is not, by itself, proof that the broker filled an order."[24]
Common mistakes when comparing TradingView and broker prices
- Calling the gap slippage. A chart-versus-broker difference exists before any order is sent. Slippage concerns how an order you sent was filled; see the slippage guide.
- Treating a TradingView backtest as broker fills. The emulator fills on chart data.[7] The TradingView vs MT5 backtest comparison covers the other reasons results differ.
- Assuming a fixed offset. MT5 flags floating spreads in the Specification,[4] and TradingView says providers may revise realtime values later.[13] A gap measured once is a sample, not a constant.
- Comparing candles across clocks. Candles with the same label can cover different periods when the two platforms use different time zones. Align the clocks before comparing highs and lows.
- Expecting automation to close the gap. PineConnector passes your message's instruction to the EA, and the broker fills it at its own quotes. Automation does not align two feeds or make a trading rule more effective.
Frequently asked questions
Why is the TradingView price different from MT5?
TradingView and MetaTrader 5 usually show two different price streams. The TradingView chart plots the data feed named beside the symbol, which may be a broker, an exchange, a composite or TradingView's own calculation, and some feeds plot the mid price. MT5 shows your broker's own quotes and usually builds forex and CFD candles from the Bid. Spreads, feed offsets and timestamps then separate the two.
Why is my TradingView chart different from my broker's chart?
Candles differ when two charts use different prices or clocks. A TradingView feed may plot the mid price, while an MT5 forex or CFD chart is usually built from the broker's Bid. Highs and lows can therefore differ by roughly half the spread plus any offset between the two sources. MT5 also shows quote times in the broker's server time zone, which can shift where candles start.
Does TradingView show the bid, ask or mid price?
The answer depends on the data feed. TradingView says FOREX.com charts are built on the mid price, and its broker help says orders fill at the Ask or Bid rather than the chart price. TradingView's chart settings include Bid and Ask lines for comparing a feed's candles with its quotes. In Pine Script v6, the bid and ask variables return values only on the 1T timeframe.
What are the data feed differences on TradingView?
TradingView offers several data providers for many instruments. ICE forex symbols are a composite of dozens of contributors, other forex symbols come from individual brokers, and TVC symbols are calculated by TradingView from several sources. Volume and trading hours can vary by provider. Symbol Search shows each row's data source on the right, so check it before comparing a TradingView chart with an MT5 broker.
Why did my TradingView alert trigger when my broker's price never reached the level?
The alert uses its TradingView feed and configured rules. In the forex mid-price example, a long’s take profit waits for broker Bid while a short’s stop uses Ask. Spread and feed differences can make those levels disagree with the chart. This is not a universal exchange-instrument rule: the exchange calculation modes identified by MetaQuotes usually trigger on Last.
Reviewed 25 September 2026. Facts were checked against the linked sources on that date. Nothing in this article was tested on a trading account and no code was compiled.
Related reading
- Trading mechanics: orders, lots, margin and costs
- The bid-ask spread explained
- Broker symbol suffixes and exact symbol names
- Broker server time vs UTC vs TradingView time
- CFDs vs futures vs spot prices
Sources
- TradingView – What is the difference between ICE and other forex providers?, accessed 25 September 2026.
- TradingView – TradingView Symbol Search: tips for finding assets, accessed 25 September 2026.
- TradingView – What does TVC stand for in the instrument ticker?, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Market Watch and symbol specification, accessed 25 September 2026.
- TradingView – Why was my order executed/not executed, although the price on the chart reached or didn't reach the order level?, accessed 25 September 2026.
- MetaQuotes – MQL5 Reference: Symbol properties, accessed 25 September 2026.
- TradingView – Pine Script v6 User Manual: Strategies, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Basic principles, accessed 25 September 2026.
- PineConnector – Match your broker's symbols, accessed 25 September 2026.
- PineConnector – FAQ: why TradingView and MetaTrader show different prices, accessed 25 September 2026.
- TradingView – Why is the price of the order execution different from the Close price on the chart?, accessed 25 September 2026.
- PineConnector – Syntax: PineConnector pip, accessed 25 September 2026.
- TradingView – Pine Script v6 User Manual FAQ: Alerts, accessed 25 September 2026.
- PineConnector – Syntax: sl_price, accessed 25 September 2026.
- PineConnector – Syntax: sl_pips, accessed 25 September 2026.
- TradingView Blog – You can now display Bid and Ask Labels on the price scale and Bid and Ask Lines on the chart, accessed 25 September 2026.
- TradingView – Pine Script v6 User Manual: Release notes, accessed 25 September 2026.
- TradingView – How does the source of real-time data affect the trading experience?, accessed 25 September 2026.
- MetaQuotes – MetaTrader 5 Help: Chart settings, accessed 25 September 2026.
- PineConnector – Syntax: spread filter, accessed 25 September 2026.
- PineConnector – EA errors: check stops and prices, accessed 25 September 2026.
- ASIC – Thinking of trading contracts for difference (CFDs)? (MoneySmart guide, March 2012), accessed 25 September 2026.
- PineConnector – EA errors: match the message beside 4756, accessed 25 September 2026.
- PineConnector – FAQ: the Signals log, accessed 25 September 2026.
- PineConnector – Syntax: omitted values and target checks, accessed 25 September 2026.
- TradingView – Pine execution model: indicators and strategy settings, accessed 25 September 2026.
PineConnector executes the instructions you send it. It does not select trades, manage money, or hold funds. Trading carries risk, and past performance of any strategy does not indicate future results.