Variations

Before you trust any backtest — including ours — look at this. We took the four most famous strategies, ran them with 9,393 different settings across 101 stocks, then scored every single one on years of market data the search had never seen.

Beat buy & hold on unseen data 21.3%

Only 86 of 404 best-in-class settings stayed ahead of simply buying and holding the stock. That low number is the finding — pick the winner out of a big search and you're usually picking an accident.

9,393settings tested
404best-of finalists
86still won on unseen data
101stocks
4,392days of history

Bollinger bands

Trade the band: buy the lower band, exit at the middle or upper.

26 of 101 beat buy & hold 25.7%

Donchian breakout

Buy an N-day high, sell an N-day low — the classic turtle breakout.

15 of 101 beat buy & hold 14.9%

Moving-average cross

Buy when the fast average crosses above the slow one, sell when it crosses back.

19 of 101 beat buy & hold 18.8%

RSI mean-reversion

Buy when RSI says oversold, sell when it says overbought.

26 of 101 beat buy & hold 25.7%
🏆 Winners only All finalists Bollinger bands Donchian breakout Moving-average cross RSI mean-reversion
StockStrategy & settings Strategy returnBuy & hold DifferenceSharpeWorst drop
NVDA Moving-average cross
fast 50 · slow 150
1,292% 1,499% -207 pts 1.40 -36% lost
MU Moving-average cross
fast 50 · slow 100
1,295% 1,082% +214 pts 1.38 -43% beat
META Moving-average cross
fast 10 · slow 75
244% 168% +76 pts 1.16 -27% beat
QQQ Moving-average cross
fast 40 · slow 150
117% 138% -21 pts 1.04 -16% lost
CSCO Moving-average cross
fast 40 · slow 150
153% 178% -25 pts 0.98 -20% lost
LLY Moving-average cross
fast 20 · slow 100
205% 535% -331 pts 0.96 -29% lost
AMAT Moving-average cross
fast 20 · slow 100
295% 439% -144 pts 0.94 -36% lost
AVGO Moving-average cross
fast 50 · slow 100
314% 846% -532 pts 0.93 -43% lost
GE Moving-average cross
fast 15 · slow 50
164% 455% -290 pts 0.91 -37% lost
AMD Moving-average cross
fast 30 · slow 150
360% 548% -188 pts 0.91 -37% lost
NFLX Moving-average cross
fast 10 · slow 150
197% 50% +147 pts 0.89 -29% beat
SPY Moving-average cross
fast 10 · slow 75
57% 104% -46 pts 0.82 -20% lost
CAT Moving-average cross
fast 50 · slow 100
140% 366% -226 pts 0.80 -38% lost
GS Moving-average cross
fast 30 · slow 50
108% 262% -153 pts 0.77 -37% lost
GILD Moving-average cross
fast 50 · slow 100
106% 136% -30 pts 0.77 -25% lost
JPM Moving-average cross
fast 30 · slow 50
86% 145% -59 pts 0.77 -22% lost
SPG Moving-average cross
fast 50 · slow 100
103% 140% -37 pts 0.76 -27% lost
MPC Moving-average cross
fast 5 · slow 50
101% 333% -231 pts 0.72 -44% lost
MRK Moving-average cross
fast 40 · slow 75
79% 84% -5 pts 0.72 -20% lost
WMT Moving-average cross
fast 50 · slow 75
84% 188% -104 pts 0.71 -28% lost
RTX Moving-average cross
fast 20 · slow 75
79% 176% -97 pts 0.70 -23% lost
GOOGL Moving-average cross
fast 5 · slow 50
100% 262% -162 pts 0.69 -47% lost
XOM Moving-average cross
fast 40 · slow 150
100% 204% -104 pts 0.67 -25% lost
CVX Moving-average cross
fast 40 · slow 50
83% 113% -30 pts 0.67 -31% lost
AAPL Moving-average cross
fast 10 · slow 50
67% 153% -86 pts 0.65 -24% lost
MS Moving-average cross
fast 30 · slow 50
70% 220% -150 pts 0.59 -33% lost
LMT Moving-average cross
fast 5 · slow 50
55% 73% -18 pts 0.59 -22% lost
ISRG Moving-average cross
fast 5 · slow 100
71% 71% +0 pts 0.59 -37% beat
COP Moving-average cross
fast 30 · slow 75
79% 155% -76 pts 0.57 -37% lost
JNJ Moving-average cross
fast 40 · slow 50
38% 69% -32 pts 0.55 -19% lost
TSLA Moving-average cross
fast 10 · slow 50
91% 67% +24 pts 0.54 -50% beat
T Moving-average cross
fast 10 · slow 50
53% 40% +14 pts 0.53 -26% beat
FDX Moving-average cross
fast 40 · slow 200
60% 59% +0 pts 0.53 -27% beat
NEM Moving-average cross
fast 30 · slow 150
74% 99% -25 pts 0.50 -52% lost
HD Moving-average cross
fast 5 · slow 50
40% 29% +11 pts 0.48 -21% beat
C Moving-average cross
fast 5 · slow 75
46% 136% -90 pts 0.46 -52% lost
WFC Moving-average cross
fast 10 · slow 200
51% 139% -88 pts 0.44 -40% lost
D Moving-average cross
fast 50 · slow 150
36% 17% +19 pts 0.44 -28% beat
DUK Moving-average cross
fast 10 · slow 200
27% 63% -36 pts 0.39 -25% lost
MCD Moving-average cross
fast 20 · slow 50
23% 44% -21 pts 0.38 -14% lost
AXP Moving-average cross
fast 20 · slow 200
36% 158% -122 pts 0.37 -39% lost
AMGN Moving-average cross
fast 30 · slow 75
27% 64% -36 pts 0.35 -20% lost
NOW Moving-average cross
fast 20 · slow 100
24% -14% +37 pts 0.34 -42% beat
ORCL Moving-average cross
fast 50 · slow 150
36% 198% -162 pts 0.33 -46% lost
IBM Moving-average cross
fast 30 · slow 75
27% 162% -135 pts 0.33 -25% lost
SCHW Moving-average cross
fast 40 · slow 50
26% 53% -27 pts 0.31 -36% lost
BLK Moving-average cross
fast 10 · slow 75
23% 64% -41 pts 0.31 -22% lost
MSFT Moving-average cross
fast 40 · slow 50
22% 72% -49 pts 0.30 -31% lost
ADBE Moving-average cross
fast 40 · slow 150
23% -56% +79 pts 0.30 -37% beat
DIA Moving-average cross
fast 30 · slow 75
15% 73% -58 pts 0.30 -26% lost
FCX Moving-average cross
fast 40 · slow 50
22% 112% -90 pts 0.28 -49% lost
KO Moving-average cross
fast 50 · slow 75
15% 84% -69 pts 0.27 -28% lost
COST Moving-average cross
fast 20 · slow 50
17% 211% -193 pts 0.26 -34% lost
TMUS Moving-average cross
fast 30 · slow 75
17% 53% -35 pts 0.26 -38% lost
SO Moving-average cross
fast 15 · slow 100
15% 88% -73 pts 0.26 -26% lost
INTU Moving-average cross
fast 10 · slow 200
17% -27% +44 pts 0.25 -44% beat
INTC Moving-average cross
fast 10 · slow 50
11% 109% -98 pts 0.24 -69% lost
LIN Moving-average cross
fast 50 · slow 200
15% 106% -91 pts 0.24 -30% lost
EOG Moving-average cross
fast 40 · slow 75
15% 145% -129 pts 0.24 -43% lost
UNH Moving-average cross
fast 50 · slow 200
11% 20% -9 pts 0.20 -35% lost
BA Moving-average cross
fast 5 · slow 50
8% -12% +20 pts 0.18 -35% beat
DE Moving-average cross
fast 50 · slow 100
4% 69% -66 pts 0.15 -36% lost
LOW Moving-average cross
fast 10 · slow 50
6% 33% -28 pts 0.15 -32% lost
BAC Moving-average cross
fast 5 · slow 75
2% 67% -64 pts 0.11 -43% lost
IWM Moving-average cross
fast 30 · slow 100
3% 36% -34 pts 0.11 -33% lost
PEP Moving-average cross
fast 10 · slow 100
1% 24% -24 pts 0.08 -26% lost
SLB Moving-average cross
fast 5 · slow 150
-11% 108% -119 pts 0.07 -55% lost
ABBV Moving-average cross
fast 50 · slow 200
-4% 74% -78 pts 0.06 -28% lost
CRM Moving-average cross
fast 30 · slow 100
-5% -26% +20 pts 0.05 -42% beat
QCOM Moving-average cross
fast 15 · slow 50
-13% 82% -95 pts 0.04 -51% lost
BMY Moving-average cross
fast 50 · slow 200
-5% 9% -13 pts 0.03 -29% lost
TXN Moving-average cross
fast 15 · slow 50
-10% 99% -109 pts 0.03 -44% lost
O Moving-average cross
fast 10 · slow 100
-3% 32% -35 pts 0.02 -37% lost
SHW Moving-average cross
fast 15 · slow 100
-5% 40% -44 pts 0.02 -39% lost
MMM Moving-average cross
fast 10 · slow 100
-10% 22% -31 pts 0.01 -42% lost
V Moving-average cross
fast 10 · slow 75
-6% 66% -72 pts 0.01 -44% lost
NEE Moving-average cross
fast 40 · slow 200
-9% 39% -48 pts -0.00 -42% lost
SBUX Moving-average cross
fast 20 · slow 75
-10% 6% -16 pts -0.01 -40% lost
MDT Moving-average cross
fast 15 · slow 100
-6% -22% +16 pts -0.01 -25% beat
ABT Moving-average cross
fast 5 · slow 150
-7% -19% +12 pts -0.02 -25% beat
AMZN Moving-average cross
fast 40 · slow 50
-17% 54% -71 pts -0.02 -48% lost
DIS Moving-average cross
fast 20 · slow 75
-9% -46% +37 pts -0.04 -34% beat
TGT Moving-average cross
fast 15 · slow 50
-19% -20% +2 pts -0.04 -56% lost
CVS Moving-average cross
fast 40 · slow 50
-16% 61% -77 pts -0.04 -52% lost
CMCSA Moving-average cross
fast 30 · slow 200
-12% -49% +36 pts -0.06 -29% beat
VZ Moving-average cross
fast 40 · slow 200
-12% 12% -24 pts -0.09 -23% lost
PLD Moving-average cross
fast 50 · slow 100
-19% 63% -82 pts -0.10 -69% lost
PYPL Moving-average cross
fast 15 · slow 200
-11% -43% +31 pts -0.12 -27% beat
AMT Moving-average cross
fast 40 · slow 50
-19% -4% -15 pts -0.13 -42% lost
PFE Moving-average cross
fast 5 · slow 50
-21% -5% -16 pts -0.17 -57% lost
APD Moving-average cross
fast 20 · slow 50
-22% 17% -39 pts -0.22 -37% lost
UNP Moving-average cross
fast 50 · slow 100
-26% 38% -64 pts -0.22 -50% lost
TMO Moving-average cross
fast 10 · slow 100
-23% 5% -29 pts -0.23 -49% lost
MA Moving-average cross
fast 10 · slow 50
-26% 43% -69 pts -0.25 -49% lost
UPS Moving-average cross
fast 50 · slow 100
-28% -17% -11 pts -0.25 -51% lost
DHR Moving-average cross
fast 50 · slow 200
-26% -7% -19 pts -0.26 -52% lost
PSX Moving-average cross
fast 20 · slow 50
-36% 141% -178 pts -0.30 -54% lost
PG Moving-average cross
fast 20 · slow 100
-25% 34% -59 pts -0.38 -40% lost
NKE Moving-average cross
fast 20 · slow 50
-45% -65% +20 pts -0.47 -54% lost
HON Moving-average cross
fast 40 · slow 75
-41% 27% -68 pts -0.63 -46% lost
CCI Moving-average cross
fast 40 · slow 75
-51% -34% -17 pts -0.74 -61% lost

Showing 101 of 101. Sorted by Sharpe — return per unit of risk taken.

How to read this honestly

Settings were chosen on the older 70% of each stock's history, then scored — untouched — on the newer 30%. Every number on this page comes from that unseen stretch. "Difference" is how far the strategy finished ahead of or behind simply buying the stock and waiting, in percentage points. A strategy that beat buy & hold here is not a recommendation: 101 stocks × four families is a big enough search that some winners are luck. That's exactly why Chartments lets you put an idea on trial going forward, where luck can't be backfilled.

Snapshot from the sweep engine · 101 stocks · 4,392 trading days. Research & education only — not investment advice.