Most Gold EA Backtests Are Fiction. Here's What Real Data Did to Four of Them.

27 July 2026, 00:09
Simon Reeves
0
62
Four Gold Grid EAs, Twenty Backtests, One Uncomfortable Discovery Four Gold Grid EAs, Twenty Backtests, and One Very Uncomfortable Discovery

What happened when Impulse was tested side by side with three other gold grid systems — and why the winner wasn't decided by profit.

Let me get the obvious out of the way first. I built Impulse. So read what follows with that firmly in mind, and go check the numbers yourself — that's the whole point of publishing them.

What I want to share isn't a sales pitch about how clever my EA is. It's what came out of an evaluation that put four gold grid systems through the same wringer, on the same instrument, over the same nineteen months. Impulse was one of them. The other three I'll simply call EA #1, EA #2 and EA #3. They're all live products you can buy today. Naming them isn't the point, and frankly it would be a cheap thing to do.

The finding that genuinely rattled me had nothing to do with which one made the most money.

The setup

Four gold grid EAs. Twenty backtests in total — five different test configurations each, run across two separate brokers. Same account size ($10,000), same fixed trade size, no compounding, no cherry-picking. January 2025 through July 2026.

The five configurations weren't there to make anything look good. They were there to break things. Add execution delay. Change how the tester builds price movement. Switch to a completely different broker's price feed. Change the chart timeframe. Each of those produces a different sequence of trades without touching a single setting inside the EA — which is exactly what you want, because a real edge shouldn't care.

On the first pass, all four looked fine. Returns between 31% and 55%. Drawdowns under 5%. Four healthy-looking systems.

That first pass was almost completely worthless.

The part that should bother every one of us

Most backtests you'll see advertised — including, if we're honest, plenty of mine over the years — are run on invented price movement. The tester takes the open, high, low and close of each minute and makes up a smooth little journey between them. It looks like a market. It isn't one.

Real price movement is jagged, noisy and rude. And for grid systems in particular, that matters enormously, because grids live and die on the wiggles inside the bar, not the shape of the bar itself.

So the tests were re-run on real recorded tick data — the actual, messy, minute-by-minute price history. Here's what that one change cost each system:

System Profit lost to real data
Impulse −1%
EA #1 −34%
EA #2 −37%
EA #3 −111%

Change in net profit when moving from invented price movement to real recorded ticks.

That last one is not a typo. EA #3 went from a comfortable profit to a loss the moment it had to trade a real market instead of a smoothed cartoon of one.

Impulse gave up one percent.

There's a reason for that, and it isn't luck. Impulse only ever makes a decision at the close of a completed one-minute bar. Not mid-candle, not on a tick that flickered through a level and vanished. Every entry, every addition to a basket, every exit is assessed on a price that has actually printed and settled. It's a deliberately unglamorous design choice, and it means there was very little for a fake price path to flatter in the first place.

Consistency, which nobody advertises but everybody needs

Here's the full picture across all five configurations. Remember: same EA, same settings, every time. Only the testing conditions changed.

System Best run Worst run Spread
Impulse $5,591 $5,405 3%
EA #1 $4,685 $3,108 34%
EA #2 $3,976 $2,492 37%
EA #3 $3,309 −$344 110%

Backtest results. $10,000 account, 0.01 lots fixed, Jan 2025 – Jul 2026, XAUUSD.

Impulse landed inside a three percent band across five runs that share almost no trades in common. Under one percent of its entry times are the same between the invented-tick runs and the real-tick runs. Completely different trades. Practically identical result.

I've been building EAs for years and I'll tell you plainly: that is the number I'm proudest of on this entire page. Anyone can produce a big backtest. Producing the same backtest five times over, after somebody has actively tried to knock it over, is a different thing entirely.

Then it got serious

Grid systems don't die slowly. They look wonderful for months and then have one bad afternoon. So the real question was never "how much did each one make" — it was "does a fatal day exist somewhere in this data?"

For two of the four, it did.

EA #3 caught a falling market in October 2025 and averaged into it — but crucially, it increased its trade size on the way down. What started at the minimum size ended up ten times larger. Seven trades closed in the space of three seconds for a realised loss of over $3,200. On a $3,000 account, that account no longer exists.

