ForexCopilotEA

Data quality

Where to Get Quality Historical Tick Data for MT5 Backtests (and Why "100% Quality" Is a Myth)

By Benjamin Lee · Updated · 8 min read

Your backtest is only as honest as the data behind it. Forex is decentralised, so there is no single official price feed, and no source can claim to be a perfect record of what every broker quoted. This guide explains the real differences between data sources, how to import tick data into MetaTrader 5, how to check it for gaps and spikes, and what to do when you need results that match your own broker.

Key takeaways

  • No tick data is 100% perfect. Aim for data that matches the broker you will actually trade with.
  • MT5's built-in real ticks come from your broker's server and are the best starting point.
  • Dukascopy tick data, imported through a tool such as Tickstory, is a popular free long-history option.
  • Always inspect data for gaps, spikes and wrong spreads before trusting a result.
  • Cross-check two independent sources. If the EA only works on one, treat it with caution.

Why tick data matters more than candles

A candle compresses thousands of price updates into four numbers. A tick is a single quote update with a bid, an ask and a time. Strategies that depend on when price touched a level, such as scalpers, breakout entries and tight trailing stops, need the sequence of ticks. With candles alone, the tester has to guess the path inside each bar.

1 candle
Can hide hundreds or thousands of individual ticks
Bid + Ask
Real ticks carry the spread. Candle data usually does not
ms
Timestamps are in milliseconds, so order of events is preserved

The "100% modelling quality" myth

Marketing often promises "99% modelling quality" or "100% real tick data". It is worth understanding what that number actually measures. In older MetaTrader 4 reports the figure described how much of each minute bar was filled with ticks, whether those ticks were real or interpolated. It said nothing about whether the prices matched what a live broker offered.

Foreign exchange has no central exchange tape. Each liquidity provider and broker quotes slightly different prices and spreads. So even a flawless record from one bank is a record, not the record. What you can pursue is a different goal: data that is consistent, complete, and representative of the broker you will use.

Your main sources of tick data

There are four practical routes. Each trades off cost, history length, and how closely it matches live trading.

Tick data sources compared
SourceCostStrengthsLimits
Broker real ticks (built into MT5)FreeMatches your actual broker. No import work. Used by the tester's real ticks mode.History depth varies by broker, and it downloads on demand, so first runs are slow.
Dukascopy historical feedFreeLong tick history of bid and ask data from a Swiss bank's feed for many pairs, metals and indices.Spreads reflect Dukascopy, not your broker. You must import and adjust.
Tickstory (Lite and paid tiers)Free to paidDownloads Dukascopy data and builds MT4 or MT5 custom symbols. Offers spread and time-zone options.Another tool to learn. Verify settings such as daylight saving and time offset.
Paid tick vendors and tick suitesPaidOften add cleaning, variable spread modelling and automation for building custom symbols.Cost. Quality claims should still be verified by your own checks.
Broker-published archivesFree, where offeredSome brokers publish downloadable tick history for their own symbols.Coverage and format differ by broker. Check the terms of use.
  • Your broker's real ticksClosest

    Same liquidity, same spread model, subject to history depth.

  • Broker-published archiveClose

    Where it exists, built from the broker's own feed.

  • Dukascopy via importerGood proxy

    Reliable and long, but spreads differ. Adjust for your broker.

  • Generated from M1 barsApproximate

    Synthetic path. Fine for coarse systems, weak for scalpers.

Editorial view: how closely each source tends to match live trading at your broker (qualitative)

Using MT5's built-in real ticks

The simplest path needs no external data. In the Strategy Tester, choose Every tick based on real ticks. MT5 then requests the recorded ticks from your broker's trade server and caches them locally, which is why the first run can be slow.

  • Pro: the quotes and spreads come from the same environment you will trade in.
  • Pro: nothing to import, convert or clean.
  • Con: some brokers keep only a limited window of tick history, so you may not reach back far.
  • Con: quality differs between brokers, and data from a low-volume demo server can be sparse.

If your tick history is short, you can extend it by importing data as a custom symbol, which is described next.

Importing tick data as a custom symbol

