What 3,456 Trades Taught Me About Grid EAs (And Where I Was Wrong)

My grid EA turned $100,000 into $130,816 in five weeks on demo. Up 30.7%, profit factor 2.02, max drawdown just 3.10%. That’s the headline — and headlines are where people stop reading and start believing. So I didn’t stop. I parsed all 3,456 trades. And the log told me three things that flat-out contradicted what I believed about grid trading — including one thing that contradicted a change I’d already shipped. Here’s where I was wrong.

✅ Read this first: This is a RoboForex demo, five weeks, gold + Bitcoin + US30. No real money. Demo fills aren’t live fills, and five weeks is nowhere near long enough to prove anything. I’m sharing it because the analysis changed my mind on something — not because 30% on a demo means a cent of real profit. Read to the end, because the most important part is the risk I haven’t solved yet.

The setup: 3,456 trades, 1,619 baskets

Quick definition, because the whole article depends on it: a basket (or “series”) is one grid cluster — a group of positions on the same instrument that open and close together as a unit. The EA ladders into these. 3,456 trades became 1,619 baskets. Now here’s where it gets interesting.

Grid EA demo statement — 30.7% gain, profit factor 2.02, 3.10% drawdown over 3,456 trades
The headline: $100,000 to $130,816 on demo in five weeks, profit factor 2.02, max drawdown 3.10%. Real numbers — but the trade log underneath told a more interesting story.

Finding 1: the deep baskets were the BEST baskets — and that broke my brain

Here’s what every grid trader “knows,” including me: the deeper a ladder goes, the more dangerous it is. More legs, more exposure, more chance of a blowup. I believed that so firmly I’d already shipped a version that capped the depth.

Then I grouped every basket by how many legs it reached:

LegsBasketsWin rateAvg net per basket
143391%+$42.01
283587%+$3.34
322296%+$23.01
44489%−$13.46
53589%+$112.36
62295%+$98.22
72886%−$30.37

The 5- and 6-leg baskets win almost as often as the shallow ones — and earn roughly thirty times more per basket than a 2-leg. Small samples on the 4- and 7-leg rows (44 and 28 baskets), so don’t over-read those.

The mechanism is simple once you see it. A deep ladder drags the basket’s average entry down toward the current price. A 6-leg basket might need just a 2% bounce to close green — where a single stranded trade needs price to crawl all the way back to where it started. The depth is the averaging power. It’s the engine.

btc-atm-machine-performance-dashboard-per-symbol
Performance Dashboard showing each grid EA instance tracked separately with its own drawdown

I capped the thing that was making most of the money. I’d shipped a depth cap because I believed deep ladders emptied accounts. The data says that cap was choking off the exact baskets generating the profit. So I removed it. But hold on — because if you’ve read my other posts, alarm bells should be ringing right now. They were ringing for me too.

Wait — didn’t I say deep ladders BLOW ACCOUNTS?

Yes. I did. Repeatedly. If you’ve followed this site, you’ve read my TrendLab autopsy, where deep baskets blew a real account — a ladder that ran to 8.81 lots and detonated. You’ve read my v5 autopsy where a recovery ladder “manufactured losses.” And now I’m telling you deep baskets are the profit engine? Have I lost the plot?

No — and reconciling these two things is the most important idea in this whole article, so read this part twice. Depth isn’t the risk. Depth without a bound, in a trending market is the risk.

Both are true. They’re the same mechanic in two different market conditions. Deep grids are a profit machine when price ranges and retraces — and a wrecking ball when price trends against you with no bound. My earlier autopsies weren’t wrong. This isn’t wrong either. The variable I’d been missing was the market regime, not the depth number.

Grid EA panel showing a live basket with its legs, lots, entries and floating profit
What a “basket” actually is: several laddered positions on one instrument, managed as a unit. This is the deep-basket averaging power the data revealed.

Finding 2: winners close fast, and the tail is short

Across all 1,619 baskets, here’s how long they stayed open:

Nothing — nothing — stayed open longer than 6.63 days. That’s a useful shape: a genuinely old basket is rare, not just the low end of some wide, scary distribution.

Series timeout panel showing basket ages with one flagged near the 10-day limit
The 10-day timeout in action — set deliberately above the 6.63-day historical maximum, so it only ever clears a truly abandoned basket, never a working one.

Finding 3: every time-stop I tested LOST money

This is the one I didn’t see coming, and it’s the one most likely to save you from an expensive “safety” feature.

The obvious move from Finding 2: “close anything older than N days.” Sounds responsible, right? So I tested it against the real history — what would each cutoff have actually saved versus destroyed?

Cut atBaskets hitLosses avoidedProfits forfeitedNet effect
3 days12$4,375$5,174−$799
4 days4$1,275$4,261−$2,987
5 days2$0$3,907−$3,907
7 days0$0

Every cutoff that fired at all lost money. Cutting at 5 days would have forfeited $3,907 and prevented exactly nothing — both those “old” baskets closed in profit.

