Finemark / Strategy Lab

The Strategy Lab Free & read-only - no login

Seven ways to trade gold, ranked honestly. Three of them lose money.

This is the full, public Strategy Lab. Every approach below was run over the same 22-year backtest of XAUUSD (2004 to 2026) and ranked by Sharpe ratio where a precise figure exists. The ones we could not rank with a clean decimal are placed by their qualitative verdict and marked approximate. No account needed. All data is on this page.

How to read this

  • Sharpe ratio is return per unit of risk. Higher is better. Around 0.7 to 0.9 over a full 22-year cycle is solid for a single-asset trend follower; a number above 1.5 on a short window usually means the window was a one-way bull run, not a robust edge.
  • The leaderboard is ranked by 22-year Sharpe for the strategies where we have a documented figure. For the qualitative ones (decent / weak / candidate) we did not compute a clean full-cycle decimal, so we place them by verdict and mark the ordinal as approximate. We would rather show an honest gap than fabricate a tidy column.
  • The losers stay in. Mean-reversion on gold is dead, and we keep it on the board with a red verdict because that negative result is evidence, not an embarrassment.
  • Expand any row for the plain-English explainer, the edge thesis, the honest gold verdict, the exact formula, the entry / exit / stop / sizing rules, the parameter glossary, and the known risks.
  • Backtest is not the future. Every figure here is from a 22-year backtest (2004 to 2026); past results are not future results. The one strategy we run live has roughly one week of demo-account history, a sample far too small to mean anything.
Live Fallback Candidate Weak on gold Dead on gold Baseline

The recency-bias trap

Same strategy. Two windows. Two very different numbers.

This is the single most important thing to understand before you read a leaderboard anywhere, including ours. Our live strategy, Supertrend 10/3 long-only, scores about Sharpe 1.7 on a one-year intraday (M15) window and about 0.89 on the honest 22-year H4 window. Both are the same rules on the same asset. The only thing that changed is the slice of history you measure.

1-year window (M15)
~1.7
Sharpe. Looks extraordinary. The window is almost entirely a 2023 to 2024 one-way bull run, so it flatters the number. This is what most gold signal sellers show you.
22-year window (H4)
0.89
Sharpe. Lower, and real. This window contains the 2013 crash, the 2022 sideways grind, and fourteen years of mixed regimes. This is the number we run on.

Showing the 1-year number instead of the 22-year number is not an accident, it is a selection. A strategy that only looks good on the most recent bull run has not been tested through a drawdown. We publish the lower number on purpose. Both figures are from backtests; past results are not future results.

Leaderboard - ranked by 22-year Sharpe 22-year backtest (2004-2026); past results are not future results
1 Supertrend 10/3 LO Trend The live pick. ATR-band trend follower, long-only, on H4. Live 0.8922yr Sharpe
Live family: trend horizon: swing (H4, validated) long-only
In plain English

A trend-following strategy. It takes the midpoint of each bar, builds a band above and below it at three times the recent volatility (ATR over 10 bars), and locks that band in the trend direction so it only loosens, never tightens. That locked band is the trailing stop. When price closes above it, the trend reads up and the strategy goes long; when price breaks the band, it exits to cash. Long-only, so the worst case is sitting flat, never short.

The edge thesis

Same trend-persistence premise as a breakout system, but the stop trails on volatility (ATR) rather than on a fixed-bar low. That adapts the stop distance to the current regime: tighter in calm markets, wider in volatile ones.

The gold verdict

Winner of the 2026-05-25 robustness gauntlet on H4: +798% cumulative return, Sharpe 0.89, max drawdown -20% over 22 years. It beats Donchian (+483% / 0.75 / -23%) on every axis. The Sharpe plateau is broad (0.75 to 0.97 across period 7 to 20 and multiplier 2.0 to 3.5) and tight, with no isolated hotspots, which is the signature of a real edge rather than a curve-fit. It generalizes across XAUUSD, XAUEUR and XAUAUD. Promoted live 2026-05-26. All figures from a 22-year backtest (2004-2026); past results are not future results.

