Backtest EA on MT4: Get Reliable Results (2026)
To backtest an EA on MT4 reliably: 1) Get quality M1 data from Dukascopy, 2) Import via History Center (F2), 3) Open Strategy Tester (Ctrl+R) and select "Every tick" model, 4) Set realistic spread and 2+ year date range, 5) Only trust results with 90%+ modeling quality. Below 90%, backtests are essentially unreliable.
I have run thousands of backtests on MT4 over the years, and I can tell you that most EA backtests are worthless. Traders run tests with poor data, wrong settings, or misinterpret the reports -- then wonder why their "profitable" backtest EA loses real money. This guide on how to backtest an EA on MT4 teaches you the exact steps to get results that actually predict live performance, including the data quality steps most tutorials skip.
In This Guide
Why Most MT4 Backtests Fail
Before you backtest an EA on MT4, you need to understand why backtests often produce misleading results. From my experience helping traders set up Golden Viper EA, these are the biggest pitfalls I see repeatedly.
Problem 1: Default MT4 Data Is Terrible
The historical data that comes pre-loaded in MT4 has serious issues that compromise every test you run:
- Missing periods -- Gaps where no data exists, causing the tester to skip or interpolate
- Price errors -- Spikes and incorrect ticks that trigger false trades
- Limited history -- Often only a few months available by default
- Low resolution -- M1 data may be synthetically generated, not from actual market data
The "modeling quality" metric in MT4 reveals this problem immediately. Here is what each level means for the reliability of your backtest results:
| Modeling Quality | Reliability | Action Required |
|---|---|---|
| 25-50% | Essentially random | Do not trust these results |
| 50-89% | Significant error margin | Improve your data quality |
| 90%+ | Reliable for evaluation | Results are meaningful |
| 99% | Professional grade | Requires tick data tools |
Problem 2: Unrealistic Spread Settings
MT4 backtests use a fixed spread -- often the "current spread" at the moment you start. In live trading, spreads widen during news events like FOMC announcements, low-liquidity sessions, and volatile periods. Always test with a spread 20-30% higher than your broker's average to account for this.
Problem 3: Curve-Fitting
If an EA was optimized on specific historical data, it will perform perfectly on that data and poorly on new data. The backtest "remembers" the past rather than predicting the future. This is the single most common reason backtests look amazing but live trading disappoints.
Step 1: Get Quality Historical Data
Good backtests start with good data. You have three main options depending on your budget and needs.
Option A: Download from Your Broker (Easiest)
- Open MT4 and go to Tools → History Center (or press F2)
- Find your symbol (e.g., XAUUSD) in the left panel
- Double-click each timeframe to download available data
- Click "Download" if the button appears
Limitation: Many brokers only provide 1-2 years of data, and quality varies significantly between brokers.
Option B: Dukascopy Data (Best Free Option)
MetaQuotes designed MT4 to work with imported data, and Dukascopy provides some of the highest-quality free tick data available:
- Visit dukascopy.com and navigate to Historical Data
- Select your instrument (XAUUSD is listed as "Gold")
- Choose a date range -- 5+ years is ideal for comprehensive testing
- Download tick or M1 data in CSV format
- Convert the data to MT4-compatible format if needed
Option C: Tick Data Suite (Best Paid)
- Auto-downloads high-quality Dukascopy data
- Converts to MT4 format automatically
- Supports variable spread modeling for realistic conditions
- Achieves 99.9% modeling quality consistently
Step 2: Import Data into MT4
Once you have your data files, import them into MT4's History Center:
- Open Tools → History Center (F2)
- Navigate to your symbol and select the M1 timeframe
- Click the "Import" button
- Select your CSV file and verify the format:
Date,Time,Open,High,Low,Close,Volume - Click OK and wait for the import to complete
- Close History Center
After importing M1 data: Use the PeriodConverter script to generate higher timeframes (M5, M15, H1, H4, etc.) from your M1 data. Attach the script to an M1 chart and set the multiplier (e.g., 5 for M5, 60 for H1). This ensures all timeframes share the same high-quality source data.
Step 3: Configure the MT4 Strategy Tester
Open the Strategy Tester by going to View → Strategy Tester (or pressing Ctrl+R). Then configure each setting carefully:
Essential Settings Checklist
- Expert Advisor: Select your EA from the dropdown
- Symbol: Choose the correct trading instrument (e.g., XAUUSD)
- Model: Always use "Every tick" for final validation
- Spread: Set realistic spread (30-50 points for gold standard accounts)
- Date range: Enable "Use date" and select 2+ years
- Initial deposit: Match your planned live trading capital
Backtest Model Comparison
| Model | Accuracy | Speed | When to Use |
|---|---|---|---|
| Every tick | Highest | Slowest | Always for final validation |
| Control points | Medium | Medium | Quick rough screening only |
| Open prices only | Low | Fastest | EAs that only trade on bar open |
Gold-Specific Spread Settings
- ECN/Raw accounts: 15-25 points typical spread
- Standard accounts: 25-40 points typical spread
- During news events: Can spike to 50-100+ points
Critical: An EA that is profitable with a 15-point spread might lose money with a 40-point spread during volatile conditions. Always test with a spread 20-30% higher than your broker's stated average. This gives you a realistic safety margin for live trading, where your broker's execution quality matters enormously.
Step 4: Run the Backtest
Before clicking Start, run through this pre-test checklist to avoid wasting time on unreliable tests:
- Quality data imported and verified in History Center
- Model set to "Every tick"
- Realistic spread configured (higher than broker average)
- Date range covers 2+ years of market data
- EA parameters configured correctly in the Inputs tab
- Initial deposit set to a realistic trading amount
Click Start and monitor the progress bar. Watch the modeling quality indicator at the bottom -- if it shows below 90%, stop the test, fix your data, and restart. Depending on the date range and data density, the backtest may take anywhere from a few minutes to several hours.
Step 5: Interpret the Backtest Report
After completion, right-click the results and select "Open Report" to see the full analysis. Here are the key metrics I evaluate for every backtest, along with what constitutes healthy ranges:
| Metric | Healthy Range | What It Tells You |
|---|---|---|
| Modeling Quality | 90%+ | Below 90% means results are unreliable |
| Profit Factor | 1.3 - 2.5 | Below 1.3 is marginal; above 2.5 may be overfitted |
| Max Drawdown | Under 25% | Expect 1.5-2x this value in live trading |
| Total Trades | 100+ | Under 30 trades is statistically insignificant |
| Win Rate | Context-dependent | Evaluate alongside profit factor and risk-reward |
Red Flags to Watch For
- Perfect equity curve -- Real trading always has dips; a perfectly smooth curve suggests overfitting
- Profit factor above 3.0 -- Suspiciously high, likely curve-fitted to the test period
- Very few trades -- Fewer than 30 trades means results are statistically meaningless
- One huge winning trade -- If 80% of profit comes from a single trade, the strategy is unreliable
Validating Your Results
A profitable backtest is necessary but not sufficient proof that an EA works. You need additional validation before risking real capital.
Out-of-Sample Testing
- Use 70% of your data for the backtest (in-sample period)
- Reserve the remaining 30% as hidden data (out-of-sample period)
- Run the backtest on the in-sample data first
- Without changing any settings, test on the out-of-sample period
- Results should be similar -- within 20-30% of in-sample performance
If the out-of-sample results are dramatically worse, the EA is likely over-optimized for historical data and will struggle with live markets.
Forward Testing on Demo
The ultimate validation is running the EA on a demo account with live market data for 2-4 weeks minimum. This tests real-time execution, spread behavior, and market conditions that no backtest can perfectly simulate. I always recommend this step before going live -- our guide on lot sizing for $1,000 accounts covers the risk management side of transitioning to live trading.
Pro tip from our team: Golden Viper EA's +135% monthly returns are verified on Myfxbook with live trading -- not backtests. We encourage every user to backtest the EA themselves before going live, but live-verified results are always the gold standard. See how to run an EA on demo first.
Frequently Asked Questions About Backtesting EA on MT4
Why is my MT4 backtest modeling quality only 25%?
Low modeling quality (25-50%) means MT4 lacks complete M1 data to generate ticks for "Every tick" mode. Download quality M1 data from Dukascopy or your broker, import it via History Center (F2), then run PeriodConverter to generate higher timeframes. This typically raises quality to 90%+.
How long should an EA backtest period be?
Minimum 1 year, recommended 2-3 years, ideal 5+ years. Longer periods cover more market conditions including trending, ranging, and volatile phases. Data older than 10 years may be less relevant as market dynamics evolve.
What modeling quality is acceptable for EA backtesting?
90%+ modeling quality is the minimum for reliable results. Below 90%, backtests carry significant error margins and should not be trusted for live trading decisions. Use Tick Data Suite or quality Dukascopy data to reach 99% modeling quality.
Can I trust an EA seller's backtest results?
Be cautious. Anyone can create profitable backtests through curve-fitting or cherry-picking date ranges. Only trust verified live trading results on Myfxbook, backtests you run yourself on your own data, and forward testing on a demo account for at least 2-4 weeks.
What is the best backtest model to use in MT4?
Always use "Every tick" model for final validation of any EA. It provides the most accurate simulation by generating tick-level price movements from M1 data. "Control points" and "Open prices only" are faster but far less accurate and should only be used for rough screening.