LEARN · EN · easyquanttrading.com
MT5 historical data: download, export to CSV, check quality
Most people open MetaTrader 5, drag an expert advisor onto the tester, and press start. The tester then uses whatever history happens to be on the machine, which for a symbol you have not scrolled through is often far less than you assume. The result is a backtest that ran, produced a report, and measured almost nothing.
By the EasyQuant Research Team·Published 2026-09-26·We publish the tests our own strategies fail. Nothing here is a return promise.
- MT5 downloads history on demand — if you never scrolled the chart, you may have very little
- The History Center (F2) is where you see and force downloads
- Check the quality percentage and bar count in the report header before reading the result
- Export to CSV for external analysis, and expect to clean the format
Why your history may be thinner than you think
MetaTrader 5 does not download a full history for every symbol in advance. It requests data from the broker as you need it — when you open a chart and scroll back, when you run a test, when an indicator asks for more bars.
The practical consequence: a symbol you have never opened may have days of data, not years. Running a multi-year backtest on it will either fail, silently test a shorter period than you asked for, or generate synthetic bars to fill the gap. All three produce a report that looks complete.
The first thing to do with any new symbol is force the download rather than hope. That is what the History Center is for.
Downloading history: the reliable route
Open the History Center with F2, or from the View menu. Choose the symbol and timeframe you need, and press the request or download button. MT5 will fetch what the broker has.
Two practical notes. First, the broker decides how far back its history goes — some provide years of minute data, others much less, and no amount of clicking changes that. Second, requesting a very long period of very fine data can take a while; start with the timeframe you actually trade and the period you actually need.
If a symbol will not download, the usual causes are that the symbol is not in Market Watch (add it first), the broker has delisted it, or the terminal is offline. A symbol missing from Market Watch cannot be downloaded, which is a surprisingly common cause of 'the history is missing'.
Alternative routes exist and are worth knowing: MetaQuotes provides a download of historical minute data that can be imported, and many brokers publish tick data separately. Imported data has to be checked, because importing a file with the wrong timezone or a missing weekend convention produces bars that look fine and are wrong.
Exporting to CSV
With the chart or the tester report open, MT5 can export the price series to CSV. From a chart, the export writes the bars currently loaded, so make sure you have scrolled back far enough that the whole period is in memory before exporting — otherwise you export only what you were looking at.
The exported file is typically tab-separated despite the .csv extension, with a header line naming the columns. Expect to handle that on import: specify the delimiter rather than assuming a comma, and parse the date and time columns explicitly.
The timestamp convention is the one that catches people out. MT5 bar timestamps are usually in the broker's server time, not UTC and not your local time. If you join this data to anything from another source — an economic calendar, another broker's feed, a news timestamp — you must establish the offset first. A one or two hour offset will quietly corrupt any event study and any cross-source comparison, and it will not throw an error.
Two more things to check in any export: the bar that is currently forming (it is incomplete and must be dropped), and weekend rows if the symbol has none (a broker that publishes flat weekend bars will produce a long run of zero-range bars that can badly distort volatility estimates).
Checking quality before you trust a result
After any backtest, the report header states the quality figure and the number of bars and ticks used. Read it before you read the profit.
**Quality percentage.** This reflects how much of the tested period was covered by real tick data rather than generated approximations. A figure below roughly 90% means the tester was filling gaps. The result may still be directionally useful, but it is not a precise measurement and should not drive position sizing.
**Bar count.** Multiply the number of bars by the timeframe to get the period actually tested, and check it matches what you asked for. This is the check that catches the silent short-period problem: you request five years, the report shows the tester used two, and nothing in the interface warned you.
**Tick count.** An implausibly low tick count for the period means the tester worked from generated ticks. Compare it against what you would expect: on a liquid instrument, an hourly bar usually contains far more than one tick.
**Gaps.** Plot the bars or just count them: a period with a large block of missing bars around a specific time usually means a data gap, not a market closure.
The four failure modes that produce a wrong answer quietly
**Wrong timezone.** The most common and the hardest to notice, because the numbers all look plausible. Every session-based strategy is affected: an intraday pattern that depends on the London open will shift by the offset, and the backtest will report the performance of a pattern that does not exist.
**Generated bars treated as real.** Filling a gap with interpolated bars manufactures price action that never happened. Strategies with stops and targets inside the bar are the most exposed, because the synthetic path decides which one was hit.
**Delisted or renamed symbols.** Brokers rename and delist instruments, and historical data is not always migrated. A backtest on a symbol whose history stops two years ago will report a clean result over a period that is not the one you selected.
**Contract specification changes.** Some instruments change contract size, tick size or trading hours over the years. A long backtest spanning such a change silently mixes two different instruments, and the position sizing arithmetic is wrong on one side of the change.
A short checklist
1. Symbol is in Market Watch, and history has been explicitly downloaded in the History Center.
2. Report header quality figure is high, and the bar count multiplied by the timeframe matches the period you intended to test.
3. Tick count is plausible for the instrument and period.
4. Timezone convention identified and written down, especially before joining to any external data.
5. The current forming bar and any flat weekend bars removed from an exported series.
6. The same test reproduced on a second period or a second broker's data, to see whether the result survives a change of feed.
We run every strategy we publish on a real MetaTrader terminal with an explicitly downloaded history before it goes out, precisely because the difference between a backtest and a terminal is measurable rather than theoretical.
What good data does not fix
Complete, high-quality history removes one class of error. It does not remove the others: a strategy fitted to the data it is measured on is still overfitted, a short sample is still a short sample, and a strategy with no edge still has no edge.
It also does not tell you your broker's live feed matches its historical feed. Many brokers serve history from one source and live prices from another, and the two can differ in ways that only show up in the trades you actually take.
Data quality is a necessary condition for a meaningful backtest, not a sufficient one. It is the cheapest thing on the list to get right, which is why it is worth doing first.
Current platform facts
Read live from the strategy library when this page was generated. These are the same counts published on our transparency page, and they change as strategies are added and rejected.
| Strategies in the audited library | 3672 |
|---|---|
| Flagged by the audit | 2011 |
| Flag rate | 54.8% |
| Checks still pending | 1651 |
| Passed the DSR overfitting check | 1 |
| Passed the significance check | 504 |
| DSR threshold used | 0.90 |
FAQ
- How do I download historical data in MT5?
- Add the symbol to Market Watch, then open the History Center with F2, select the symbol and timeframe and request the download. MT5 fetches what the broker provides, so how far back the history goes depends on the broker.
- Why is my MT5 historical data missing or incomplete?
- The most common cause is that the symbol was never in Market Watch or the chart was never scrolled back, so MT5 never requested the data. Other causes are a delisted symbol, being offline, or the broker simply not providing that depth of history.
- How do I export MT5 data to CSV?
- From a chart, use the export option after scrolling back far enough to load the whole period. The file is usually tab-separated despite the extension, timestamps are in broker server time, and you should drop the currently forming bar before analysing.
- What is history quality in the MT5 Strategy Tester?
- It reflects how much of the tested period came from real recorded ticks rather than generated approximations. A figure below roughly 90% means the tester filled gaps, so the result is directional rather than precise.
- Why does my backtest say a different period than I requested?
- Because the tester only had bars for part of the requested range. Check the bar count in the report header multiplied by the timeframe against the period you asked for; a mismatch means you tested less than you think.
More guides
- How EasyQuant validates strategies — evidence you can filter
- Honest backtesting, not pretty curves
- Gold strategy research that stays honest
- Overfitting detection: catch it before you deploy
- System Forge: design, then prove
- Walk-forward analysis: the only backtest that fights overfitting
- MT5 export without custody
- Glass box, not black box AI signals
Not investment advice. Historical results do not guarantee future performance. EasyQuant is a research factory — you execute on accounts you control.