Home / Strategies / Bank of America (BAC)
Stock · strategy report

Does anything beat buy & hold on Bank of America (BAC)?

Every setup we tested on Bank of America (BAC) — ranked out-of-sample, corrected for multiple testing, and forward-tracked in public from the day this page published. The honest answer is the headline.

NOTHING BEAT BUY-AND-HOLD

No setup beat simply holding once tested honestly. We say so plainly.

Its best setup only beat buy-and-hold in one window — a regime artifact, not a strategy. Buy-and-hold benchmark: +7.0% CAGR over 53.3 years (+9.6% CAGR in the out-of-sample window).

Educational research from historical backtests — not investment advice. Past performance does not predict future results.

BAC: we tested 766 setups and none beat simply holding Bank of America

For Bank of America (BAC), we ran 766 indicator configurations against a plain buy-and-hold benchmark, and none of them earned the right to replace it. Individual stocks carry idiosyncratic risk — earnings surprises, guidance changes, sector rotation — that indicators built on price history cannot see coming. The best-looking setup, Hull MA 30 Trend on the daily timeframe, ranked at the top in-sample but delivered an out-of-sample Sharpe of 0.84, short of our hurdle of 0.91. Buy-and-hold returned +7.0% annualized over the test period; the top strategies mostly captured pieces of that same move while adding trading friction.

How to read this honestly: when you test 766 setups and keep the best one, something will always look impressive by chance alone. That is why we require the survivor to clear 0.91 out of sample. Hull MA 30 Trend managed 0.84, with out-of-sample alpha of +4.8% across 16.0 years and 820 trades, and only 8.4% of everything we tested beat the benchmark on unseen data — roughly what luck would produce. None of this predicts anything: the regime that generated these numbers can shift, and single stocks shift faster than most. Treat this page as a record of what failed under honest testing, not a forecast.

Every figure above is computed from our own backtests — nothing is estimated or invented. Hypothetical results; not investment advice.

Failure exhibit

The least-bad setups — shown with their failure numbers

Nothing here earned a verdict — these are the best of a losing field, published so you can see exactly how "best" still failed.

#1 · Trend · Daily

Hull MA 30 Trend

Mechanical rule (exactly as backtested): VARIANT — price above a rising Hull MA(30). Signals are evaluated at daily-bar close, the position changes on the NEXT bar, 0.08% cost per side, long/flat only — no leverage, no shorting.

>+999%
Total return
0.41
Sharpe
-82.7%
Max DD
43.0%
Win rate
820
Trades
-0.3%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.84 · alpha +4.8% · 232 trades over 16.0 yrs.

#2 · Momentum · Weekly

Ehlers Reflex

Mechanical rule (exactly as backtested): Ehlers' 2020 Reflex oscillator — a low-lag cycle/trend gauge; long while positive. Signals are evaluated at weekly-bar close, the position changes on the NEXT bar, 0.08% cost per side, long/flat only — no leverage, no shorting.

>+999%
Total return
0.46
Sharpe
-83.0%
Max DD
58.9%
Win rate
95
Trades
+2.8%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.76 · alpha +4.3% · 27 trades over 16.1 yrs.

#3 · Oscillator · Daily

Fisher Transform

Mechanical rule (exactly as backtested): Long while the Fisher Transform turns up above its trigger. Signals are evaluated at daily-bar close, the position changes on the NEXT bar, 0.08% cost per side, long/flat only — no leverage, no shorting.

>+999%
Total return
0.61
Sharpe
-81.6%
Max DD
44.2%
Win rate
1,248
Trades
+5.9%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.72 · alpha +4.9% · 368 trades over 16.0 yrs.

Forward test

Since publication — including if it loses

0.0%
the published setup, since 2026-07-02 (0 market days)
0.0%
buy & hold, same window

The forward record is just getting started — the gap between the two is the honest score. Marked to market nightly from real prices, rules frozen at publication, as of 2026-07-02. Currently FLAT.

How this verdict was computed (mode: out-of-sample)

We tested 766 setups (indicator × parameters × timeframe) on Bank of America (BAC). Only setups with ≥30 trades qualify (726 did). Setups are ranked by out-of-sample Sharpe — the last ~30% of history, which standard-parameter rules never saw during selection. Because picking the best of 766 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 0.91 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 8.4% had positive out-of-sample alpha (median OOS Sharpe 0.37) — the table below is truncated, but this summary covers all of them. Full recipe: methodology · the engine’s contract lives in the repo as STRATEGY_METHODOLOGY.md.

Ranked table

Top 20 of 726 eligible setups

Ranked by out-of-sample Sharpe. Full + out-of-sample columns, costs included. Hypothetical.

#SetupTFTotal retSharpeMax DDWinTradesα vs B&HOOS SharpeOOS αOOS trades
1Hull MA 30 TrendDaily>+999%0.41-82.7%43.0%820-0.3%0.84+4.8%232
2Ehlers ReflexWeekly>+999%0.46-83.0%58.9%95+2.8%0.76+4.3%27
3Fisher TransformDaily>+999%0.61-81.6%44.2%1,248+5.9%0.72+4.9%368
4KDJDaily>+999%0.55-82.1%43.8%1,223+4.2%0.72+4.5%362
5Pascal's Weighted MADaily+499.7%0.27-87.0%41.4%655-3.5%0.72+1.6%185
6Ehlers DecyclerDaily>+999%0.57-72.3%37.7%810+4.5%0.7+3.6%242
7Triangular Hull MADaily>+999%0.47-75.5%43.2%820+1.1%0.7+2.3%243
8Standard Error BandsDaily+349.4%0.33-49.5%49.0%153-4.1%0.7-4.3%42
9HLC TrendDaily>+999%0.56-75.3%38.1%724+3.9%0.69+3.0%220
10Vegas TunnelDaily>+999%0.42-41.6%33.3%180-1.1%0.69+1.2%44
11Disparity (20)Daily>+999%0.54-72.9%37.5%790+3.7%0.68+3.1%235
12Keltner BreakoutDaily+176.2%0.2-85.0%42.6%190-5.0%0.67-1.1%55
13SMC: Fair Value GapDaily>+999%0.43-82.5%42.7%684+0.9%0.66+2.9%210
14Volume-Weighted EMADaily>+999%0.46-86.5%39.3%828+1.8%0.66+2.7%244
15Inverse Fisher RSIDaily>+999%0.36-82.4%39.1%458-0.9%0.66+2.5%139
16Instantaneous TrendlineDaily>+999%0.39-81.4%41.0%547-0.2%0.65+2.6%161
17J_TPODaily>+999%0.52-88.4%41.2%747+2.5%0.65+1.5%222
18Woodies CCIDaily>+999%0.43-93.3%41.5%1,074+0.3%0.65+1.4%319
19HalfTrendDaily+849.1%0.29-93.8%40.5%395-2.6%0.64+2.3%120
20Premier StochasticDaily>+999%0.31-81.5%39.5%473-2.2%0.64+2.3%140

Hypothetical backtests with 0.08%/side costs. Not investment advice — see the full disclaimer.

Read this before acting on anything

These are historical backtests of mechanical rules. They are educational research, not investment advice, not a recommendation, and not tailored to you. Educational information only — not investment advice. Hypothetical backtested results; past performance does not guarantee future results. Trading involves risk of loss.

Keep digging