Does anything beat buy & hold on Sunrun?
Every setup we tested on Sunrun — 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.
Beat buy-and-hold in both windows — but can't be told apart from selection luck.
Beat buy-and-hold in both the full window and out-of-sample but its OOS Sharpe 1.36 did not clear the 1.99 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +2.2% CAGR over 10.9 years (-9.8% CAGR in the out-of-sample window).
Educational research from historical backtests — not investment advice. Past performance does not predict future results.
RUN: The Best Setup Beat Buy-and-Hold — and Still Might Be Luck
Sunrun lands in the awkward middle of our results. Of 702 indicator setups tested on RUN, the strongest — Keltner Mean-Reversion on the daily timeframe — beat buy-and-hold in both the training and out-of-sample windows, adding +62.5% annual alpha against a buy-and-hold baseline of +2.2%. For an individual stock, that matters less than it sounds. Single names run on earnings surprises, management turnover, and idiosyncratic shocks that no historical pattern is obliged to survive. A setup that worked here worked on one company's history, once — and the companies whose histories ended badly aren't in anyone's backtest.
The honest read: the out-of-sample Sharpe of 1.36 came from 35 trades over 3.3 years, with a 68.6% win rate and a -65.7% maximum drawdown — a genuinely profitable record. But when you pick the best of 702 attempts, the winner is expected to look good by chance alone. Our selection hurdle for this asset is 1.99, and this setup did not clear it, so we cannot distinguish it from the luckiest of hundreds of tries. Only 15.3% of setups beat buy-and-hold at all. Regimes shift, and past performance predicts nothing about what comes next.
Every figure above is computed from our own backtests — nothing is estimated or invented. Hypothetical results; not investment advice.
The setups that ranked, and what they are
Fully mechanical — no discretionary steps, no hidden filters. We name the indicator and publish its record; we keep the settings.
Keltner Mean-Reversion
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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 1.36 · alpha +62.5% · 13 trades over 3.3 yrs.
Morning Star
What it is: A market-structure rule: it reacts to swing structure and prior levels rather than to a smoothed average. 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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 1.23 · alpha +56.6% · 29 trades over 3.3 yrs.
Bollinger Mean-Reversion
What it is: A mean-reversion rule: it fades stretched moves and exits as price reverts toward its average. 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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 1.2 · alpha +63.3% · 17 trades over 3.3 yrs.
Since publication — including if it loses
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.
We tested 702 setups (indicator × parameters × timeframe) on Sunrun. Only setups with ≥30 trades qualify (491 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 702 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.99 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 15.3% had positive out-of-sample alpha (median OOS Sharpe -0.24) — 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.
Top 20 of 491 eligible setups
Ranked by out-of-sample Sharpe. Full + out-of-sample columns, costs included. Hypothetical.
| # | Setup | TF | Total ret | Sharpe | Max DD | Win | Trades | α vs B&H | OOS Sharpe | OOS α | OOS trades |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Keltner Mean-Reversion | Daily | +338.0% | 0.55 | -65.7% | 68.6% | 35 | +12.4% | 1.36 | +62.5% | 13 |
| 2 | Morning Star | Daily | +701.2% | 0.75 | -68.3% | 53.2% | 94 | +18.9% | 1.23 | +56.6% | 29 |
| 3 | Bollinger Mean-Reversion | Daily | +111.6% | 0.37 | -69.9% | 66.7% | 48 | +5.0% | 1.2 | +63.3% | 17 |
| 4 | Fibonacci Bands | Daily | +111.6% | 0.37 | -69.9% | 66.7% | 48 | +5.0% | 1.2 | +63.3% | 17 |
| 5 | Camarilla Pivots | Daily | +6.6% | 0.28 | -90.2% | 51.0% | 563 | -1.6% | 1.18 | +84.6% | 183 |
| 6 | Pivot Points (Standard) | Weekly | +56.3% | 0.31 | -74.3% | 53.2% | 79 | +1.4% | 1.11 | +58.6% | 28 |
| 7 | Fibonacci Pivots | Weekly | +62.7% | 0.33 | -72.9% | 52.3% | 88 | +1.8% | 1.07 | +57.0% | 29 |
| 8 | Order-Flow Reversion | Daily | +45.3% | 0.28 | -74.0% | 62.8% | 43 | +1.3% | 1.05 | +49.4% | 16 |
| 9 | Schaff Trend Cycle | Daily | +34.0% | 0.23 | -52.0% | 58.0% | 81 | +0.6% | 1.05 | +34.0% | 25 |
| 10 | Demand Index | Daily | +220.6% | 0.47 | -67.3% | 59.0% | 122 | +9.1% | 1.04 | +69.3% | 35 |
| 11 | MA Envelope | Daily | +63.0% | 0.35 | -79.1% | 60.3% | 121 | +2.4% | 1.03 | +65.4% | 45 |
| 12 | MA Envelope | Weekly | >+999% | 0.67 | -66.5% | 71.9% | 32 | +22.8% | 0.96 | +64.8% | 11 |
| 13 | Stochastic Momentum Index | Daily | +447.1% | 0.58 | -55.3% | 70.6% | 51 | +14.8% | 0.91 | +47.7% | 19 |
| 14 | Stochastic | Daily | +175.5% | 0.43 | -74.4% | 69.6% | 46 | +7.6% | 0.82 | +44.1% | 18 |
| 15 | Fibonacci Pivots | Daily | -57.2% | 0.11 | -93.4% | 52.5% | 421 | -9.7% | 0.78 | +44.1% | 141 |
| 16 | VWAP Bands | Daily | +75.0% | 0.32 | -58.7% | 60.0% | 45 | +3.1% | 0.76 | +34.6% | 17 |
| 17 | Pivot Points (Standard) | Daily | -67.7% | 0.04 | -94.3% | 51.7% | 379 | -12.0% | 0.75 | +41.4% | 130 |
| 18 | Camarilla Pivots | Weekly | +54.8% | 0.32 | -71.8% | 53.4% | 116 | +1.4% | 0.73 | +36.2% | 35 |
| 19 | Bullish Marubozu | Daily | +240.0% | 0.66 | -43.0% | 63.6% | 44 | +9.8% | 0.72 | +23.0% | 10 |
| 20 | Murrey Math Lines | Daily | +530.6% | 0.58 | -73.7% | 69.7% | 33 | +16.3% | 0.71 | +37.8% | 11 |
Hypothetical backtests with 0.08%/side costs. Not investment advice — see the full disclaimer.
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.