Short answer: yes for most strategies, no for scalping — and the boundary between those is measurable rather than a matter of opinion. Free data fails in three specific ways, and each one has been quantified below against 1,911,141 EURUSD one-minute bars so you can judge whether any of them affects what you are testing.
The most dangerous flaw, because it is silent. A backtest run across a stretch with no data does not error; it simply produces a confident number built on absent history.
Auditing our own archive on 17 August 2026 — 1,911,141 EURUSD one-minute bars spanning 3 January 2021 to 30 April 2026 — found these coverage holes:
| Last bar | Next bar | Days missing | Legitimate? |
|---|---|---|---|
| 2023-12-29 | 2024-01-01 | 3 | Yes — New Year |
| 2025-06-25 | 2025-06-30 | 4 | No |
| 2025-07-02 | 2025-07-07 | 4 | No |
| 2025-07-22 | 2025-07-28 | 5 | No |
| 2025-09-24 | 2025-09-28 | 4 | No |
| 2025-11-20 | 2025-11-24 | 3 | No |
| 2026-03-06 | 2026-03-12 | 5 | No |
How to check any dataset: count bars per trading day and compare against 1,440 for complete M1 coverage; then difference consecutive timestamps and investigate anything longer than a normal weekend. Two minutes of work that catches the worst failure mode in this category.
Almost all free data is mid-price OHLC: the midpoint between bid and ask, with no record of the gap between them. That gap is what you actually pay to trade.
The consequence scales inversely with your target size. A strategy targeting 50 pips against a 1.5-pip spread loses 3% of its edge to costs — noise. A strategy targeting 5 pips against the same spread loses 30%, which is enough to turn a profitable backtest into a losing system, and mid-price data will never show it.
| Target size | Spread as % of target | Does free data mislead you? |
|---|---|---|
| 5 pips | ~30% | Yes, decisively |
| 10 pips | ~15% | Yes, materially |
| 25 pips | ~6% | Somewhat |
| 50 pips | ~3% | Barely |
| 100 pips | ~1.5% | No |
This is not a flaw free data can fix — it is what "free" usually means. The exception worth naming: BacktestFX provides free tick data with real spreads, in exchange for an account and ads. If spread is your binding constraint and you will not pay, that is the honest recommendation.
A bar records open, high, low and close, and discards the order in which the high and low occurred. When your stop and target both sit inside one bar's range, the data genuinely cannot say which was hit first.
Measured by aggregating those 1,911,141 one-minute bars into 31,852 hourly bars and counting how often both levels are touched within one bar:
| Bracket | Ambiguous bars | % of hourly bars | Stop hit first, when resolved |
|---|---|---|---|
| ±5 pips | 5,239 | 16.45% | 50.06% |
| ±10 pips | 959 | 3.01% | 50.16% |
| ±20 pips | 77 | 0.24% | 54.17% |
| ±40 pips | 3 | 0.01% | n too small |
At a 5-pip bracket, one trade in six is undetermined and resolves essentially at random. At 40 pips, three bars in five years. This is the clearest evidence for the boundary this page opened with — and note it is a property of resolution, not of price: paid one-minute data has exactly the same problem. Full study and reproducible script here.
| What you are testing | Is free data enough? |
|---|---|
| Learning price action, building screen time | Yes — easily |
| Swing trading, stops over 40 pips | Yes |
| Intraday with 20–40 pip stops | Yes, if you check for holes |
| Prop firm rule rehearsal | Yes — the rules are what you are testing |
| Intraday with 10–20 pip stops | Marginal — spread starts to bite |
| Scalping under 10 pips | No — all three failure modes apply |
| Automated systems at high frequency | No — errors compound per trade |
The general principle: free data is accurate enough to train judgement and not accurate enough to validate a thin edge. Most retail traders are doing the former while believing they are doing the latter, which is why this distinction is worth being precise about.
If you are in the top four rows, FXAbsolute gives you 28,412,683 one-minute bars across 15 instruments from 2021 to 2026, free, no account, with the coverage holes published above rather than hidden. If you are in the bottom two, you need real tick data with modelled spread — BacktestFX free, or Forex Tester's Super Data paid — and no free mid-price archive will do, including ours.
A useful sanity check while you are at it: related pairs should behave like related pairs. Across 1,536 overlapping trading days, EURUSD and GBPUSD daily returns correlate at r = 0.77 and move the same direction 77.72% of the time. If two files disagree sharply on a given day, at least one of them is wrong.
"Accurate" is not a property you can take on trust; it is a set of checks someone either ran or did not. Three that are worth demanding of any free source, with FXAbsolute's own answers as a worked example.
1. Is the file identified? A dataset you cannot fingerprint cannot be compared later. The XAUUSD M1 archive used in our published research is stated by SHA-256 (b3472e52…cd63), byte length (37,429,744) and declared bar count (1,871,487). If a future result differs, you can tell whether the data moved.
2. Are the structural invariants checked, or assumed? Ours are asserted on every release by 30 automated tests: no duplicate timestamps, none out of order, none off the minute grid, and no bar where high < max(open, close) or low > min(open, close). Missing minutes are left missing rather than forward-filled, because a filled gap is indistinguishable from real quiet trading once it is in the file.
3. Are the gaps reported? This is the one most sources skip. SPX500 is missing roughly 19% of weekdays in the first half of 2024. A scan across that window that did not say so would hand you clean-looking statistics built on a fifth less data than you asked for — and nothing in the output would hint at it. fxa_session_scan returns the count of empty weekdays alongside every result.
You can run these checks yourself: npx -y fxabsolute-mcp installs the server, and npm run smoke in the repository runs the suite against the live archive.
Demand three things: a fingerprint of the file (a SHA-256 and bar count), structural checks that are actually run (no duplicate, out-of-order or off-grid timestamps, and valid OHLC ordering), and honest gap reporting rather than silent forward-filling. FXAbsolute publishes all three and the test suite that asserts them.
Often, and usually invisibly. SPX500 is missing about 19% of weekdays in the first half of 2024. A source that forward-fills those minutes produces statistics that look clean and are wrong; one that reports the gap lets you decide whether the sample is usable.
For strategies with stops wider than about 20 pips, yes. For scalping under 10 pips, no — free data is typically mid-price OHLC with no spread, so execution cost is invisible, and at a 5-pip bracket 16.45% of hourly bars cannot even determine whether the target or stop was hit first. Free data trains judgement well and validates thin edges poorly.
Three things. Coverage holes, where upstream providers return empty responses that get cached as missing history — an audit of 1,911,141 EURUSD bars found 7 holes of 3 to 5 days across five years. Missing spread, since most free data is mid-price. And unresolvable intrabar paths, which affect paid data at the same resolution equally.
Count bars per trading day and compare against 1,440 for complete one-minute coverage — days far below that are partial. Then difference consecutive timestamps and investigate any gap longer than a normal weekend. Finally, cross-check one volatile week against a second source; different highs and lows mean one feed is wrong.
On spread and tick resolution, yes — paid tick data with bid and ask models execution cost that free mid-price data cannot. On coverage holes, not necessarily, since many paid feeds draw from the same upstream sources. And intrabar ambiguity is a property of resolution rather than price, so paid one-minute data has the identical limitation.
Usually not. Most free archives are mid-price OHLC, the midpoint between bid and ask, so trading cost is invisible. The notable free exception is BacktestFX, which provides tick data with real market spreads in exchange for an account and advertising. Dukascopy raw tick data also includes both bid and ask.
Trust them in proportion to your stop distance. With stops over 40 pips, free one-minute data produces results essentially identical to tick data — only 3 ambiguous bars appeared across five years of EURUSD. With targets under 10 pips, spread alone consumes 15 to 30 percent of the edge and the results should not be trusted.
28.4 million one-minute bars across 15 instruments from 2021 to 2026 — with every coverage hole published so you know what you are testing on.
Open FXAbsolute →