The formula
HL2   = (high + low) / 2
ATR   = Wilder's ATR(period=10)
upper = HL2 + 3 * ATR
lower = HL2 - 3 * ATR
# Final bands lock in the trend direction:
fu[t] = min(upper[t], fu[t-1])  if close[t-1] <= fu[t-1]  else upper[t]
fl[t] = max(lower[t], fl[t-1])  if close[t-1] >= fl[t-1]  else lower[t]
# Direction flip on close vs prior locked band:
if close[t] > fu[t-1]: direction = +1
if close[t] < fl[t-1]: direction = -1
Supertrend line = fl when direction = +1, fu when direction = -1
Entry / exit / stop / sizing
Entry
Direction flips to +1 (close crosses above the upper locked band), go long.
Exit
Direction flips to -1 (close breaks the trailing lower band), go flat.
Stop
The Supertrend line itself (the locked lower band while long). live.py uses Supertrend.long_stop() for percent-risk sizing.
Position = 1% of equity / (close - long_stop) * value_per_price, where value_per_price comes from MT5's order_calc_profit.
Sizing
Parameter glossary
periodATR look-back. 10 is the textbook setting and the plateau center in our gauntlet.
multiplierBand width in ATR units. 3.0 is the plateau center; 2.0 gives tight stops and whipsaw, 4.0 gives wide stops and missed flips.
allow_shortFalse on gold (long-only is the validated regime).
The risks
  • A short-window M15 Sharpe looks high (about 1.7 gross, lower after realistic cost) but is bull-window-flattered. The trustworthy full-cycle figure is the H4 22-year 0.89, not the M15 demo number.
  • The recursive band lock means the line can sit very far from price in long calm trends, so stop distance can become uncomfortably wide.
  • ATR over 10 bars on a fast timeframe reacts quickly to news spikes and can flip out near a real CPI or NFP print.
2 Donchian 20/15 LO Trend The validated fallback. Turtle-style channel breakout, long-only. Fallback 0.7522yr Sharpe
Fallback family: trend horizon: swing (H4) long-only
In plain English

The classic Turtle-style channel breakout, long-only. Enter when price closes above the highest high of the last 20 closed bars; exit when it closes below the lowest low of the last 15 bars. The exit channel is the stop, so there is no separate stop-loss.

The edge thesis

Trend persistence: a new 20-bar high is statistically more likely to be followed by another up-move than by mean reversion, especially in commodities with positive drift. The payoff is asymmetric, many small stop-outs and a few large winners that ride the channel up.

The gold verdict

Real edge on H4: Sharpe 0.75, +483% return, max drawdown -23% versus buy-and-hold -45%. The parameter plateau is broad (Sharpe 0.7 to 0.9 across the full cycle), which means it is not curve-fit, and it generalizes across XAUUSD, XAUEUR and XAUAUD. Pick the plateau middle (around 20/15), never the in-sample optimum. It was the original live strategy, then demoted on 2026-05-26 when Supertrend won the head-to-head; kept as the validated fallback. All figures from a 22-year backtest (2004-2026); past results are not future results.

The formula
upper_entry = max(high[t-20 : t])   # excludes current bar (no look-ahead)
lower_exit  = min(low[t-15  : t])
if flat and close[t] > upper_entry: -> LONG
if long and close[t] < lower_exit:  -> FLAT
Entry / exit / stop / sizing
Entry
On close above the 20-bar high (prior bars only).
Exit
On close below the 15-bar low. No profit target.
Stop
The 15-bar low at time of fill. This is the strategy stop, used for percent-risk sizing in live.py.
Sizing
Position = 1% of equity / (close - lower_exit) * value_per_price.
Parameter glossary
entryLook-back for the entry channel. Higher means fewer, slower entries that ride bigger moves but pay more whipsaw cost.
exitLook-back for the exit channel. Shorter than entry gives the classic Turtle asymmetry, letting winners run but cutting losers fast.
allow_shortFalse on gold. Shorting an uptrending asset has been a graveyard in our bake-off.
The risks
  • Whipsaw periods (range-bound months) bleed via repeated false breakouts.
  • Bull-flatter bias: the 22-year window is mostly up, so absolute return looks great, but the strategy cannot profit in a sustained bear, it just sits flat.
  • Donchian channel exits give back open profit before flipping flat. This is intentional, but it feels worse than a trailing stop.
3 Buy & Hold XAUUSD Baseline The benchmark every strategy must beat. Always long, never trades. Baseline 0.7422yr Sharpe
Baseline family: baseline horizon: any long-only
In plain English

The benchmark every gold strategy must beat. Always long, never trades. The Sharpe and max-drawdown numbers come from the gross spot price curve with no leverage and zero turnover cost.

The edge thesis

Not a strategy. It is the bar to clear: if a long-only trend follower cannot deliver a comparable return at materially less drawdown, the strategy is not earning its complexity.

The gold verdict

Returns the largest absolute gain over 2004 to 2026, +1090% cumulative as gold quintupled in real terms, with Sharpe 0.74. But it pays for that with a -45% max drawdown through the 2011 to 2015 bear. Any acceptable long-only trend follower must roughly halve that drawdown. All figures from a 22-year backtest (2004-2026); past results are not future results.

