MetaTrader, EAs & VPS

Comparing two EA deployments before going live

The gap between a strategy that worked in the tester and one that bleeds in live trading is often a single parameter nobody noticed changed. Before you push an EA live, diff the two set files — the one you validated and the one you're about to run — and make every difference a deliberate decision, not an accident.

Why deployments drift

A set file is just a list of key=value lines, and it drifts for boring reasons: you tuned lot size for a demo and forgot to raise it, a prop firm's rules forced a tighter stop, you copied last quarter's file as a starting point, or MetaTrader re-saved the set with a subtly different value after an input change. None of these announce themselves. The EA loads whatever the file says and trades it, silently, with real money.

Every difference between your validated set and your live set is either intentional or a bug. There is no third category — so review the list until every line is accounted for.

The parameters that actually move risk

Not all differences matter equally. A changed comment string is noise; a changed lot size is your account. Scan hardest for the inputs that scale exposure or change behaviour:

  • Position sizingLots, RiskPercent, MaxTrades. These multiply directly into drawdown.
  • Protective levelsStopLoss, TakeProfit, TrailingStop. A wider stop changes your loss per trade and your whole risk-reward.
  • Execution guardsMaxSpread, Slippage. Loosen these and the EA takes fills it would have refused in the test.
  • Trading windows and filters — session hours, a NewsFilter toggle. Turning a filter off changes which trades exist at all.
  • IdentityMagicNumber. This one should differ between deployments so they don't collide, but confirm the new value is unique across the account.

A worked diff

Say deployment A is your backtested set and B is the prop-account version. A field-by-field comparison surfaces this:

  • Lots: 0.100.05 — intentional, the prop account is smaller. Keep.
  • MaxSpread: 2518 — intentional, prop rules are stricter. Keep.
  • TrailingStop: 12090was this deliberate? It changes exit behaviour and wasn't in your test. Flag it.
  • RiskPercent: 1.51.0 — intentional de-risking. Keep.
  • MagicNumber: 2050130777 — correct, must differ. Keep.
  • NewsFilter: absent in A, true in B — a parameter that only exists on one side. Either B runs a newer EA build, or A never tested this behaviour. Investigate before trusting the comparison.

Two of six differences here are silent risks: a trailing stop you never validated, and a filter that changes the trade universe. Everything else is a choice you can defend. That is exactly the review you want to do before going live, not after the first bad week.

Gotchas when comparing at scale

  • Keys present on only one side are the dangerous ones. A changed value is obvious; a parameter that exists in the live set but not the tested one — or vice versa — means the two EAs may not even be the same build.
  • Set-file metadata pollutes a raw text diff. MT5 appends optimization ranges and flags after || on each line; MT4 instead stores them on separate lines with a ,F / ,1..n suffix. A plain text compare screams "everything changed" over metadata that doesn't affect trading. Compare the values, not the trailing junk.
  • Comments and blank lines are noise. Lines starting with ; or # aren't parameters — ignore them or they drown the real signal.
  • Type and locale traps. 1.0 versus 1,0, or true versus 1, can be the same intent stored differently — or a genuine change. Read them, don't assume.
  • Duplicate keys. If a key appears twice in one file, the last value usually wins — know which one your platform actually loads.

Use the comparator

The EA Deployment Comparator makes this a two-paste job. Drop your validated set into Deployment A and your go-live set into Deployment B; it parses each side into a key-to-value map, strips the || metadata and comment lines when the 'Ignore optimization metadata' option is enabled, and lists every parameter that is Changed, Only in A, or Only in B. A running total tells you how many real differences exist and whether the two are safe-to-go-live identical — so nothing changes silently between the test that convinced you and the account that pays for it.

Takeaway

Never assume two set files match because they came from the same EA. Diff them, sort the differences into intentional versus accidental, pay special attention to sizing, stops and any parameter that exists on only one side, and only deploy once every line is accounted for. The differences you don't check are the ones that cost you.

Related tool EA Deployment Comparator →
← MetaTrader, EAs & VPS
Tecnemia AlgoSentinel

One panel for the whole operation

AlgoSentinel runs your whole EA operation — it watches your strategies and your VPS around the clock and flags what needs attention.

  • EA Incubation Control — a clear verdict: incubate · promote · retire
  • VPS & Live Monitor — the alert that saves money when an EA fails to start
See AlgoSentinel →
AlgoSentinel dashboard (real view)