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.
| Source | Cost | Strengths | Limits |
|---|---|---|---|
| Broker real ticks (built into MT5) | Free | Matches 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 feed | Free | Long 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 paid | Downloads 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 suites | Paid | Often add cleaning, variable spread modelling and automation for building custom symbols. | Cost. Quality claims should still be verified by your own checks. |
| Broker-published archives | Free, where offered | Some 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.
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.
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.
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.
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.
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.
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.
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.
| Problem | Symptom | What to do |
|---|---|---|
| Gaps and missing periods | Flat sections on the chart or trades that never trigger in a given week | Compare tick counts per day against a neighbouring source. Fill or exclude the gap. |
| Bad ticks and spikes | An isolated price far from neighbours that triggers a huge fake win or loss | Filter ticks that deviate by an extreme amount and revert immediately. |
| Wrong spread | Unusually tight or fixed spreads at rollover and during news | Replace with a variable spread that mirrors your broker, or add a stress spread. |
| Time zone shift | Session-based strategies perform oddly, or rollover is on the wrong hour | Recheck UTC offset and daylight saving rules. |
| Duplicate ticks | Inflated tick counts and slow tests | Deduplicate during import. |
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
- Start with MT5 real ticks from the broker you plan to use. Note the available history length.
- If you need a longer period, build a custom symbol from a documented source such as Dukascopy via an importer.
- Match time zone, digits and spread to the broker. Inspect a quiet week and a news day in visual mode.
- Run the EA on both feeds. Compare trade count, drawdown and profit factor.
- Add cost and delay stress, then validate out of sample.
- 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.
Keep reading
- BacktestingHow to Backtest an EA in MT5 ProperlyLearn how to backtest an Expert Advisor in MT5 the right way: tester modes, spreads, delays, optimisation, walk-forward checks and the red flags to avoid.
- Strategy comparisonWhich EA Strategy Wins Long Term?Compare MT5 Expert Advisor strategy types, from scalping and grid to hedging and arbitrage: how each earns, how each fails, and which tend to survive long term.