EA #2 did something equally alarming from the other direction. It quietly built up 32 open trades at once, carried an unrealised loss of nearly $3,500, and held that position for the better part of three days. It happened to close for a small profit in the end. But "happened to" is doing an awful lot of work in that sentence.

And here's the detail that keeps me up at night about grid EAs generally: at that point the account's margin level still looked completely healthy. Thousands of percent. Nothing would have alerted you. The account gets hollowed out from the inside while every warning light stays green.

Now Impulse, across all five configurations:

System Worst open loss On a $3,000 account
Impulse −$237 −7.9%
EA #1 −$316 −10.5%
EA #2 −$3,453 account gone
EA #3 −$3,283 account gone

Impulse never went beyond nine positions. Not in one run — in every run. Across roughly 5,400 baskets tested, not a single one reached a tenth. Its worst moment across all five configurations sat between −$233 and −$237, which is the kind of tight clustering you only get when exposure is controlled by design rather than by good fortune.

The headline backtest figures, for completeness: $5,405 net on the toughest, highest-quality dataset. Roughly $23 earned for every dollar it ever had at risk at its worst moment. Around $350 a month through the calmer stretch of 2025, rising to about $640 a month when 2026 got choppy — it did more work when there was more work to do, which is rather the idea.

So why did it hold together?

Because Impulse isn't one idea repeated until the market stops cooperating. It's six.

Markets surge, hesitate, retreat, panic, regroup and wake up again. No single notion of "opportunity" covers all of that. Each of the six strategies inside Impulse waits for a genuinely different kind of market behaviour:

  • The Snapback — a strong move pauses, resets, and looks ready to carry on.
  • The Counterstep — the bigger direction is clear while the crowd briefly leans the other way.
  • The Second Chance — real urgency shows up twice, then price offers a deeper, calmer invitation.
  • The Resilient Dip — a sudden wave of fear lands on a market whose wider story still looks sound.
  • The Grand Alignment — several different views of the market start telling the same story.
  • The Breakaway — hesitation turns into broad, decisive commitment.

In the testing, no single one of those six produced more than 36% of the profit. That's the bit that matters. It means the result doesn't rest on one pattern happening to repeat itself — which is precisely the trap the other three fell into to varying degrees.

And the other half of the design, the half nobody ever puts on a product page: every one of those six strategies has its own reasons to do absolutely nothing.

If a move looks stretched, erratic, unsupported or exhausted, the relevant strategy stands aside. If selling is still cascading, The Resilient Dip doesn't call it a bargain. If the bigger picture is weak or divided, The Counterstep stays in its seat — no clear destination, no reason to board. Impulse steps back around major events, in poor trading conditions, and when the market is either dead quiet or genuinely chaotic.

Impulse was never built to be busy. It was built to be selective. I'm increasingly convinced that's the entire difference between a grid EA that survives a bad week and one that doesn't.

You can also turn any of the six off individually. If you'd rather run three, run three. It'll trade less often, and that's a perfectly legitimate choice.


What actually keeps a basket from running away

Good entries are only half the story. The other half is what happens when an entry turns out to be wrong — because it will, regularly, and how the EA behaves in that moment is what decides whether you're still trading next year.

Every added position is the same size as the first. This is the single most important sentence on this page. Impulse never increases its trade size to chase a losing position. Ever. If your first trade is 0.01 lots, so is the ninth. That one design decision is the precise thing that separated Impulse from EA #3 in October 2025 — EA #3's deepest positions carried eleven times its opening size, which is why seven trades were able to take out an entire account in three seconds. There is no martingale anywhere in Impulse and there never will be.

The spacing between positions is a percentage of price, not a fixed distance. Gold at $2,000 and gold at $4,300 are not the same market, and a gap that made sense at one price is nonsense at the other. Impulse's spacing rescales itself automatically to wherever gold happens to be trading. There's also an option to let spacing respond to how volatile the market currently is, widening out when things get fast and tightening when they're quiet — which is how it ships by default.

The gaps get wider the deeper a basket goes. This one is newer and I'm genuinely fond of it. Once a basket passes a set depth, each new position is placed further from the last than the one before it. So in a sustained move against you, the basket accumulates volume progressively more slowly rather than mechanically stacking at a constant interval. That's a direct reduction in worst-case exposure. The honest trade-off — and I'd rather tell you than have you find out — is that a more spread-out basket needs a slightly larger move back in your favour to recover.

