MT4 Backtest Portfolio Analysis: Why the Strategy Tester Falls Short (and What to Do Instead)

April 27, 2026 Backtesting 11 min read

By · Algorithmic Forex Trader · Founder, SteadyFlowFX

Published: 2026-04-27 · Last updated: 2026-04-27

MetaTrader 4's Strategy Tester can backtest one EA at a time. To analyze how multiple EAs would perform as a portfolio — sharing one account, sharing margin, sharing a drawdown — you have to do the math yourself, or use a tool built for it. This guide walks through what MT4 actually shows you, what it can't, and how to get a real portfolio backtest in 10 minutes.

If you run two or more Expert Advisors on the same live account, this is the gap between the report you have and the report you need. The good news: closing it does not require new data. You already have everything — you just need to replay it on one shared balance instead of looking at five independent reports side by side.

How MT4 handles single-EA backtests

MT4's Strategy Tester runs one EA on one symbol against historical tick data, treating the account as if no other strategies are touching it. That's the entire mental model: a clean, isolated environment where the EA gets a starting balance, opens and closes trades according to its logic, and produces a report at the end.

The workflow is familiar to anyone who has used MT4 for more than a week. You open the Strategy Tester window (Ctrl+R), pick the EA from the dropdown, choose a symbol, set a date range, choose a model (Every tick, Control points, or Open prices only), enter a starting deposit, and click Start. MT4 walks the price history forward, ticking each candle into the EA, executing trades against simulated spread and commission, and updating a running balance and equity curve.

When the run finishes, you click the Report tab and get a fairly comprehensive snapshot:

Right-click the report and you can save it as an HTML file (.htm or .html). That HTML file is the artifact MT4 traders pass around — it's what EA sellers use to advertise their products, what propfirm forums use to verify performance, and what every per-EA validation conversation revolves around.

The Strategy Tester is, on its own terms, a competent piece of software. Built since 2005, it has been the industry default for retail forex algo development for two decades. Most public EA backtests you've ever seen were produced by it. The metrics it reports are reasonable. The workflow is fast.

But the report has an implicit assumption baked into every number on it: this EA is the only thing trading the account. The starting balance is yours alone. The drawdown number assumes no other strategy is also drawing the account down. The lot sizes were calculated against a balance that was never touched by anything except this one EA. As long as that assumption holds, the report tells you the truth. The moment you put a second EA on the same account, the report becomes a useful piece of fiction.

What MT4 cannot do

MT4 has three blind spots that matter the moment you move from one EA to several. These are not bugs — they are the natural consequence of the Strategy Tester being designed around the unit case. The questions below are the ones traders actually ask, with the actual answers.

Can MT4 backtest multiple EAs at once?

No. Strategy Tester is single-symbol, single-EA. There is no built-in mode where you point MT4 at three EA files and tell it "run all of these on one $10,000 account from 2020 to 2024." It does not exist in MT4 or MT5.

The workaround traders try is opening two Strategy Tester windows side by side and running EA-A in one, EA-B in the other, with a $10,000 starting balance in each. This produces two separate reports that look like they cover the same period, and it's tempting to add the profits together and call that the "portfolio result." It isn't. Each EA in this setup got a full $10,000 to itself — not the shared $10,000 the live account would have. There was no margin competition between them. When EA-A drew the account down 8%, EA-B's lot sizes did not shrink in response, because EA-B was on a different simulated account. The drawdowns never overlapped onto one balance, because there was no single balance to overlap on.

What you get from running two Strategy Testers is two solo reports. What you'd get on a real shared account is a different equity curve entirely — usually worse, sometimes meaningfully worse. The Strategy Tester has no mode that closes this gap.

What's "drawdown stacking" and why does MT4 miss it?

Drawdown stacking is what happens when two or more EAs enter losing periods at the same time on a shared balance. Their individual drawdowns no longer sit in their own private equity curves — they hit one account at once, and the account drops by the sum of the simultaneous losses, not the worst of them.

If EA-A's worst drawdown is 12% and EA-B's worst drawdown is 15%, the naive expectation is that the portfolio's worst drawdown is roughly 15% — the deeper of the two. That intuition is wrong almost every time. With moderate correlation between the two strategies (say, 0.4), the portfolio's worst drawdown will land closer to 22-28%. With higher correlation, it can be 1.5x to 2x worse than the deeper individual drawdown. The math behind this is covered in detail in EA Portfolio Drawdown Stacking.