The formula
position[t] = +1 for all t
return[t]   = close[t]/close[t-1] - 1
Entry / exit / stop / sizing
Entry
Hold long from the first bar.
Exit
Never exits.
Stop
None. This is buy-and-hold; drawdowns are absorbed in full.
Sizing
Full notional, no leverage.
Parameter glossary

No parameters. Buy-and-hold has nothing to tune.

The risks
  • Full exposure to gold's structural drawdowns (the 2011 to 2015 cycle was -45%).
  • No regime filter, so you stay long right through the macro top.
  • Carry cost is zero in a backtest but nonzero with a real broker (swap fees on a long XAUUSD CFD).
~4 MA 20/50 LO Trend Classic fast/slow moving-average crossover, long-only. Candidate Decent baselineverdict, not a precise 22yr Sharpe
Candidate family: trend horizon: swing long-only rank ~4 (approximate, qualitative)
In plain English

Classic fast/slow Simple Moving Average crossover. Go long on a golden cross (the fast average crossing up over the slow one). The short side, a death-cross short, is not enabled here.

The edge thesis

The oldest documented trend filter. SMA crossovers are slower than EMA or MACD but also less noisy, good in slow-moving regimes and bad in fast ones.

The gold verdict

A decent baseline trend filter on H4. Not the best, but a useful sanity check: if a fancy strategy cannot beat a 20/50 SMA cross, it is not earning its complexity. We have a qualitative read on this, not a clean full-cycle Sharpe, so its rank here is approximate. Any rank claim is from a 22-year backtest (2004-2026); past results are not future results.

The formula
fast = SMA(close, 20)
slow = SMA(close, 50)
golden cross: fast crosses up over slow -> LONG
death cross : fast crosses down under slow -> FLAT (in LO mode)
Entry / exit / stop / sizing
Entry
fast > slow AND fast[t-1] <= slow[t-1] (the actual cross, not a state check).
Exit
fast < slow AND fast[t-1] >= slow[t-1].
Stop
None defined.
Sizing
Not wired live; equal-weight in the backtest.
Parameter glossary
fastShort SMA window. Must be less than slow.
slowLong SMA window.
The risks
  • Lag: SMAs weight every bar in the window equally, so the cross fires well after the trend has started.
  • Whipsaw in ranges, with repeated crosses and no follow-through.
5 RSI reversion L/S Mean-reversion Buy oversold, short overbought, exit at the midpoint. Long and short. Dead on gold Negativeloses almost every year
Dead on gold family: mean-reversion horizon: any (none profitable) long and short
In plain English

Classic Wilder RSI(14) mean-reversion. Buy when RSI drops below 30 (oversold), short when RSI rises above 70 (overbought), and exit when RSI returns to 50.

The edge thesis

Markets overshoot in both directions; extreme oscillator readings are supposed to precede a reversion to the mean. It is the textbook strategy in most retail trading books, which is part of why we keep it on the board as a control.

The gold verdict - dead on gold

Confirmed dead on gold (2026-05-25, stress_rsi.py + stress_trend.py + the 22-year bake-off). Shorting overbought RSI gets steamrolled by the structural uptrend; buying oversold RSI underperforms a flat position because the oversold bar is often the start of a real downtrend, not the bottom. Long-only is less bad but still loses 20% to 50% against buy-and-hold over the same window. It is red almost every year on the Sharpe-by-year heatmap. Do not deploy. This is a documented negative result from a 22-year backtest (2004-2026); past results are not future results, including the bad ones.

The formula
delta = close.diff()
gain  = max(delta, 0)
loss  = -min(delta, 0)
avg_gain = Wilder-EMA(gain, 14)
avg_loss = Wilder-EMA(loss, 14)
RS  = avg_gain / avg_loss
RSI = 100 - 100 / (1 + RS)
if flat and RSI < 30: -> LONG
if flat and RSI > 70: -> SHORT
if long and RSI >= 50: -> EXIT
if short and RSI <= 50: -> EXIT
Entry / exit / stop / sizing
Entry
RSI extreme: below 30 to go long, above 70 to go short.
Exit
RSI returns through 50.
Stop
None defined. Mean-reversion strategies typically run until reversion or stop-out.
Sizing
Not wired live; it would not be deployed.
Parameter glossary
periodRSI smoothing. 14 is Wilder's original.
oversoldLong-entry threshold. Lower means fewer, stronger signals.
overboughtShort-entry threshold.
exit_levelReversion target. 50 is the neutral RSI midpoint.
allow_shortSymmetric mean reversion needs the short side; without it the strategy is structurally short-volatility on a long-drift asset.
The risks
  • Trends in gold can keep RSI overbought (above 70) for weeks at a time, so you stay short and bleed.
  • Mean reversion as a thesis assumes a stationary regime; gold is not stationary.