The target grows as the basket grows. Older grid systems close a deep basket for the same tiny target they'd have taken on a single trade, which means you carry nine positions for two days to make what one position makes in an hour. Impulse's target scales up as positions are added, so a basket that took real risk aims for a result that reflects it. It's capped internally so it can't run away with itself.

One basket at a time. By default, when any strategy opens a basket, the other five wait their turn. No stacking, no six baskets fighting each other, no mixing positions between strategies. There is an advanced mode that lets each strategy run its own basket simultaneously, and I'd ask you to leave it alone until you've watched the EA on your own account for a while. It multiplies your exposure and I say so plainly in the manual.

The exit target is invisible to your broker. Impulse doesn't attach a take profit to each trade for the broker to see. It tracks the whole basket's combined result internally and closes everything at once when the target is reached — measured against the basket's true average entry price, not the first trade's price, so it recalculates properly as the basket builds.

If MetaTrader restarts, Impulse picks up exactly where it left off. It finds its own open positions, works out what state the basket was in, remembers which strategy opened it, and carries on managing it. VPS reboots and platform updates don't orphan your trades.

The safety nets you hope never fire

There are two margin safeguards, working at different depths. The first stops new trades opening when your account's margin level drops below a set point — it just quietly stands down and pushes you a notification. The second is the genuine last resort: if margin falls to a critical level, everything the EA holds is closed immediately. Both are on by default and I'd strongly encourage you to leave them there.

Drawdown protection is now switched on out of the box. It used to ship disabled, which in hindsight was the wrong default — I was letting people opt in to their own safety. Now it's active from the start: if the combined floating loss across everything the EA holds reaches your chosen threshold, it closes the lot. You can express that as a percentage of your balance or as a plain dollar figure, and you can choose whether it then keeps trading or stops for good.

The news filter got considerably more cautious in v2.00. It now stands down for two hours either side of a major USD release, up from one hour before and half an hour after. Anyone who has watched gold during an inflation print knows exactly why. You can also nominate keywords — FOMC, NFP, CPI and so on — so that any event carrying one of those names gets treated as high impact even if the calendar has it filed as medium.

A spread filter blocks entries whenever your broker's spread is wider than you're willing to accept, which quietly saves you from rollover and the worst of the news chaos.

A Friday filter stops new baskets opening into the weekend gap — either the whole day, or just after a certain hour if you'd rather trade the morning and stop there. There's a general time-of-day block too, so you can keep it out of any session you don't like the look of.

And you can restrict it to buys only or sells only if you have a directional view of gold you want it to respect.

Two things I'd point out that don't usually get mentioned

Impulse doesn't have to trade as a grid at all.

There's a second mode — one trade per signal, with a proper stop loss and take profit attached at entry, and nothing ever added to it. If a position goes wrong, it closes at the stop and that's the end of it. No basket, no averaging, no waiting.

Your win rate will be lower and your equity curve will look completely different. But your worst case per trade is a number you can point at before you enter, and for some people that's worth more than a prettier win percentage. If grid trading makes you uncomfortable — and it should make you at least a little uncomfortable — this mode is the same six strategies with conventional risk management bolted on. Very few grid EAs offer this. I think it's one of the best things in the product.

There's a single switch that makes the whole thing pickier.

Standard mode trades the way Impulse always has. Conservative raises the entry bar across all six strategies at once — every strategy still trades, but far fewer setups qualify and the ones that do arrive in cleaner conditions. Fewer trades, longer quiet spells, typically shallower drawdowns.

Neither is objectively correct. Conservative suits smaller accounts and cautious temperaments; Standard suits people who want the system working more often. It only affects new entries, so you can flip it whenever you like without disturbing anything already open.

Knowing what it's doing, at a glance

The on-chart panel was rebuilt from scratch for v2.00 and it's the piece I've had the most feedback on.

Across the top: what you're currently up or down on open trades, what you've made today, today's worst peak-to-trough dip as a percentage, and cumulative profit since you first started it. Balance and equity underneath. Then a configuration strip summarising direction, Friday handling, drawdown protection, trade mode, sizing, spacing, live spread and target scaling — most with tooltips carrying the full detail if you hover.

