A client contacted me in March because his EURUSD scalper — profitable since 2023, untouched code, identical settings — had lost 12% in six weeks. He had already re-optimized it twice, and each round made it worse. The EA was never broken — his broker had quietly changed its spread model, and that single shift silently invalidated the assumptions baked into the EA’s logic. When a profitable EA starts losing money without any code changes, a broker-side shift in spread behavior, commission structure, or execution model is the most likely cause, not a broken strategy.
This is a pattern I have seen three times since January 2026 alone. The trader sees declining equity, assumes the strategy failed, re-optimizes parameters to fit recent data, and destroys the original edge in the process. The real cause is external — and the fix does not require touching the core strategy at all.
The Pattern: Nothing Changed, Everything Broke
The scenario is always the same. A trader has been running an EA profitably for months or years. Nothing in the code changed. No settings were modified. The market did not crash. But the equity curve, which used to grind steadily upward, starts bleeding.
The trader’s first instinct is to check the code. Nothing wrong. Second instinct: re-run the backtest. The backtest still looks fine — 68% win rate, smooth equity curve, reasonable drawdown. The strategy “works.” So the trader concludes something mysterious happened and starts re-optimizing parameters to fit the recent losing period.
This is where the real damage begins. Re-optimization on a period where the execution environment has changed means the optimizer is fitting parameters to a cost structure that did not exist when the EA was profitable. The new parameters compensate for wider spreads by widening stops and tightening targets — which destroys the risk-reward ratio that made the strategy profitable in the first place.
In the client case I mentioned, the EA had been running on EURUSD since mid-2023. Consistent results, no interventions needed. The equity curve started declining in February 2026. By the time he contacted me, he had already applied two rounds of re-optimization. The first round reduced performance slightly. The second round turned a 12% loss into a 19% loss. The EA’s original parameters were sound. The execution environment had moved underneath them.
What Brokers Actually Change (and Why They Do Not Tell You)
Brokers adjust their execution environment regularly. They do this for legitimate business reasons — regulatory compliance, liquidity provider renegotiation, competitive repositioning — not to target individual traders. But the changes are rarely announced in advance, and they directly affect how your EA interacts with the market.
Here are the five changes that break EAs most often:
Spread model shifts. A broker moves from a fixed or near-fixed spread to a wider variable spread. Or the variable range widens — what used to be 0.6–1.2 pips on EURUSD becomes 0.8–2.5 pips. For a scalper targeting 5–8 pips per trade, that increase eats directly into the profit margin.
Commission restructuring. A broker changes from per-lot commissions ($7 per round turn lot) to a spread markup model, or adjusts the commission rate. The EA’s profit target was calibrated against the old cost structure. The math no longer adds up.
Execution type changes. A broker shifts from instant execution (where you get the exact price you requested or a requote) to market execution (where you get the best available price, which may differ). EAs built for instant execution do not handle slippage because they never needed to.
Slippage policy adjustments. The broker changes how much slippage it permits on market orders, or changes the priority queue for different account types. Your EA’s fill prices shift by a fraction of a pip on average — invisible on any single trade, but compounding across hundreds of trades per month.
Stop level modifications. The minimum distance between current price and a stop loss or take profit changes. An EA that sets tight stops may suddenly get error 130 rejections it never encountered before, missing entries or failing to manage positions.
In 2025 and early 2026, several brokers adjusted their ECN and STP models in response to updated regulatory transparency requirements. These were not minor tweaks — some brokers restructured their entire spread and commission models. Traders running stable EAs saw unexplained performance degradation with no code changes on their end.
Why Backtests Cannot Diagnose This
The trader’s instinct after seeing declining performance is to backtest. Logical, but misleading in this case.
The MetaTrader Strategy Tester uses historical tick data. That data reflects the spread and execution conditions that existed when the data was recorded — not the conditions that exist today. If your broker changed its spread model in February 2026, a backtest on 2024–2025 data still shows the old spreads. The backtest tells you the strategy is sound, because under the old conditions, it was.
In the client case, the backtest on 2024–2025 data showed a 68% win rate. Live trading in March 2026 showed 41% on the same parameters. The only variable that changed was the average spread during London session: it increased from approximately 0.8 pips to 1.4 pips. That difference does not look dramatic, but on a scalper targeting 6-pip trades, the spread’s share of each trade jumps from roughly 13% to 23% — nearly doubling the cost absorbed before the trade reaches breakeven. Over hundreds of trades per month, those ten extra percentage points erode the entire edge.

The backtest cannot show this because the historical data predates the change. “Every tick” mode generates ticks from stored bars using the broker’s historical data — which reflects past conditions, not current ones. The trader sees a backtest that confirms the strategy works, while the live environment has fundamentally shifted.
This is why performance degradation from broker changes is so dangerous: the diagnostic tool most traders reach for — the Strategy Tester — actively confirms the wrong conclusion.
The Diagnostic: How to Isolate an Environment Change
Before changing anything in your EA, run this three-check diagnostic to determine whether the degradation is environmental or strategic.

