Does anything beat buy & hold on Orange Juice (OJ)?
Every setup we tested on Orange Juice (OJ) — 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.88 did not clear the 1.34 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +2.9% CAGR over 24.6 years (+3.7% CAGR in the out-of-sample window).
Educational research from historical backtests — not investment advice. Past performance does not predict future results.
Orange Juice: the winner beat buy-and-hold in both windows — and still can't shake the luck problem
In Orange Juice, 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 750 indicator configurations on OJ. The best, CCI on the daily timeframe, beat buy-and-hold in both windows — +10.4% annualized edge over the full period, +18.8% out of sample against a buy-and-hold CAGR of +2.9%. Over 7.4 out-of-sample years it took 129 trades, won 69.8% of them, and drew down -57.3% at worst.
Here is the honest read. When you test 750 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.34, and this setup's out-of-sample Sharpe of 0.88 falls short. Statistically, we cannot distinguish it from the luckiest of hundreds of tries. It also has company: 19.1% of setups edged buy-and-hold, which tends to happen when one regime dominated the sample. Of everything tested, 644 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.
CCI
Mechanical rule (exactly as backtested): Buy when CCI(20) crosses up from below -100, exit above +100. 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.88 · alpha +18.8% · 44 trades over 7.4 yrs.
Fisher Center-of-Gravity
Mechanical rule (exactly as backtested): Ehlers' Fisher-transformed Center of Gravity oscillator — long while turning up. 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.84 · alpha +15.9% · 175 trades over 7.4 yrs.
Stochastic (10,3)
Mechanical rule (exactly as backtested): VARIANT — stochastic(10,3); long while %K leads %D. 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.76 · alpha +17.3% · 221 trades over 7.4 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-07-02. Currently FLAT.
We tested 750 setups (indicator × parameters × timeframe) on Orange Juice (OJ). Only setups with ≥30 trades qualify (644 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 750 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.34 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 19.1% had positive out-of-sample alpha (median OOS Sharpe -0.06) — 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 644 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 | CCI | Daily | >+999% | 0.67 | -57.3% | 69.8% | 129 | +10.4% | 0.88 | +18.8% | 44 |
| 2 | Fisher Center-of-Gravity | Daily | +42.3% | 0.17 | -71.2% | 46.1% | 623 | -1.4% | 0.84 | +15.9% | 175 |
| 3 | Stochastic (10,3) | Daily | >+999% | 0.56 | -54.9% | 42.1% | 739 | +9.0% | 0.76 | +17.3% | 221 |
| 4 | Chande Forecast Osc. | Daily | >+999% | 0.51 | -62.3% | 45.5% | 684 | +7.7% | 0.75 | +17.3% | 208 |
| 5 | Stoch RSI (fast) | Daily | >+999% | 0.55 | -59.8% | 41.6% | 645 | +8.9% | 0.75 | +16.8% | 199 |
| 6 | Stochastic Fast (5,3) | Daily | +434.0% | 0.39 | -70.3% | 42.9% | 811 | +4.2% | 0.73 | +16.3% | 248 |
| 7 | FRAMA 10/30 Cross | Weekly | +270.4% | 0.33 | -76.4% | 51.5% | 101 | +2.7% | 0.72 | +16.1% | 32 |
| 8 | Bollinger 10 (x1.5) Break | Daily | +199.0% | 0.39 | -46.8% | 45.2% | 400 | +1.7% | 0.71 | +7.6% | 114 |
| 9 | WaveTrend (8/6/4) | Daily | >+999% | 0.68 | -57.9% | 76.0% | 104 | +12.2% | 0.7 | +14.6% | 31 |
| 10 | Accumulation Swing Index | Daily | >+999% | 0.68 | -50.9% | 43.5% | 1,329 | +12.5% | 0.69 | +14.8% | 414 |
| 11 | Swing Index | Daily | >+999% | 0.68 | -50.9% | 43.5% | 1,329 | +12.5% | 0.69 | +14.8% | 414 |
| 12 | Stochastic | Daily | >+999% | 0.59 | -62.9% | 73.5% | 132 | +9.5% | 0.69 | +14.2% | 44 |
| 13 | Fibonacci Pivots | Weekly | +413.6% | 0.38 | -55.2% | 61.3% | 217 | +4.1% | 0.67 | +14.5% | 70 |
| 14 | Ehlers SuperSmoother | Daily | >+999% | 0.55 | -55.0% | 40.0% | 817 | +8.8% | 0.67 | +14.0% | 261 |
| 15 | Center of Gravity | Daily | +287.5% | 0.34 | -65.2% | 44.8% | 734 | +2.8% | 0.66 | +13.8% | 221 |
| 16 | Murrey Math Lines | Daily | +214.8% | 0.32 | -61.5% | 78.6% | 70 | +1.9% | 0.66 | +12.1% | 28 |
| 17 | Woodie Pivots | Daily | >+999% | 0.62 | -51.5% | 43.1% | 1,309 | +10.7% | 0.65 | +13.4% | 404 |
| 18 | Markov Regime (Confirmed) | Daily | +42.7% | 0.17 | -60.2% | 54.4% | 307 | -1.4% | 0.64 | +9.4% | 74 |
| 19 | Markov Regime | Daily | +250.3% | 0.32 | -64.8% | 63.4% | 257 | +2.4% | 0.62 | +13.7% | 99 |
| 20 | Zero-Lag LSMA | Daily | >+999% | 0.57 | -48.3% | 49.0% | 390 | +9.3% | 0.62 | +12.2% | 122 |
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.