MT4 has no way to model this because each backtest is independent. The Strategy Tester does not know that EA-A had a bad July at the same time EA-B had a bad July. It cannot, because each EA is running in its own isolated simulation. The temporal overlap of drawdowns — the single most important variable in portfolio risk — is invisible inside MT4.

What about correlation between EAs?

MT4's report shows individual EA stats but cannot compute portfolio-level correlation between two or more EAs' returns. There is no "select multiple reports and show me a correlation matrix" feature. The Strategy Tester is built to summarize one strategy's performance — it has no concept of "another strategy's monthly returns" to correlate against.

You could, in principle, export every trade from every EA, line them up by date in Excel, compute monthly returns per EA, and run =CORREL(...) across each pair. A few thousand rows and ten formulas in, you'd have a correlation matrix. Most traders never do this, partly because it's tedious, partly because it's easy to get wrong (return windowing, daily vs weekly, log returns vs simple returns), and partly because the problem isn't visible until live trading reveals it. The dominant assumption ends up being "running EA-A and EA-B together gives me roughly the average of their solo results." That assumption is what blows accounts up.

The cleaner question correlation answers is: when EA-A loses, what happens to EA-B? If the answer is "EA-B is also losing," they are not diversifying you — you have one strategy in two costumes. If the answer is "EA-B is roughly flat," you're getting real diversification. MT4 cannot produce that answer for you.

The summary in one line: MT4 is fluent in single-EA backtests and silent on everything that happens when those EAs share an account. Adding individual reports together is not a portfolio backtest. It is a mathematical shortcut that consistently understates real risk.

The shared-balance simulation approach

A shared-balance portfolio backtest replays every EA's trades chronologically against ONE account, tracking what would have happened if all those trades had hit your live account simultaneously. That is the test you actually want, and it is the test MT4 does not provide.

The underlying mechanic is straightforward to describe, even if it's tedious to implement by hand:

  1. Merge all trades into one chronological event stream. Each trade from each EA becomes a timestamped event — "EA-A opened EURUSD long at 1.0820 on 2023-03-14 09:15." Sort the entire merged list by timestamp.
  2. Replay events against one account. Initialize a single balance (e.g. $10,000). Walk through the events in time order. Each open consumes margin; each close adjusts the running balance and frees margin.
  3. Track running balance, margin usage, and drawdown at every step. The portfolio equity curve is the running balance. The portfolio drawdown is the largest peak-to-trough decline of that combined equity curve. Crucially, this curve will look different from any single EA's solo equity curve — because the trades interact.
  4. Apply broker rules. Stop-out levels, margin call thresholds, max-positions limits. If a real broker would have blocked an EA's trade because the account didn't have enough free margin at that moment, the simulation needs to reflect that. Otherwise the backtest is too optimistic.
  5. Compute portfolio-level metrics. Net profit, max drawdown, Calmar, Sortino, Sharpe, Recovery Factor, profit factor, longest losing streak, time-to-recover, return on max drawdown — all from the combined equity curve, not the average of the per-EA reports.

This is the simulation that captures what is actually missing from MT4: the timing overlap of trades, the shared balance feedback into lot sizing, the margin contention, and the correlation effects that turn 15% individual drawdowns into 38% portfolio drawdowns. Once the trades are in the same event stream, all of these effects emerge automatically — you don't need to model correlation explicitly, because the trades themselves already encode it.

Doing this by hand is possible. You merge HTML reports, parse the trade tables, sort by date, write a small script that walks the events and tracks balance, and you've got a portfolio equity curve. For three EAs, this is a weekend project. For ten EAs across thirty possible portfolios, it is a month of weekends — and that's before you start computing 17 risk metrics on each one and finding the Pareto frontier.

Workflow — uploading MT4 reports to FXOptimize

FXOptimize is a web-based tool that takes the MT4 reports you already have and runs the shared-balance simulation in your browser. Nothing installs. The reports never leave your device. The whole loop fits inside ten minutes once you have the per-EA backtests in hand.

Step 1

Run each EA in MT4 individually and save the report

Open the Strategy Tester for each EA you want in the portfolio, run a full backtest over the same date range (this matters — identical periods make the merge clean), and right-click the resulting report. Choose Save as Report and save it as .htm or .html. Repeat for every EA. You should end up with one HTML file per EA.

