From the Lab: A Robust Gold Strategy that has worked Since 2002
1709 Trades Over 23 Years With 1.51 PF 15.96 Ret/DD and 45% win rate
💬 Message to readers
This week we’ve got a 30-minute breakout strategy for Gold. And no, this isn’t “trade the hot market of the month.” Please don’t run a system just because an asset is trending on social feeds. Think in portfolios. As Ray Dalio puts it, diversification is the closest thing to a free lunch.
Gold earns its seat in a portfolio because it often behaves differently to equities and bonds, especially in uncertainty. That’s exactly what we’re seeing now.
We keep it simple. Over complicated systems look great in a backtest and then fall apart live. We’d rather run simple, robust ideas across many markets than bet on a single hero system. Robustness first; the portfolio does the heavy lifting.
📖 The Idea
The idea is simple: only trade when strength is there, make price prove it with a breakout, cap risk with an ATR stop, and exit when strength fades.
One entry, one stop, one exit. It runs long or short with mirror rules and flattens at 15:00.
🧠 How it works in plain English
Keep it simple. One entry, one stop, one exit. It works long and short with mirror rules.
We check trend strength. When strength permits, we place a stop order at a breakout level.
Price must trade through that level for us to enter.
Risk is capped with a ATR stop that adapts to volatility.
We exit on a open based average once the original strength condition fades.
All positions are flattened at 15:00 exchange time, and new orders can arm and trigger any time before that cut off, including overnight.
Our simulations consistently show that excluding overnight entries negatively impacts performance. While the data favors a 24-hour approach, you may still opt to restrict entries to the day session based on your preference
🎯 Why this fits GC
Gold spends most of its time coiled until it explodes. Since the biggest moves are around macro data, we use breakout entries to ensure we only catch the real velocity.
A trend filter acts as a noise canceller, keeping you sidelined during the chop and only “arming” the system when there’s genuine momentum.
On GC, ATR-based sizing isn’t optional; it’s a necessity. It allows the stop to breathe during high volatility spikes and contract when the market settles.
To handle Gold’s habit of aggressive runs followed by immediate reversals, a smoothed exit captures profit the moment strength weakens.
We flatten the book at 15:00 to lock in the day’s liquidity and dodge the “dead zone” drift and overnight gap risk.
Whether it’s ripping on inflation or dumping on a strong dollar, the logic is perfectly symmetric for both sides.
📈 Results of strategy since 2002
Equity of strategy (30-minute bars)
I also want to add that 2002 to 2007 was left completely untouched (true Out Of Sample). We ran the model once and did not use that window in development. That is about as close to live as you can get, and the equity over that stretch speaks for itself.
🧪 Robustness testing
I trust results only after they pass the usual Stress tests.
Monte Carlo parameters
We vary the parameters to test stability; if performance holds, it’s a green flag that the strategy isn’t reliant on precise settings. (The tight bands shows us the strategy is very stable and adjusting the parameters will still give us a positive result)
Monte Carlo extreme parameter stress test
In this test we are more looking to see what happens if we stretch the parameters to see if the strategy falls apart.
Monte Carlo randomise and skip trades
We shuffle the order of historical trades and randomly remove some to mimic misses, slippage, or bad fills. If performance stays healthy, the edge is not just luck in trade order. Even at 95% we still have a healthy return to max drawdown.
Walk Forward Matrix
We test the strategy by dividing historical data into rolling periods, optimising parameters on one period, then testing on the next unseen period. When results stay consistent across multiple windows, it proves the strategy adapts to changing markets rather than being curve-fit to past data.
System Parameter Permutation test
We run many nearby parameter combinations around the chosen parameters. If most versions work, the model is stable and not tuned to one narrow sweet spot. As you can see our net profit is within the range of our median which shows that we havent choosen lucky parameters for our strategy.
Results on alternative market (To check if robust or overfit) run on SI (Silver)
We apply the same model on SI futures without adjusting the model (raw out of sample). If the results are acceptable, the idea is general and not tied only to GC.
Results and Equity with Slippage and Commision + Inside bar back testing
Ready to put it to work? The full EasyLanguage code is below.
Dont forget this code can be easily converted to any other trading platform using LLMs and of course this can be run on Micro aswell.
By request, I’ll now include a clear plain English breakdown of each strategy with every parameter so you can rebuild it on your platform.