MT5 can hold a custom symbol: a symbol whose history you supply. Tools such as Tickstory automate this, but the principle is the same everywhere. You create a copy of the real symbol's specification, load ticks into it, and then run the tester on the custom symbol.

  1. Step 1: Download the ticks

    From your chosen source, export ticks for the exact period you need. Note the time zone of the file, because mixing UTC with broker server time shifts every session.

  2. Step 2: Create the custom symbol

    Open View, Symbols (Ctrl+U), choose Custom Symbols, and create one based on your broker's real symbol so that digits, contract size and tick value match.

  3. Step 3: Import the ticks

    Use the Ticks tab to import the CSV, or let a tool do it. Confirm the first and last timestamps afterwards.

  4. Step 4: Set the spread model

    If the source has no spread, or a spread different from your broker's, define one. Using a fixed spread that is too tight is the most common data-related optimism.

  5. Step 5: Align time and daylight saving

    Match your broker's server time, including summer-time rules. A one-hour error moves rollover, session opens and news windows.

  6. Step 6: Run a short test and inspect

    Open a visual-mode test over a quiet week and a known news day. Check that prices look right before you run years of data.

Check the data before you trust it

Data problems are usually visible if you look. Spend a few minutes on inspection and you can avoid weeks of misleading results. These are the failure modes worth testing.

Common tick data problems and how to spot them
ProblemSymptomWhat to do
Gaps and missing periodsFlat sections on the chart or trades that never trigger in a given weekCompare tick counts per day against a neighbouring source. Fill or exclude the gap.
Bad ticks and spikesAn isolated price far from neighbours that triggers a huge fake win or lossFilter ticks that deviate by an extreme amount and revert immediately.
Wrong spreadUnusually tight or fixed spreads at rollover and during newsReplace with a variable spread that mirrors your broker, or add a stress spread.
Time zone shiftSession-based strategies perform oddly, or rollover is on the wrong hourRecheck UTC offset and daylight saving rules.
Duplicate ticksInflated tick counts and slow testsDeduplicate during import.
Candle (OHLC)HighLowCloseOpenSame four numbers either wayPath A: stop firstResult: lossPath B: target firstResult: win
Inspecting ticks inside a single bar reveals the path that candle-only data hides.
Data quality checklist
0/8

Cross-check with a second source

The strongest test of data quality is agreement. Run the same EA, same setfile and same period on two independent sources, for example your broker's real ticks and a Dukascopy-based custom symbol. Expect small differences. Large differences in trade count, profit factor, or drawdown tell you that the result depends on one feed's quirks.

A system with a real edge usually survives a change of feed, because its logic does not hinge on a few ticks. A system that only works on one dataset has probably learned that dataset. Combine this with the stress tests in the backtesting guide: higher spread, longer delay and an out-of-sample window.

Special notes for gold, indices and oil

Gold (XAUUSD), indices and crude oil have less uniform data than majors. Contract sizes, tick values and trading hours differ across brokers, and spreads can widen sharply around the daily rollover and key releases. When testing a gold EA, always verify the digits, point value and contract size on the custom symbol, because a mismatch changes the effective lot value and therefore every drawdown figure.

  • Inspect the rollover hour specifically. Wide spreads there often trigger stops that a clean dataset would miss.
  • Check weekend gaps. Gold and indices can open far from the Friday close, and your stop may fill beyond its level in live trading.
  • Use a stress spread for gold that is comfortably above the quiet-hours average.

A practical workflow you can repeat

  1. Start with MT5 real ticks from the broker you plan to use. Note the available history length.
  2. If you need a longer period, build a custom symbol from a documented source such as Dukascopy via an importer.
  3. Match time zone, digits and spread to the broker. Inspect a quiet week and a news day in visual mode.
  4. Run the EA on both feeds. Compare trade count, drawdown and profit factor.
  5. Add cost and delay stress, then validate out of sample.
  6. Move to demo forward testing. Compare live statistics with both backtests.

Frequently asked questions

Is there any tick data with 100% accuracy?

No. Forex has no single official feed, so every source is one provider's record. The practical goal is data that is consistent, complete and close to your own broker's quotes and spreads.

Is Dukascopy tick data good enough for MT5 backtests?

It is a widely used, free, long-history proxy and is reasonable for many strategies. Its spreads differ from other brokers, so apply a realistic spread model and cross-check against your broker's own real ticks.

Why is my first real-ticks backtest so slow?

MT5 downloads the tick history from the broker's server on first use and then caches it locally. Subsequent runs on the same period are much faster.

Do I need tick data for every EA?

Not for strategies that only act at the open of a bar and use no tight intrabar stops. Scalpers, breakout systems and anything with small stops benefit greatly from real ticks.

How can I tell if my data has bad ticks?

Look for isolated price spikes, flat gaps, unusually tight spreads at rollover and mismatched sessions. A visual-mode test on known volatile days and a cross-check against a second source usually reveal them.

Expert Advisors in these styles

Apply the checks above to any of these before you buy: read the manual, run your own backtest, and start on demo.

Browse Expert Advisors