Free historical forex data is easy to find, and for manual and swing backtesting it is usually accurate enough - as long as you check it for gaps, duplicates, and bad prices before you trust it. The cleaner the data, the more your backtest reflects reality instead of glitches.
Where to find it
- Broker exports: most trading platforms let you export candle history for the pairs they offer, straight to a file.
- Public data repositories: several sites publish downloadable OHLC history across many pairs and timeframes for free.
- Charting tools: some charting platforms allow exporting the candle data behind a chart.
- Built-in tool data: some backtesting tools ship with historical data included, so you skip the download-and-format step entirely.
Whichever source you use, confirm it actually covers the pair, timeframe, and date range your test needs.
The format you need
Historical price almost always arrives as a CSV with columns for time, open, high, low, close, and sometimes volume. The time field may be a Unix timestamp in seconds or a readable date string. If a tool can read time plus those four OHLC values, the file will work. Delimiters are usually commas or tabs.
Quality checks that matter
- Gaps: missing candles distort continuity. Weekends and holidays are expected; random weekday holes are not.
- Duplicates: repeated timestamps can double-count price action.
- Bad prices: a spike to an impossible value or a zero can create phantom trades.
- Consistent timezone: mismatched session times can wreck any session-based analysis.
Important: for short-term and tick-level strategies, data quality is far more critical than for swing testing - small errors in fine-grained data change many trades. Free sources are often fine for higher timeframes but can fall short for scalping precision.
The cost free data leaves out
Almost every free historical forex feed ships bid-side OHLC only. There is no ask, which means there is no spread, which means a backtest run on it enters and exits at the same price a real broker would never give you. That omission is not a rounding error. We measured spreads on the same feed by matching bid and ask ticks across 25 instruments, and here is what free data is quietly deleting from your results:
| Instrument | Class | Avg spread (pips) | Cost per lot (round turn) | Share of daily range |
|---|---|---|---|---|
| EUR/USD | Forex major | 0.45 | $4.50 | 0.50% |
| USD/JPY | Forex major | 0.68 | $5.44 | 0.74% |
| GBP/USD | Forex major | 0.93 | $9.30 | 0.84% |
| EUR/GBP | Forex cross | 0.90 | $9.00 | 1.58% |
| AUD/CAD | Forex cross | 2.37 | $23.70 | 3.28% |
| Gold (XAU/USD) | Commodity | 66.25 | $66.25 | 2.44% |
| Silver (XAG/USD) | Commodity | 60.78 | $303.90 | 7.57% |
A strategy taking five round turns a week on one standard lot of EUR/USD pays about $1,170 a year in spread; on GBP/USD it is $2,418, and on gold $17,225. If your free-data backtest showed a small annual profit, that number is the first thing to subtract, and it is frequently larger than the edge being measured. The effect compounds with trade frequency, so scalping strategies are the ones most badly misrepresented by spread-free data - and they are exactly the strategies people most often use free data to test.
Two other checks matter as much as the spread. Confirm the timestamps carry a stated timezone and a consistent DST convention, because a feed that silently shifts by an hour will move every session-based rule you write onto the wrong bars. And check for gap-filled or synthetic bars around weekends and holidays, where some free providers interpolate rather than leave the gap honest. The full measured figures for all 25 instruments, including how spread varies by hour of day, are in the spread cost study, and every table is downloadable as CSV from the research data hub.
Skip the sourcing hassle
Downloading, cleaning, and formatting CSVs is a chore that stands between you and actually testing. Many traders sidestep it by using a simulator that comes with historical data built in, so you can pick a pair and timeframe and start replaying immediately - no download, no formatting, no quality guesswork. If you do prefer your own data, the same tools typically accept a standard time-OHLC CSV, so you keep the choice.
Historical data FAQ
Where can I get free historical forex data?
Broker exports, public historical-data repositories, charting-tool exports, or a backtesting tool with data built in. Confirm coverage of your pair, timeframe, and dates.
What format does the data come in?
Usually a CSV with time, open, high, low, close columns. Time can be a Unix timestamp or a date string; delimiters are commas or tabs.
Is free data accurate enough?
Usually fine for manual and swing testing if you check for gaps, duplicates, and bad prices. Short-term and tick strategies need higher quality than free sources may provide.