Step 2

Upload all reports to FXOptimize

Open fxoptimize.com/app and drag every HTML file into the upload area. The parser reads each report, extracts the trade list and metadata, and shows you a per-EA summary so you can confirm the import worked. The free tier lets you analyze up to 3 EAs.

Step 3

Configure portfolio constraints

Set the rules the portfolio must satisfy: starting balance, maximum portfolio drawdown, minimum number of EAs in the combination, minimum Sortino, target Calmar, broker stop-out level. These constraints become filters — combinations that violate them are dropped before scoring.

Step 4

Run the analysis

FXOptimize merges every EA's trades into a single chronological event stream and replays each candidate combination against one shared balance. It computes 17 risk-adjusted metrics for each portfolio — Calmar, Sortino, Sharpe, Recovery Factor, max drawdown, return-on-drawdown, profit factor, expectancy, and more — then maps them on the returns-by-drawdown plane to find the Pareto frontier.

Step 5

Review the Pareto frontier and pick a portfolio

The output is a chart of every viable combination plotted against returns and drawdown, with the Pareto-optimal portfolios highlighted. Conservative (lowest drawdown), Balanced (best Calmar), and Aggressive (highest return) are surfaced as canonical picks — you can also click any other point on the frontier to inspect it. Pick the portfolio matching your risk tolerance and you're done.

Pricing: the free tier supports 3 EAs and 1 portfolio simulation per month. Solo is $39/mo with unlimited EAs and unlimited simulations. Studio is $99/mo and adds Monte Carlo stress testing and walk-forward validation. If you want a longer comparison against the closest desktop tool, see FXOptimize vs QuantAnalyzer.

What this lets you answer

Once the simulation is running, you can ask questions you simply cannot ask of MT4. The point of the workflow is not to produce one prettier report — it is to make a class of decisions provable that previously had to be guessed at.

Questions a real portfolio backtest answers

QuestionWhat it tells you
Which 3 EAs from my library produce the highest Calmar? The Pareto-optimal triplet, computed across every possible 3-of-N subset on shared balance. This is rarely the three EAs with the best individual Calmars.
If I run 5 EAs together, what's the worst drawdown I should expect? The actual combined max drawdown on shared balance, including the temporal overlap effects MT4 hides. Usually 1.5-2x the deepest individual drawdown.
Are EA1 and EA2 actually diversifying, or do they lose at the same time? The pairwise correlation of their daily returns. Above 0.5, you have one strategy in two costumes — below 0.3, you're getting real diversification.
Can I pass an FTMO challenge with this combination? Whether the portfolio's max drawdown stays below the propfirm's daily and total drawdown limits across the test period. Most challenges fail on drawdown rules, not on profit targets.
How would the portfolio have done in the March 2020 crash? The equity curve segment for any historical regime — volatility spikes, central bank shocks, holiday liquidity gaps. The metric that matters here is recovery time, not just the size of the dip.

None of these questions have approximate answers. Either the portfolio survived the 2020 March crash with less than a 30% drawdown or it didn't. Either EA-A and EA-B have a 0.7 daily-return correlation or they have 0.2. Either the 3-EA triplet that maximizes Calmar is {A, C, F} or it's {B, D, G}. The shared-balance simulation gives you the actual answer; the side-by-side MT4 reports give you a guess.

The mental shift: stop thinking of MT4's per-EA report as the deliverable. The per-EA report is the raw material. The deliverable is the portfolio simulation built from a folder full of those reports.

Conclusion + CTA

MT4's Strategy Tester is a great per-EA backtester. It is not a portfolio backtester. For portfolio-level analysis — the analysis that determines whether your live account survives or blows up — you need a tool that simulates the shared account. That tool can be a custom Python script you write yourself, a desktop application like QuantAnalyzer, or a browser-based tool like FXOptimize. What it cannot be is the Strategy Tester running three windows side by side.

The good news is that the data you need is already in your hands. Every MT4 report you've ever exported is a trade list and a metadata header. A shared-balance simulator just replays those trade lists together. You don't need new backtests. You need the right kind of replay.

Run a real portfolio backtest in your browser

FXOptimize's free tier handles up to 3 EAs and 1 portfolio simulation per month. If you've never seen what your EAs actually do as a portfolio, start there.

Upload your MT4 reports →