Does anything beat buy & hold on Coffee (KC)?
Every setup we tested on Coffee (KC) — 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 0.95 did not clear the 1.29 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +2.9% CAGR over 26.5 years (+10.5% CAGR in the out-of-sample window).
Educational research from historical backtests — not investment advice. Past performance does not predict future results.
Coffee: the winner beat buy-and-hold in both windows — and still can't shake the luck problem
In Coffee, buy-and-hold is a harder benchmark than it looks: roll costs drag on returns, macro regimes flip the rules mid-game, and prices can go nowhere for years. Against that backdrop, we ran 751 indicator configurations on KC. The best, Elder-Ray on the weekly timeframe, beat buy-and-hold in both windows — +1.3% annualized edge over the full period, +0.7% out of sample against a buy-and-hold CAGR of +2.9%. Over 8.0 out-of-sample years it took 95 trades, won 51.6% of them, and drew down -18.7% at worst.
Here is the honest read. When you test 751 setups and keep the best one, the winner looks good by construction — even on pure noise. Our correction for that selection effect sets a Sharpe hurdle of 1.29, and this setup's out-of-sample Sharpe of 0.95 falls short. Statistically, we cannot distinguish it from the luckiest of hundreds of tries. It also has company: 9.7% of setups edged buy-and-hold, which tends to happen when one regime dominated the sample. Of everything tested, 651 produced enough trades to grade at all. Macro regimes rotate, and a rule tuned to one rarely survives the next. Past performance does not predict future results.
Every figure above is computed from our own backtests — nothing is estimated or invented. Hypothetical results; not investment advice.
Top setups as mechanical rules
Exactly as the backtest defined them — no discretionary steps, no hidden filters.
Elder-Ray
Mechanical rule (exactly as backtested): Buy uptrend pullbacks - EMA-13 rising while Bear Power is negative and turning up; exit when trend or bulls fade. 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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.95 · alpha +0.7% · 23 trades over 8.0 yrs.
Balance of Power
Mechanical rule (exactly as backtested): Long while smoothed Balance of Power (buyers vs sellers) is positive. 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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.86 · alpha +4.4% · 67 trades over 7.9 yrs.
Volume Oscillator
Mechanical rule (exactly as backtested): Long when volume momentum is positive and price is above its EMA. 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.
Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.81 · alpha +2.9% · 29 trades over 8.0 yrs.
Since publication — including if it loses
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-06-29. Currently LONG.
We tested 751 setups (indicator × parameters × timeframe) on Coffee (KC). Only setups with ≥30 trades qualify (651 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 751 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.29 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 9.7% had positive out-of-sample alpha (median OOS Sharpe 0.33) — 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.
Top 20 of 651 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 | Elder-Ray | Weekly | +202.2% | 0.46 | -18.7% | 51.6% | 95 | +1.3% | 0.95 | +0.7% | 23 |
| 2 | Balance of Power | Daily | +3.2% | 0.1 | -73.7% | 42.5% | 287 | -2.8% | 0.86 | +4.4% | 67 |
| 3 | Volume Oscillator | Weekly | +165.4% | 0.3 | -48.9% | 45.8% | 96 | +0.8% | 0.81 | +2.9% | 29 |
| 4 | Ease of Movement | Daily | -0.6% | 0.09 | -78.1% | 43.1% | 297 | -2.9% | 0.8 | +2.3% | 79 |
| 5 | Relative Volume Spike | Weekly | +29.8% | 0.14 | -69.2% | 37.9% | 58 | -2.0% | 0.77 | +5.5% | 17 |
| 6 | Standard Error Bands | Daily | +260.4% | 0.45 | -31.0% | 48.8% | 80 | +2.1% | 0.75 | -1.8% | 26 |
| 7 | EMA-10 Trend | Weekly | +178.5% | 0.28 | -50.3% | 35.0% | 123 | +1.0% | 0.74 | +6.5% | 28 |
| 8 | Disparity (10) | Weekly | +178.5% | 0.28 | -50.3% | 35.0% | 123 | +1.0% | 0.74 | +6.5% | 28 |
| 9 | Ehlers SuperSmoother | Weekly | +105.3% | 0.23 | -71.5% | 38.5% | 192 | -0.2% | 0.71 | +5.6% | 56 |
| 10 | SMA 5/20 Cross | Daily | -4.8% | 0.12 | -79.6% | 37.1% | 221 | -3.1% | 0.71 | +5.4% | 63 |
| 11 | DEMA 10/30 Cross | Daily | +13.5% | 0.15 | -78.7% | 39.7% | 214 | -2.4% | 0.71 | +5.2% | 55 |
| 12 | Rainbow MA | Weekly | +75.2% | 0.21 | -65.9% | 39.0% | 164 | -0.8% | 0.7 | +5.4% | 45 |
| 13 | Hull MA 15/60 Cross | Daily | +45.7% | 0.18 | -74.3% | 37.6% | 213 | -1.4% | 0.69 | +5.0% | 59 |
| 14 | Chaikin Money Flow | Daily | +8.9% | 0.11 | -62.3% | 41.2% | 199 | -2.6% | 0.69 | -0.5% | 49 |
| 15 | Vortex | Daily | -37.7% | 0.06 | -83.0% | 42.1% | 342 | -4.7% | 0.68 | +4.7% | 104 |
| 16 | FRAMA 200 Trend | Weekly | +397.3% | 0.39 | -45.0% | 31.0% | 84 | +3.3% | 0.68 | +4.7% | 28 |
| 17 | Elder Ray (Bull/Bear Power) | Weekly | +96.3% | 0.23 | -61.0% | 40.4% | 89 | -0.4% | 0.65 | +3.6% | 22 |
| 18 | Stochastic (10,3) | Weekly | +44.4% | 0.17 | -67.0% | 41.1% | 168 | -1.6% | 0.65 | +3.1% | 47 |
| 19 | FRAMA 100 Trend | Weekly | +347.9% | 0.36 | -50.5% | 37.4% | 123 | +2.9% | 0.63 | +3.3% | 41 |
| 20 | Bandpass Oscillator | Daily | -6.3% | 0.12 | -72.9% | 41.1% | 321 | -3.1% | 0.63 | +2.8% | 93 |
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.