Home / Strategies / Soybeans (ZS)
Commodity · strategy report

Does anything beat buy & hold on Soybeans (ZS)?

Every setup we tested on Soybeans (ZS) — 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.86 did not clear the 1.30 selection hurdle (best-of-N luck cannot be ruled out). Buy-and-hold benchmark: +3.2% CAGR over 25.8 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.

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

In Soybeans, 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 753 indicator configurations on ZS. The best, Volume Oscillator on the weekly timeframe, beat buy-and-hold in both windows — +5.8% annualized edge over the full period, +4.7% out of sample against a buy-and-hold CAGR of +3.2%. Over 7.8 out-of-sample years it took 83 trades, won 59.0% of them, and drew down -23.4% at worst.

Here is the honest read. When you test 753 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 0.86 falls short. Statistically, we cannot distinguish it from the luckiest of hundreds of tries. It also has company: 17.3% of setups edged buy-and-hold, which tends to happen when one regime dominated the sample. Of everything tested, 663 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

Top setups as mechanical rules

Exactly as the backtest defined them — no discretionary steps, no hidden filters.

#1 · Volume · Weekly

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.

+842.3%
Total return
0.77
Sharpe
-23.4%
Max DD
59.0%
Win rate
83
Trades
+5.8%
vs B&H

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

#2 · Trend · Daily

T3 10/40 Cross

Mechanical rule (exactly as backtested): VARIANT — T3 10/40 cross; long while fast leads slow. 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.

+250.8%
Total return
0.38
Sharpe
-47.8%
Max DD
43.2%
Win rate
74
Trades
+1.8%
vs B&H

Out-of-sample (last ~30% of the window, never used to pick this setup): Sharpe 0.68 · alpha +4.3% · 19 trades over 7.7 yrs.

#3 · Trend · Daily

Vertical Horizontal Filter

Mechanical rule (exactly as backtested): Trade trend only when the VHF says the market is trending (and price is 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.

+104.8%
Total return
0.3
Sharpe
-30.1%
Max DD
44.4%
Win rate
198
Trades
-0.4%
vs B&H

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

Forward test

Since publication — including if it loses

0.0%
the published setup, since 2026-07-02 (0 market days)
0.0%
buy & hold, same window

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

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

We tested 753 setups (indicator × parameters × timeframe) on Soybeans (ZS). Only setups with ≥30 trades qualify (663 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 753 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.3% had positive out-of-sample alpha (median OOS Sharpe 0.18) — 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.

Ranked table

Top 20 of 663 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
1Volume OscillatorWeekly+842.3%0.77-23.4%59.0%83+5.8%0.86+4.7%29
2T3 10/40 CrossDaily+250.8%0.38-47.8%43.2%74+1.8%0.68+4.3%19
3Vertical Horizontal FilterDaily+104.8%0.3-30.1%44.4%198-0.4%0.68+2.0%55
4Markov Regime (Confirmed)Weekly+207.6%0.32-40.6%43.9%107+1.2%0.66+6.6%25
5Tweezer BottomWeekly+20.5%0.13-42.7%37.2%43-2.5%0.65+3.0%22
6ADX Strong TrendDaily-24.5%-0.02-60.8%41.7%108-4.3%0.65+1.6%24
7Chaikin Money FlowWeekly+481.1%0.45-51.3%46.7%60+3.8%0.62+4.8%18
8Ehlers ReflexWeekly+347.2%0.43-39.9%52.4%42+2.7%0.62+3.9%13
9Stochastic (10,3)Weekly+314.3%0.4-37.5%51.9%158+2.4%0.61+3.6%46
10Bollinger BreakoutDaily+158.9%0.35-41.0%42.5%106+0.5%0.61+1.9%31
11Ichimoku TK CrossDaily+208.8%0.34-46.6%41.5%147+1.2%0.6+3.6%40
12Accelerator OscillatorWeekly+288.7%0.4-38.8%47.8%69+2.2%0.6+3.2%19
13SMA 10/30 CrossDaily+163.1%0.3-55.6%48.4%128+0.6%0.54+2.8%33
14Williams FractalsDaily+58.3%0.19-53.5%38.1%160-1.4%0.54+2.8%39
15Triangular Hull MAWeekly+308.5%0.45-31.8%43.2%88+2.4%0.54+2.0%26
16Linear Regression SlopeDaily+119.1%0.26-55.7%42.4%165-0.1%0.53+2.6%49
17Correlation TrendDaily+119.1%0.26-55.7%42.4%165-0.1%0.53+2.6%49
18TRIX (9)Daily+39.1%0.16-59.8%35.5%138-2.0%0.53+2.6%37
19Coppock CurveDaily+69.5%0.21-58.8%39.6%159-1.2%0.53+2.5%44
20Hull MA 20/80 CrossDaily+41.2%0.17-50.6%43.9%148-1.9%0.53+2.5%42

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