Home / Strategies / Orange Juice (OJ)
Commodity · strategy report

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.

MIXED

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.96 did not clear the 1.33 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +2.6% CAGR over 24.9 years (+3.5% 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 744 indicator configurations on OJ. The best, Fisher Center-of-Gravity on the daily timeframe, beat buy-and-hold in both windows — +0.2% annualized edge over the full period, +21.5% out of sample against a buy-and-hold CAGR of +2.6%. Over 7.5 out-of-sample years it took 631 trades, won 46.0% of them, and drew down -71.2% at worst.

Here is the honest read. When you test 744 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.33, and this setup's out-of-sample Sharpe of 0.96 falls short. Statistically, we cannot distinguish it from the luckiest of hundreds of tries. It also has company: 19.9% of setups edged buy-and-hold, which tends to happen when one regime dominated the sample. Of everything tested, 638 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.

The rules

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.

#1 · Cycle · Daily

Fisher Center-of-Gravity

What it is: An oscillator rule: it reads a bounded momentum gauge and takes exposure when it turns from an extreme. 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.

+101.2%
Total return
0.24
Sharpe
-71.2%
Max DD
46.0%
Win rate
631
Trades
+0.2%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.96 · alpha +21.5% · 176 trades over 7.5 yrs.

#2 · Oscillator · Daily

CCI

What it is: An oscillator rule: it reads a bounded momentum gauge and takes exposure when it turns from an extreme. 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.68
Sharpe
-57.3%
Max DD
70.8%
Win rate
130
Trades
+11.4%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.87 · alpha +20.3% · 43 trades over 7.5 yrs.

#3 · Oscillator · Daily

Chande Forecast Osc.

What it is: An oscillator rule: it reads a bounded momentum gauge and takes exposure when it turns from an extreme. 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.52
Sharpe
-62.3%
Max DD
45.2%
Win rate
693
Trades
+8.6%
vs B&H

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

Forward test

Since publication — including if it loses

+3.87%
the published setup, since 2026-07-02 (80 market days)
-17.7%
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-10-26. Currently LONG.

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

We tested 744 setups (indicator × parameters × timeframe) on Orange Juice (OJ). Only setups with ≥30 trades qualify (638 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 744 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.33 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 19.9% had positive out-of-sample alpha (median OOS Sharpe -0.08) — 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 638 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
1Fisher Center-of-GravityDaily+101.2%0.24-71.2%46.0%631+0.2%0.96+21.5%176
2CCIDaily>+999%0.68-57.3%70.8%130+11.4%0.87+20.3%43
3Chande Forecast Osc.Daily>+999%0.52-62.3%45.2%693+8.6%0.76+19.1%211
4Accumulation Swing IndexDaily>+999%0.69-50.9%43.4%1,344+13.5%0.74+17.8%416
5Swing IndexDaily>+999%0.69-50.9%43.4%1,344+13.5%0.74+17.8%416
6FRAMA 10/30 CrossWeekly+270.4%0.32-76.4%51.5%101+2.9%0.74+17.6%30
7Fibonacci PivotsWeekly+625.2%0.43-55.2%61.4%220+5.7%0.73+17.8%70
8StochasticDaily>+999%0.6-62.9%73.9%134+10.5%0.73+17.0%45
9Bollinger 10 (x1.5) BreakDaily+210.3%0.4-46.8%45.2%405+2.0%0.73+8.3%117
10Stoch RSI (fast)Daily>+999%0.55-59.8%41.5%653+9.3%0.72+17.1%202
11Stochastic RSIDaily+469.7%0.43-46.3%65.3%196+4.6%0.72+14.0%61
12Woodie PivotsDaily>+999%0.63-51.5%43.1%1,324+11.7%0.71+16.8%407
13Stochastic Fast (5,3)Daily+440.2%0.38-70.3%43.0%821+4.4%0.69+15.9%251
14Ehlers SuperSmootherDaily>+999%0.56-55.0%39.7%827+9.5%0.68+15.5%262
15WaveTrend (8/6/4)Daily>+999%0.67-57.9%75.5%106+12.7%0.68+15.4%32
16Stochastic (10,3)Daily>+999%0.53-54.9%41.8%749+8.7%0.68+15.1%224
17Center of GravityDaily+365.3%0.36-65.2%44.7%743+3.7%0.67+14.9%224
18Markov Regime (Confirmed)Daily+64.9%0.2-60.2%54.5%312-0.6%0.67+10.5%75
19Williams %RDaily>+999%0.56-59.7%71.8%174+8.5%0.65+13.2%53
20Markov RegimeDaily+310.8%0.34-65.6%63.4%262+3.2%0.64+15.5%103

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