6 Bollinger reversion Mean-reversion Buy the lower band, short the upper band, exit at the mean. Long and short. Dead on gold Negativered across most years
Dead on gold family: mean-reversion horizon: any (none profitable) long and short
In plain English

Bollinger mean reversion. Buy when close drops below the lower band (2 sigma below the mean), short when close rises above the upper band, and exit at the middle band. Same indicator as Bollinger breakout, with the opposite trade direction.

The edge thesis

Standard-deviation bands measure how unusual a move is. The reversion thesis says unusual moves snap back; the breakout thesis says they continue. Both cannot be right on the same asset.

The gold verdict - dead on gold

Same verdict as RSI: dead on gold. The snap back fails because gold's moves persist longer than 2 sigma would suggest. The 22-year heatmap is red across most years. This is a documented negative result from a 22-year backtest (2004-2026); past results are not future results, including the bad ones.

The formula
mid   = SMA(close, 20)
stdev = STDEV(close, 20)
upper = mid + 2.0 * stdev
lower = mid - 2.0 * stdev
if flat and close < lower: -> LONG
if flat and close > upper: -> SHORT
if long and close >= mid:  -> EXIT
if short and close <= mid: -> EXIT
Entry / exit / stop / sizing
Entry
Band touch: minus 2 sigma to go long, plus 2 sigma to go short.
Exit
Price reverts to the middle band.
Stop
None defined.
Sizing
Not wired live.
Parameter glossary
periodBollinger window.
num_stdBand width.
The risks
  • Same trend-versus-reversion mismatch as RSI on gold.
7 Z-score reversion LO Mean-reversion Buy when price is 2 sigma below its mean, exit back at the mean. Long-only. Dead on gold Negativeloses to a flat position
Dead on gold family: mean-reversion horizon: any (none profitable) long-only
In plain English

Z-score reversion, long-only. When close is 2 standard deviations or more below its 20-bar mean, go long; exit when the z-score returns to 0. Mathematically equivalent to a Bollinger lower-band reversion, exposed through a different parameterization.

The edge thesis

Same as Bollinger reversion: statistically extreme positions revert to the mean. Long-only avoids the catastrophic short side that kills long-and-short reversion on gold.

The gold verdict - dead on gold

Long-only restraint helps it survive against RSI long-and-short, but it still loses to a flat position and badly to a trend follower. The snap-back premise fails on gold regardless of which side you trade. This is a documented negative result from a 22-year backtest (2004-2026); past results are not future results, including the bad ones.

The formula
mu    = SMA(close, 20)
sigma = STDEV(close, 20)
z     = (close - mu) / sigma
if flat and z < -2.0: -> LONG
if long and z >= 0:   -> EXIT
Entry / exit / stop / sizing
Entry
z drops below -2 (oversold).
Exit
z returns to 0 (the mean).
Stop
None defined.
Sizing
Not wired live.
Parameter glossary
periodWindow for the rolling mu and sigma.
entry_zEntry threshold in sigmas. Higher means fewer, deeper signals.
allow_shortFalse. Shorting strength on gold is the standing failure mode.
The risks
  • Same as Bollinger reversion: the snap back does not snap on gold.
All figures on this leaderboard are from a 22-year backtest (2004-2026, 33,616 H4 bars). Backtest results are hypothetical, simulated on historical data, and do not account for all slippage, execution costs, or real-market conditions. Past results are not future results. Where a clean full-cycle Sharpe was not computed (the candidate and weak-on-gold rows), the ordinal rank is approximate and based on the qualitative verdict, not a precise decimal. The one strategy we run live has roughly one week of demo-account history, a sample too small to carry any statistical weight, and it is currently slightly negative. We show it anyway.

Founding members

The Lab is free forever. The live dashboard is what you join for.

The Strategy Lab you just read stays public and free, no login. What founding members get is the live side: the demo dashboard that compares the live result to the 22-year backtest in real time, says behind when it is behind, and shows every fill as it happens.

Founding members who join the Analyst tier now get the rate locked for 12 months from first payment. We are not running a countdown timer. We would rather have a small group who understand what they are looking at.

No profit guarantee. No lock-in. Cancel any time. The subscription is a fixed-price software licence; it is not an investment deposit and gives you no claim to any profit. Today Finemark has one user: its builder.