Home / Strategies / Soybean Oil (ZL)
Commodity · strategy report

Does anything beat buy & hold on Soybean Oil (ZL)?

Every setup we tested on Soybean Oil (ZL) — 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 1.04 did not clear the 1.30 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +5.9% CAGR over 25.9 years (+13.3% CAGR in the out-of-sample window).

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

Soybean Oil: the winner beat buy-and-hold in both windows — and still can't shake the luck problem

In Soybean Oil, 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 755 indicator configurations on ZL. The best, Pascal's Weighted MA on the daily timeframe, beat buy-and-hold in both windows — +0.3% annualized edge over the full period, +4.6% out of sample against a buy-and-hold CAGR of +5.9%. Over 7.8 out-of-sample years it took 295 trades, won 38.0% of them, and drew down -37.3% at worst.

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

Pascal's Weighted MA

What it is: A trend-following rule: it holds while a smoothed trend reference is pointing up and goes flat when it turns. 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.

+374.5%
Total return
0.48
Sharpe
-37.3%
Max DD
38.0%
Win rate
295
Trades
+0.3%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 1.04 · alpha +4.6% · 97 trades over 7.8 yrs.

#2 · Momentum · Daily

Cascade Z-Score

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 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.

+210.1%
Total return
0.35
Sharpe
-54.0%
Max DD
36.8%
Win rate
209
Trades
-1.4%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.95 · alpha +4.4% · 55 trades over 7.8 yrs.

#3 · Momentum · Daily

Premier Stochastic

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.

+193.3%
Total return
0.32
Sharpe
-61.9%
Max DD
39.0%
Win rate
246
Trades
-1.6%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.94 · alpha +5.9% · 66 trades over 7.8 yrs.

Forward test

Since publication — including if it loses

-8.77%
the published setup, since 2026-07-02 (48 market days)
+7.32%
buy & hold, same window

Buy-and-hold is ahead so far — we publish that too. That is the point. Marked to market nightly from real prices, rules frozen at publication, as of 2026-09-10. Currently LONG.

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

We tested 755 setups (indicator × parameters × timeframe) on Soybean Oil (ZL). Only setups with ≥30 trades qualify (653 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 755 tries mines even the holdout, the VALIDATED verdict additionally requires the top setup’s OOS Sharpe to clear a selection hurdle of 1.3 (√(2 ln N)/√T) AND positive alpha in both windows. Of the eligible setups, 17.0% had positive out-of-sample alpha (median OOS Sharpe 0.53) — 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 653 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
1Pascal's Weighted MADaily+374.5%0.48-37.3%38.0%295+0.3%1.04+4.6%97
2Cascade Z-ScoreDaily+210.1%0.35-54.0%36.8%209-1.4%0.95+4.4%55
3Premier StochasticDaily+193.3%0.32-61.9%39.0%246-1.6%0.94+5.9%66
4Woodie PivotsDaily+92.6%0.23-69.8%44.2%1,381-3.3%0.94+5.4%405
5VWMA vs PriceDaily+413.4%0.44-60.3%40.2%396+0.6%0.92+5.5%110
6ZLEMA 200 TrendDaily+596.5%0.54-44.4%36.4%151+1.9%0.91+3.8%38
7VWAP TrendDaily+409.6%0.44-58.0%40.2%383+0.6%0.9+4.9%109
8Know Sure ThingDaily+259.1%0.37-70.2%42.9%175-0.8%0.9+3.6%52
9Rate of ChangeDaily+75.4%0.21-73.7%42.5%414-3.7%0.89+4.4%118
10Triangular MADaily+310.5%0.39-62.4%37.1%361-0.3%0.88+4.5%102
11Sine-Weighted MADaily+269.7%0.37-64.7%36.5%367-0.7%0.88+4.4%103
12Coppock (fast)Daily+189.0%0.32-70.2%40.0%225-1.7%0.88+4.4%63
13Sine-Weighted MADaily+269.7%0.37-64.7%36.5%367-0.7%0.88+4.4%103
14Disparity IndexDaily+350.3%0.41-52.7%36.7%452+0.1%0.87+4.2%131
15Pretty Good OscillatorDaily+355.6%0.41-52.7%36.8%451+0.1%0.87+4.2%131
16DPO (10)Daily+216.9%0.34-62.1%38.2%335-1.3%0.87+4.1%93
17Andean OscillatorDaily+198.6%0.35-57.4%45.9%135-1.6%0.86+1.8%35
18Inverse Fisher RSIDaily+236.3%0.35-66.4%38.3%227-1.1%0.85+3.8%62
19Std Error ChannelDaily+214.7%0.35-55.6%39.5%266-1.4%0.85+2.0%69
20LSMA 100 TrendDaily+131.4%0.29-43.9%37.1%256-2.6%0.85+1.7%69

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