Home / Strategies / FactSet (FDS)
Stock · strategy report

Does anything beat buy & hold on FactSet (FDS)?

Every setup we tested on FactSet (FDS) — 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: +15.5% CAGR over 29.9 years (+6.2% CAGR in the out-of-sample window).

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

FDS: we tested 748 setups and none beat simply holding FactSet

For FactSet (FDS), we ran 748 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, Ehlers Relative Vigor on the daily timeframe, ranked at the top in-sample but delivered an out-of-sample Sharpe of 0.8, short of our hurdle of 1.21. Buy-and-hold returned +15.5% 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 748 setups and keep the best one, something will always look impressive by chance alone. That is why we require the survivor to clear 1.21 out of sample. Ehlers Relative Vigor managed 0.8, with out-of-sample alpha of +8.4% across 9.0 years and 666 trades, and only 5.5% 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 · Momentum · Daily

Ehlers Relative Vigor

What it is: A momentum rule: it holds while rate-of-change stays positive and steps aside when it rolls over. Long/flat only — no leverage, no shorting. The parameters we tested are not published.

How it was tested: signals evaluated at daily-bar close, the position changes on the NEXT bar, 0.08% cost per side. Same engine, same cost model, same out-of-sample split as every other number on this site.

+382.4%
Total return
0.34
Sharpe
-87.1%
Max DD
47.9%
Win rate
666
Trades
-10.1%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.8 · alpha +8.4% · 181 trades over 9.0 yrs.

#2 · Trend · Weekly

Keltner 10 (x1.5)

What it is: A breakout rule: it waits for price to clear a prior range and rides the expansion until it fails. Long/flat only — no leverage, no shorting. The parameters we tested are not published.

How it was tested: signals evaluated at weekly-bar close, the position changes on the NEXT bar, 0.08% cost per side. Same engine, same cost model, same out-of-sample split as every other number on this site.

+17.5%
Total return
0.1
Sharpe
-49.7%
Max DD
50.0%
Win rate
58
Trades
-14.9%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.78 · alpha -2.4% · 10 trades over 9.0 yrs.

#3 · Cycle · Daily

Bandpass Oscillator

What it is: A channel / envelope rule: it measures how far price has travelled from a moving reference and acts at the extremes. Long/flat only — no leverage, no shorting. The parameters we tested are not published.

How it was tested: signals evaluated at daily-bar close, the position changes on the NEXT bar, 0.08% cost per side. Same engine, same cost model, same out-of-sample split as every other number on this site.

>+999%
Total return
0.46
Sharpe
-72.1%
Max DD
47.6%
Win rate
355
Trades
-7.1%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.71 · alpha +6.2% · 101 trades over 9.0 yrs.

Forward test

Since publication — including if it loses

+13.33%
the published setup, since 2026-07-02 (47 market days)
+12.05%
buy & hold, same window

The setup is ahead so far — over a window this short that is mostly noise. Marked to market nightly from real prices, rules frozen at publication, as of 2026-09-09. Currently FLAT.

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

We tested 748 setups (indicator × parameters × timeframe) on FactSet (FDS). Only setups with ≥30 trades qualify (686 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 748 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.21 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 5.5% had positive out-of-sample alpha (median OOS Sharpe 0.13) — the table below is truncated, but this summary covers all of them. How we test: methodology. The scoring contract is published in full; the parameters of each individual setup are not.

Ranked table

Top 20 of 686 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
1Ehlers Relative VigorDaily+382.4%0.34-87.1%47.9%666-10.1%0.8+8.4%181
2Keltner 10 (x1.5)Weekly+17.5%0.1-49.7%50.0%58-14.9%0.78-2.4%10
3Bandpass OscillatorDaily>+999%0.46-72.1%47.6%355-7.1%0.71+6.2%101
4Hull MA 10/40 CrossDaily+278.6%0.31-80.5%47.4%333-11.0%0.66+4.7%97
5Squeeze MomentumWeekly+207.4%0.3-48.6%51.7%87-11.6%0.65+1.8%21
6LSMA 10/30 CrossDaily+658.2%0.41-77.7%48.8%320-8.5%0.61+3.7%94
7Bullish EngulfingDaily+42.3%0.15-57.9%51.3%234-14.3%0.59+0.5%64
8HMA 9/21 CrossDaily+396.6%0.35-70.0%45.9%519-10.0%0.58+3.3%152
9Negative Volume IndexDaily>+999%0.51-39.6%42.1%57-6.0%0.56+5.4%22
10Least Squares MADaily>+999%0.58-53.5%44.4%604-4.5%0.55+2.5%174
11Demand IndexWeekly>+999%0.51-54.6%66.2%68-5.6%0.53+4.3%26
12Q-StickDaily>+999%0.56-44.3%41.6%635-4.7%0.53+2.5%179
13Premier StochasticDaily+478.1%0.36-74.0%42.3%274-9.5%0.53+2.5%74
14TEMA 10/30 CrossDaily+481.7%0.37-81.9%48.8%299-9.5%0.53+2.0%88
15Zero-Lag LSMAWeekly>+999%0.51-48.1%53.4%103-5.9%0.52+2.2%31
16Bollinger 30 (x2.0) BreakWeekly+62.1%0.22-44.5%50.8%59-13.8%0.52-2.4%12
17Zero-Lag EMA CrossDaily+777.6%0.43-77.8%46.7%362-8.0%0.51+1.8%108
18ZLEMA 10/30 CrossDaily+777.6%0.43-77.8%46.7%362-8.0%0.51+1.8%108
19Chande Momentum Osc.Daily>+999%0.51-55.0%45.2%526-5.8%0.47+1.1%154
20EMA 9/26 CrossDaily+726.0%0.41-65.7%36.0%136-8.2%0.46+0.9%43

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