DEV Community

Pitt1904
Pitt1904

Posted on

Your Real Risk Isn't One EA's Drawdown — It's the Combined Drawdown

If you run more than one automated strategy — a couple of Expert Advisors on MT4/MT5, a few copy-traded signals, maybe a prop-firm challenge on the side — there's a number that quietly decides whether you survive a bad week. It's not the max drawdown of your best bot, and it's not the average of your bots. It's the combined drawdown of the whole portfolio, and most retail algo traders never actually compute it.

This post is about why that number is the one that matters, and how to measure it without any fancy tooling.

Per-EA drawdown lies to you

Say you run three EAs. Each one, backtested in isolation, shows a comfortable 12% max drawdown. Pleasant. So your portfolio drawdown is… 12%? Maybe less, because of diversification?

Only if the three are uncorrelated. In practice, retail EAs are correlated far more often than their authors admit:

  • Same regime sensitivity. A trend-follower, a breakout bot, and a "news spike" martingale all tend to bleed in the same choppy, range-bound conditions.
  • Same instrument cluster. EURUSD, GBPUSD and EURGBP are not three independent bets. When the dollar moves, they all move.
  • Same hidden tail. Grid and martingale systems look uncorrelated 95% of the time, then take their worst losses simultaneously during the exact volatility spike that triggers all of them.

When the bad day comes, correlations snap toward 1, and your three "12%" strategies draw down together. The portfolio can briefly sit at 25–30% while every individual equity curve looks "within spec."

The number you actually want

Combined drawdown is defined on the aggregate equity curve, not on any single account:

  1. For each point in time t, sum the equity (balance + floating P/L) of all accounts: E(t) = Σ equity_i(t)
  2. Track the running peak of that aggregate: Peak(t) = max(E(τ) for τ ≤ t)
  3. The combined drawdown at t is: DD(t) = (Peak(t) − E(t)) / Peak(t)
  4. Your portfolio max drawdown is max(DD(t)) over the period.

The critical detail is step 1: you must sum floating equity, including open positions, sampled on the same clock. Summing closed-trade results per account and stitching them together hides exactly the moment you care about — when every bot is underwater at the same time but none has closed yet.

A minimal way to do it

You don't need a data platform. A daily (or hourly) snapshot is enough to catch the shape:

import pandas as pd

# one row per (timestamp, account) with floating equity
df = pd.read_csv("equity_snapshots.csv", parse_dates=["ts"])

agg = df.groupby("ts")["equity"].sum().sort_index()
peak = agg.cummax()
dd = (peak - agg) / peak

print(f"Combined max drawdown: {dd.max():.1%}")
print(f"Worst day: {dd.idxmax().date()}")
Enter fullscreen mode Exit fullscreen mode

If you want the honest version, sample intraday — daily closes routinely miss the deepest floating drawdown by a wide margin, because grid/martingale baskets recover into the close.

Two things this number changes

Position sizing. Once you know the portfolio can hit, say, 28% combined, you size each EA so that the aggregate worst case stays inside your tolerance — not so that each EA individually looks fine. This is the single most common mistake I see: three "safe" bots that are collectively reckless.

Correlation hygiene. Compute the correlation matrix of your accounts' daily returns. Anything above ~0.6 is effectively one strategy with extra commission. Real diversification means adding a strategy whose worst weeks land on different days — not just a fourth bot on the same majors.

The part nobody backtests: where it runs

Combined drawdown assumes your fills are clean. They often aren't. The same volatility spike that maxes out your portfolio drawdown is also when:

  • spreads widen 5–10×,
  • slippage turns a 12% modeled drawdown into a 16% realized one,
  • and a slow or hostile broker quietly converts a survivable day into a margin call.

So the broker is part of the risk model, not a footnote. Execution quality, spread behaviour under stress, and how "EA-friendly" the conditions actually are will move your real combined drawdown by several points — in the direction you don't want.

TL;DR

  • Measure drawdown on the summed, floating equity curve of all accounts, sampled on one clock.
  • Per-EA drawdowns add up worse than you expect because correlations rise exactly when you're losing.
  • Size and diversify against the portfolio number, not the per-bot number.
  • Treat your broker's execution as part of the drawdown, because under stress it is.

If you'd rather not stitch CSVs together by hand, I keep all my MT4/MT5 accounts — combined equity curve, combined max drawdown, per-EA breakdown — in one place with AlgoVerdict, which also publishes independent, algo-focused broker reviews. It's free to track your own EAs. However you do it, just make sure you're watching the combined number — it's the one that can end the account.

Top comments (0)