Of the 26 baskets that ran past 2 days, 21 closed green. Old baskets weren’t sick. They were doing exactly what a grid does: waiting. And a timer would’ve murdered them right before payday.

Here’s the trap, and it’s a sneaky one: a rule that closes trades on a timer feels responsible. But on this data it would’ve turned a working system into a worse one — and you’d never know. The losses it “prevented” would be visible and reassuring. The profits it destroyed would be invisible. You’d feel safe while quietly bleeding.

If you take one thing from this whole article: before you bolt a safety rule onto a system, test what it would have COST you on your own history — not just what it would have saved. The prevented losses shout. The forfeited profits stay silent.

Account Protector panel showing balance versus equity and open floating positions
The protector, honestly labeled: it shows balance vs equity so I can see floating exposure. It’s still tuned to a kind month of data — the real floating-loss bound is the work ahead.

Finding 4: the instrument that traded the most, earned the least

US30 traded more volume than Bitcoin and gold combined — and produced the smallest profit while paying more in swap and commission than the other two together. Why? Not strategy. A contract detail: on this account US30 starts at 0.1 lots where gold and BTC start at 0.01. Every ladder step was ten times bigger than intended. The EA wasn’t choosing that risk — the contract spec forced it.

Check this on your own account right now: right-click each symbol → Specification in MT4/MT5. A “0.01 minimum” on one instrument can quietly be 0.1 on another at the same broker — and your carefully-calculated position sizing silently goes out the window.

Finding 5: same EA, two brokers, opposite results

Same weeks, a comparable setup on a second broker’s demo. That account was down roughly $50,000 while this one was up $30,000. Tempting to scream “broker manipulation!” — but I won’t, because the obvious conclusion is probably wrong. The losing account wasn’t running the same portfolio: no US30, and heavily short Bitcoin during a stretch where BTC ripped from ~$60k to ~$79k — a 25% move in three weeks. A patient grid on the wrong side of that sits underwater on anybody’s server. Some of the gap is execution; some is portfolio and timing. I can’t cleanly separate them, so I won’t pretend to. But running the same system in two places surfaced a weakness one account alone would’ve hidden.

Grid EA profit by pair — US30 traded the most lots but earned the least per lot at $18 versus BTC's $170
The efficiency column tells the real story. US30 traded 349 lots — more than Bitcoin and gold combined — to produce the smallest profit, earning just $18 per lot against Bitcoin’s $170. The 0.1 minimum lot is forcing nine times the intended exposure for a fifth of the return.

What I actually changed

The risk I have NOT solved — read this before you get ideas

Here’s the honest gap, and I’m putting it in bold because it matters more than the 30%: removing the depth cap means these deep baskets now run uncapped. They worked here because the market retraced for five weeks. I have not yet solved the case where a market trends hard against a deep basket and doesn’t come back — which is exactly the scenario that blew my accounts before. My 10-day timer does not fix this. A timer bounds patience, not loss. That’s a different problem.

Let me be blunt about why this is still on demo. The protector I built so far is tuned to a kind, retracing market — because that’s the only month of data I have. The real bound this EA needs before it ever touches real money is a floating-loss limit: a rule that closes a basket when its drawdown hits a set share of equity, regardless of age or depth. That’s the thing that would’ve caught the old disasters. I haven’t built it yet, on purpose — because I’ve learned that adding heavy protection too early just strangles the EA and manufactures bad days (see Finding 3 — that’s not a hunch, it’s in the data). I want to see the full potential first, then add the real bounds with more data. That’s the plan. Demo until then.

And the number people will ask about: if this had run on a $1,000 cent account and behaved like this demo, it’d be up around 30%. But that “if” is doing enormous work. It’s a demo. One month proves nothing. A single sustained trend into an uncapped deep basket could erase a chunk of that fast — and until I’ve built the floating-loss bound and tested it, that risk is real and unsolved. I’d rather tell you that than sell you the 30%.

Where I landed

I was wrong twice in this analysis. I shipped a depth cap the data contradicted. And I nearly added a spacing rule before checking that winning baskets actually ladder tighter than losing ones. Both sounded sensible. Both got refuted by my own trade log. That’s the whole argument for parsing your history instead of reasoning about it from your armchair — the log doesn’t care what sounds smart.

The system looks good on demo. The deep-basket finding is real. And the biggest risk is still ahead of me, named and unsolved. I’ll publish what happens next — the floating-loss bound, the forward test, all of it — winners and losers, same as always.

Important: All results are from a demo account. Demo trading does not reflect real execution, slippage, or liquidity. Grid strategies carry a very high risk of large or total loss, especially in trending markets — as documented elsewhere on this site. The cent-account figure is a hypothetical illustration, not a result or a promise. Past and demo performance does not indicate future results. Nothing here is financial advice. Never trade money you can’t afford to lose.