Learn

Why Historical Forex Data Differs Between Brokers

Forex feeds can legitimately disagree. Learn how liquidity sources, spreads, server time, DST and broker specifications change historical data.

On this page 8 sections
  1. Spot FX does not have one universal tape
  2. Different liquidity in, different ticks out
  3. Spread creates another layer of difference
  4. Server time can change the candles without changing the market
  5. Symbol specification matters too
  6. A difference is not automatically a data-quality problem
  7. What should a trader do?
  8. The goal is not perfect sameness

Put two Forex charts side by side.

Same currency pair.

Same minute.

Same timeframe.

And yet the prices may not match exactly.

One broker prints a slightly higher high.

Another shows a wider spread.

One has a candle beginning at a different server hour.

Another has a price spike that never appears on the first feed.

Which one is wrong?

Possibly neither.

Spot FX does not have one universal tape

This is the key concept.

Unlike an equity traded on a single centralized exchange, spot foreign exchange operates primarily over the counter.

The Bank for International Settlements describes the FX market as decentralized and fragmented, with trading distributed across dealers, electronic venues and liquidity providers.

There is no single retail Forex feed that every broker is required to reproduce tick for tick.

That alone explains why expecting identical historical datasets can be a mistake.

Different liquidity in, different ticks out

A broker can receive pricing from a different collection of liquidity providers than another broker.

Quotes may then be:

  • aggregated,
  • filtered,
  • internalized,
  • marked up,
  • normalized,
  • distributed using broker-specific infrastructure.

Two brokers can therefore be looking at the same global market while exposing slightly different sequences to clients.

Most of the time those differences are small.

For very sensitive strategies, small is enough.

Spread creates another layer of difference

Historical charts often attract attention to Bid prices.

Trading takes place across Bid and Ask.

Broker A and Broker B may show similar Bid movement while their Ask streams differ because of spread construction or markup.

A scalper whose expected profit is only a few points can react strongly to this.

A long-term system holding trades for several weeks may barely notice it.

Again, strategy sensitivity determines importance.

Server time can change the candles without changing the market

Now imagine two brokers using different server clocks.

The underlying tick stream could be broadly similar.

But if their H1 or D1 candle boundaries occur at different times, their bars will be different.

That affects more than visual appearance.

It can change:

  • indicator values,
  • daily highs and lows,
  • session definitions,
  • breakout levels,
  • EA execution times.

Daylight-saving transitions add another complication.

A broker can alter its effective UTC offset during the year.

A dataset kept in a fixed reference time zone must therefore be mapped correctly if the goal is to reproduce broker-style candle boundaries.

Symbol specification matters too

In MetaTrader 5, a symbol contains much more than a name.

Its specification can include:

  • digits,
  • point size,
  • tick size,
  • contract size,
  • calculation mode,
  • profit and margin currencies,
  • trading sessions,
  • execution settings.

Two instruments both labelled “XAUUSD” do not automatically represent identical trading environments.

That is one reason importing third-party history into a generic symbol can produce misleading results.

A difference is not automatically a data-quality problem

When comparing datasets, separate two questions.

Integrity

Is this dataset internally complete and consistent?

Equivalence

Does this dataset reproduce another provider's feed?

Those are not the same problem.

A dataset can have excellent integrity and still differ from your broker.

For OTC markets, that can be completely normal.

What should a trader do?

Instead of searching for an imaginary universal Forex dataset, define what you are trying to test.

If you want:

market-history research — a high-quality independent feed can be ideal.

If you want:

broker-specific execution approximation — broker properties, sessions, time and trading costs should be incorporated.

If you want:

robustness testing — testing across more than one credible dataset may actually be an advantage.

A strategy that collapses when minor feed differences appear deserves investigation.

The goal is not perfect sameness

The goal is knowing what your data represents.

Once that is clear, differences between feeds stop looking like mysterious errors and become another dimension of strategy validation.

PRIMARY SOURCES

Sources and further reading

  1. Bank for International SettlementsThe FX trade execution landscape through the prism of the 2025 BIS Triennial Survey↗
  2. MQL5 ReferenceSymbol Properties↗