Then the part I like best: six readiness cards, one per strategy, telling you whether each is waiting, armed and watching for its trigger, actively running the current basket, or locked out while another strategy's basket is open. You can see at a glance which parts of the system are alert and which are sitting on their hands. There's a trend indicator alongside for context, and the news filter shows whether trading is currently blocked, with the offending event by name if you hover.

The daily drawdown reading only counts Impulse's own trading, so your manual trades, other EAs, and any deposits or withdrawals won't skew it. The whole panel scales itself to your monitor, which sounds trivial until you've run an EA on a high-DPI laptop and found the dashboard rendered at postage-stamp size.

The criticism I'm not going to hide from

The evaluation didn't only praise Impulse. It made one pointed criticism, and it was right.

Impulse ships with no hard limit on how deep a basket can go. The observed behaviour is impeccable — nine positions maximum, in every single run, across roughly 5,400 baskets. But "it has never done it" and "it cannot do it" are two very different statements, and I was quietly relying on the first one.

The setting to cap it exists. It's in the grid section, and it's set to unlimited by default.

My recommendation, plainly: set it to 12. Nothing in nineteen months of testing across two brokers ever came close to twelve, so it costs you nothing observed — and it converts an open-ended exposure into a bounded one. Understand the trade-off before you do it: a capped basket can no longer average its way back, so it may sit open considerably longer waiting for price to return. That's a real cost. I still think it's the right call for most accounts, and I'd rather say so here than let it sit quietly in a settings table.

While you're in there, have a proper think about the drawdown threshold too. It ships at 50% of balance, which is a backstop rather than a risk setting. Plenty of people should have it far tighter.

Running it

Gold only. Any chart timeframe — each strategy uses its own timeframes internally, so the chart you attach it to genuinely doesn't matter. You'll want a hedging account, a broker with tight spreads, and a VPS if you want it running properly around the clock.

On sizing, I'm going to give you the number from the evaluation rather than the friendlier one: 0.01 lots per $3,000 of account, and don't increase it. At that size, the worst moment observed across the entire nineteen months cost 7.9% of the account. If you run the same 0.01 lots on a much smaller balance, that same dollar figure becomes a catastrophe — the loss doesn't shrink just because your account did.

Because lot size stays fixed while your balance grows, your percentage risk falls over time on its own. That only works if you leave the size alone. Scaling up as the balance climbs keeps you permanently in the danger zone, and the danger zone is the first six to twelve months, before there's any accumulated profit to absorb a bad week.

Automatic sizing is available if you want it, across eight risk levels, and every one of them was made more conservative in v2.00. Start at the bottom. You can always move up; the reverse is considerably less pleasant.

What I'd genuinely ask of you

Don't take any of this on faith — not from me, and not from anyone else selling you an EA on this marketplace.

But do take one thing away, even if you never buy anything of mine: stop accepting backtests built on invented price movement. Ask for real tick data at 99% quality. Ask to see the same test repeated on a second broker. Ask what the deepest position stack ever got to, and whether there's an actual hard limit or just a hopeful track record. Ask whether trade size grows when positions go against it.

Two of the four systems here looked completely healthy until somebody bothered to ask those questions properly. Three of the four still hold up as things you could reasonably trade. One of them fell apart entirely.

I'd rather you interrogate Impulse hard and buy it with your eyes open than take my word for anything.

Impulse is available on the MQL5 Marketplace here: https://www.mql5.com/en/market/product/179349

Every purchase includes ongoing updates, priority support and an invite to the Starpoint Trading private community. The full manual covers every setting mentioned here in plain English, and I'm always happy to talk through the testing with anyone who asks.

Important information. Every figure on this page is a backtest result over a specific nineteen-month window on XAUUSD, at a fixed 0.01 lots. Past and simulated performance does not predict future results, and no backtest establishes future profitability.

Impulse is a rules-based trading system, not a promise of profit. Trading carries substantial risk including the possible loss of some or all of your capital. Price gaps, changing market conditions, trading costs and execution delays can all cause live results to differ from historical tests. The test window contains one shape of market cycle and no major liquidity crisis, so the worst case observed here is not the worst case possible. Grid trading in particular defers losses rather than avoiding them — a long run without a losing month should be read as a warning, not a reassurance.

This is general information only and is not financial advice. Please assess your own suitability, size your positions conservatively, and seek independent advice where appropriate.