Backtesting Data Quality: The Foundation Everything Sits On
Tick vs OHLC, broker feed differences, GMT/DST traps, gaps and rollovers — the data layer that decides whether your results mean anything.
In short
Your backtest is only as honest as the data underneath it. Four properties decide that honesty: granularity (ticks show what happened inside each candle; OHLC makes the test guess), source (broker feeds genuinely differ in OTC markets), clock (most broker servers run GMT+2 with US daylight saving — get this wrong and time rules shift an hour for half the year), and calendar (weekend gaps, holidays, rollover spread spikes).
Tick vs OHLC: What Happens Inside the Candle
A candle stores four numbers — open, high, low, close. A 15-minute EUR/USD candle in the London session can contain several hundred recorded quotes; the candle keeps four of them and throws away the order of everything else. That discarded sequence is precisely what decides contested trades: a bar whose range covers both your stop and your target cannot tell you which was hit first. Candle-based tests resolve the ambiguity with an assumption, and assumptions systematically favor the trader — which is one reason candle-only backtests run optimistic.
Tick data preserves the sequence: every bid/ask update, timestamped, in order. Replaying it shows each candle forming — including the spread at every moment, since quotes carry both bid and ask. Practical rule: if your stop or limit can sit inside one candle's range, test on ticks; if not, candles are fine. Notably, several tools marketed as replay backtesters are candle-stepping only, so check before relying on one — granularity is a headline difference between tools (see the tools comparison).
Broker Feeds Differ — Really
Spot forex and CFDs are over-the-counter: there is no single official tape. Each broker aggregates prices from its liquidity providers and adds its own spread model, so two brokers' feeds for the same pair differ — in quotes, in spread behavior, in bar shapes around fast moves. Even broker education acknowledges this (Admiral Markets' guide notes OTC data divergence — in two sentences, which is roughly the industry's total coverage of the topic). Consequences for backtesting: results transfer between feeds only approximately; spread-sensitive strategies should be validated on data resembling your live broker's; and a strategy that only works on one feed's quirks doesn't work.
GMT & DST: the Silent Backtest Killer
The least-known data fact in retail backtesting: the large majority of forex broker servers run GMT+2, shifting to GMT+3 under US daylight-saving rules — it's why professional tick-data tooling defaults to exactly that setting (Tick Data Suite documentation). GMT+2 is chosen deliberately: the daily candle then closes with the New York session, giving five clean daily candles per week instead of six stubby ones.
Why you should care: if your rules reference clock time — "trade the London open," "no entries after 16:00," session-box breakouts — and your assumed offset is wrong, every such rule fires an hour off for roughly half the year (whenever DST status differs from your assumption). The bug is silent: charts look normal, results are simply wrong. Checklist: identify your data's server offset and DST regime; express session rules in the data's clock, not your wall clock; and re-check any strategy whose edge changes between winter and summer — that's the classic DST-bug signature.
Sessions, in the Data's Clock
On a GMT+2/+3 server feed, the trading day maps cleanly: Asian session ≈ 02:00–10:00, London ≈ 10:00–18:00, New York ≈ 15:00–23:00 server time, with the London–New York overlap carrying the deepest liquidity and tightest spreads. The day's thinnest moments — rollover around 00:00 server (22:00 GMT) — bring the spread spikes covered in the costs guide. Backtest session logic against these server-time anchors and DST stops being able to move your sessions around.
How Much History Is Enough?
The standard prescription is 2–5+ years (FX Replay's guide says as much) — but years are a proxy. The real requirement is regime coverage: your test window should include trending, ranging, and high-volatility news periods. An intraday strategy can meet that in 6–12 months; a swing strategy genuinely needs multiple years. The second constraint is trade count — keep extending the window until you have 100–200 trades, whatever the calendar says.
Gaps, Holidays & Rollover Artifacts
- Weekend gaps: forex/CFD pricing halts from Friday ~24:00 to Sunday ~00:00 server time; Monday opens can gap through stops — a fill at your stop across a gap is fiction; the realistic fill is the far side of the gap.
- Index CFD session gaps: index CFDs follow their underlying market's hours; daily gaps are normal and overnight holds carry both gap risk and financing.
- Rollover spikes: around 22:00 GMT spreads widen dramatically as liquidity resets — intraday "signals" printed in that window are often spread artifacts, not price moves.
- Holiday half-days: thin liquidity distorts ranges; treat Dec/Jan and major-holiday data with suspicion.
Getting Data, Honestly
The classic route is downloading: Dukascopy offers free tick history (slow exports, format conversion needed), brokers export their own candles from MT4/MT5, and paid vendors sell cleaned multi-year tick sets. The modern shortcut: replay tools with built-in data skip the entire pipeline — StrategyTune, for instance, streams real bid/ask tick history for 70+ instruments in the browser with nothing to download or convert. Trade-off: built-in data means trusting the tool's source (the live catalog at strategytune.com/securities shows exact per-instrument coverage), while DIY downloads give you control at the cost of hours of pipeline work. For most manual backtesters the built-in route is the right call; for feed-sensitive scalping research, validating against your live broker's data is worth the effort.
Frequently Asked Questions
Is free historical data good enough for backtesting?
For most retail manual backtesting, yes — if you know its limits. Free tick sources like Dukascopy and the data streamed by free replay tools are adequate for strategy validation. What matters more than price is matching the data's spread behavior, timezone and gaps to the broker you will actually trade with.
What timezone should my backtesting charts use?
Know your data's server timezone rather than forcing a preference. Most forex broker feeds run GMT+2 with US daylight-saving shifts, chosen so the daily candle closes at the New York session end and the week has five daily candles. If your time-window rules assume the wrong offset, they fire an hour off for half the year.
How many years of data do I need?
Enough to cover trending, ranging and high-volatility regimes AND to produce 100+ trades of your strategy — typically 6-12 months for intraday strategies and 2-5 years for swing. Calendar years are a proxy; regime coverage and sample size are the real requirements.
Do I need tick data for swing trading?
Usually not. If your stop is wider than a single candle's typical range and entries aren't timing-sensitive, OHLC candles are fine. Tick data becomes important when stops or limit entries sit inside one bar's range — there, candle data forces the test to guess fill order, and the guess is usually optimistic.
Deep Dives in This Series
Tick Data vs OHLC: What Happens Inside the Candle
The granularity question that changes results.
Why Broker Feeds Differ
OTC pricing and what it does to your backtest.
GMT Offset & DST: The Silent Backtest Killer
Server time facts every backtester needs.
Trading Sessions & Timezones in Backtesting
Session logic that survives DST.
How Much Historical Data Do You Need?
Years vs regimes — what coverage means.
Free Historical Data Sources for Forex & CFDs
An honest list, with quality caveats.
Weekend Gaps, Holidays & Rollover Spikes
Calendar artifacts that distort tests.
Practice This in a Free Replay Tool
StrategyTune replays real bid/ask tick data for 70+ instruments in the browser — free, no registration, no downloads. Place simulated trades and see your stats build.
Open StrategyTune