Check 1 — Compare current execution costs against your profitable period.
If your EA logs spread and commission data (it should — see Section 6), compare the averages. If it does not log this data, start now: use `MarketInfo(Symbol(), MODE_SPREAD)` to sample the spread on every tick during your trading window, and compare against what your EA was designed for. In the client case, this check took 20 minutes and immediately showed a 75% increase in average spread during the London session.
Check 2 — Run the EA on a different broker’s demo account.
Open a demo account with a different broker. Same settings, same parameters, same symbol. If the EA performs closer to its historical profile on the second broker, the problem is broker-specific, not strategic. In the client case, we tested on a second broker’s demo and the EA returned to within 5% of its original performance profile. Diagnosis confirmed.
Check 3 — Audit fill prices against signal prices.
Compare the prices at which the EA intended to enter against the prices it actually received. If average slippage has increased, or if the variance in fill quality has widened, the execution environment has changed. This requires the EA to log both the requested price and the actual fill — data that most EAs do not capture but should.
If checks 1 and 2 point to the broker environment, you have your answer. If the EA performs poorly on a second broker too, the environment is not the cause — revisit the strategy itself (see Section 7).
In the client’s case, the full diagnostic took under 48 hours. Check 1 revealed the spread change. Check 2 confirmed it was broker-specific. We never needed Check 3 — but we ran it anyway to quantify the impact for the adaptation plan.
The Fix: Adapting Without Destroying the Strategy
The correct response to environment-caused degradation is not re-optimization. Re-optimization changes the strategy to fit the new cost structure, which destroys the original edge. The correct response is adapting the execution layer while preserving the strategy logic that was working.
Three adaptation categories:
Spread-aware entry filters. Add a dynamic spread check before entry. Skip the trade when the current spread exceeds a threshold relative to the rolling average. For the client’s EA, we added a filter that rejects entries when spread exceeds 1.5 times the 20-period average spread. This avoids entering during the widest spread windows without permanently disabling the strategy.
Commission-adjusted profit targets. If the broker changed commission structure, recalculate the take profit to maintain the same net-of-cost profit per trade. This is arithmetic, not strategy modification — the entry logic and signal generation remain untouched. You are adjusting for a changed cost input, not changing the trading thesis.
Execution monitoring. Log the actual fill price versus the requested price on every order. Calculate rolling averages for slippage. If slippage degrades beyond a threshold, the EA alerts you instead of continuing to trade in an adverse environment.
For the client, we implemented the spread filter and adjusted the take profit by 0.6 pips to compensate for the increased cost. We also reverted the two rounds of re-optimization he had applied — returning to the original parameters that had worked for 2.5 years. The EA recovered to approximately 90% of its original performance within three weeks.
At barmenteros FX, this is the type of diagnostic and adaptation work we do — isolating whether degradation is environmental or strategic, then adjusting execution parameters without touching the signal logic that was generating edge.
The total intervention: one spread filter, one TP adjustment, one parameter revert. No strategy changes. No re-optimization. The EA’s core logic was sound the entire time.
Build Execution Monitoring Into Every EA
The root vulnerability in the client’s EA — and in most EAs I see in production — is the absence of execution monitoring. The EA assumed static execution conditions. It had no mechanism to detect when those conditions changed.
Every production EA should track three metrics on a rolling basis:
– Average spread at entry. Sample the spread at the moment each trade opens. Maintain a rolling average over the last 50–100 trades.
– Average slippage per order. Compare the requested fill price to the actual fill price. Track the rolling average and standard deviation.
– Effective commission cost per trade. If the broker reports commission data, log it per trade. If not, calculate from the known commission rate and actual lot size filled.
When any metric deviates beyond 2 standard deviations from its rolling baseline, the EA generates an alert — a journal entry, a push notification, or both. The trader investigates before the deviation compounds across dozens of trades.
This is not complex to implement. In MQL4 or MQL5, it adds roughly 50 lines of code — a small array for each metric, an update function called after each trade execution, and a comparison function that fires the alert. The data itself is already available through `MarketInfo()`, `OrderOpenPrice()`, and `OrderCommission()`.
The cost of not having this monitoring is what the client experienced: six weeks of degradation before anyone diagnosed the cause, two rounds of harmful re-optimization, and a 19% equity drawdown on a system that was fundamentally sound.
When It Really Is the Strategy
Not every performance decline is an environment change. Genuine strategy decay exists, and this diagnostic framework will tell you when you are facing it.
If the EA performs poorly on a second broker’s demo (Check 2), the environment is not the cause. The strategy itself may be experiencing:
– Regime shift. The market’s volatility profile changed — a mean-reversion EA that thrived in ranging conditions stops working when the market transitions to a trending regime.
– Volatility compression. The asset’s daily range shrinks below the EA’s profit target. There is simply not enough movement to generate the trades the strategy needs.
– Crowded trade. Too many participants are running similar strategies, compressing the edge to zero.
I had a separate case last year — a mean-reversion EA on GBPJPY that had been profitable for 18 months. When performance declined, we ran the same diagnostic. Check 2 showed the EA performed poorly on every broker we tested. The environment had not changed — the volatility regime had. The GBP pairs had compressed into an unusually tight range that the EA’s parameters could not exploit. The correct response was to reduce exposure and wait for the regime to shift, not to re-optimize into a range that would eventually end.
The diagnostic in Section 4 separates these two scenarios cleanly. Environment change: adapt the execution layer. Strategy decay: reduce exposure or retire the strategy. Mixing them up — re-optimizing a sound strategy to fit a changed environment, or blaming the broker for a dead strategy — costs money both ways.
If your EA has started underperforming and you cannot determine whether the problem is environmental or strategic, request a diagnostic review. We apply the framework described above to your execution data and identify the root cause before any code changes are made.


Leave a Reply