Strategy Analytics

Corn Donchian Breakout

Pure Donchian channel breakout optimization on Corn futures — which lookback N fits the market's history best.

Instrument
Corn Futures (ZC=F)
History
2000-07-17 → 2026-07-30
Lookback Grid
N = 20–80 step 3, then 85, 90, 95, 100
Profit Unit
price points (cents per bushel, 1 contract)

Total Profit By Lookback N

System A (Long Only) vs System B (Long & Short, stop-and-reverse). Price points per 1 contract.

System B — Long vs Short Profit Split

The same stop-and-reverse system, with the long leg and short leg reported separately (long + short = total).

Results By Lookback

Entry: close above the N-period high. System A exits to flat on a close below the N-period low; System B reverses into a short there (and back to long on the next upper-band break). No ATR stops, volatility filters, or profit targets. 6,514 daily bars. Generated 2026-07-30 08:35:12 UTC.

NA: ProfitA: TradesA: Win RateB: ProfitB: Long P&LB: Short P&LB: TradesB: Win Rate
20+308.38137%+327.0+308.3+18.816138%
23+255.06935%+220.5+255.0-34.513736%
26+235.06235%+182.5+235.0-52.512337%
29+170.35732%+53.0+170.3-117.311335%
32-37.55527%-358.8-37.5-321.310930%
35+38.85129%-206.3+38.8-245.010133%
38+36.54732%-210.8+36.5-247.39335%
41+191.04236%+98.3+191.0-92.88337%
44+463.53839%+643.3+463.5+179.87539%
47+384.53839%+485.3+384.5+100.87536%
50+394.53543%+505.8+394.5+111.37036%
53+442.53444%+603.3+442.5+160.86837%
56+452.83247%+632.3+452.8+179.56438%
59+391.03244%+505.8+391.0+114.86434%
62+365.83139%+461.8+365.8+96.06229%
65+374.82938%+485.3+374.8+110.55829%
68+356.82832%+449.3+356.8+92.55625%
71+405.82733%+547.3+405.8+141.55426%
74+313.02733%+363.5+313.0+50.55426%
77+291.52733%+318.0+291.5+26.55426%
80+238.52635%+212.5+238.5-26.05227%
85+168.82536%+76.3+168.8-92.55028%
90+183.02433%+107.8+183.0-75.34827%
95+29.82433%-193.3+29.8-223.04827%
100+31.32335%-216.8+31.3-248.04728%

Monthly Donchian — Does A Slower Channel Beat The Daily One?

The same pure channel logic on monthly bars (open = the month's first open, high/low its extremes, close its last close), lookback N = 320 months over 313 monthly bars. Note the horizons are not the same thing: the daily grid's 20–100 bars is roughly 1–5 months, while 3–20 monthly bars is 3–20 months, so this is a far slower channel rather than the same channel on other data. Sharpe and CAGR annualize with 12 periods here against 252 on the daily grid.

Answer: no — and not close. Median Sharpe across the grid is -0.196 on monthly bars against 0.034 on daily, and 0 of 36 monthly cells have a positive Sharpe at all (the daily grid manages 35 of 50). The best monthly cell is N = 17 at Sharpe -0.01, against the daily grid's best of 0.21 at N = 44.

The reason matters more than the result. A monthly channel of this length simply cannot generate enough trades on 26 years of data — the median monthly cell takes 10 trades in total, and the best one takes 4. Those numbers cannot support a conclusion in either direction, so the honest reading is not “monthly breakouts do not work” but “this history is far too short to test a 3–20 month channel”. Judging a strategy on four trades is how you end up fitting noise.
N (months)A: ProfitA: TradesA: CAGRA: Max DDA: SharpeA: SortinoA: CalmarB: ProfitB: TradesB: CAGRB: Max DDB: SharpeB: SortinoB: Calmar
3-86.319-0.5%-69.7%-0.03-0.04-0.01-450.338-7.0%-90.9%-0.25-0.34-0.08
4-130.318-1.2%-69.7%-0.06-0.08-0.02-529.336-8.2%-90.9%-0.29-0.40-0.09
5-336.013-3.0%-75.7%-0.13-0.18-0.04-923.326-10.6%-95.6%-0.37-0.49-0.11
6-431.312-3.7%-78.5%-0.16-0.23-0.05-1146.025-12.8%-97.1%-0.44-0.58-0.13
7-367.011-3.0%-81.1%-0.14-0.20-0.04-1014.323-11.1%-95.6%-0.39-0.53-0.12
8-166.810-1.4%-73.1%-0.06-0.09-0.02-613.820-8.1%-91.1%-0.29-0.40-0.09
9-340.310-2.7%-78.4%-0.13-0.18-0.03-960.820-11.1%-95.9%-0.39-0.52-0.12
10-327.88-2.9%-75.6%-0.14-0.19-0.04-903.815-11.9%-97.5%-0.41-0.53-0.12
11-349.58-3.2%-75.6%-0.15-0.21-0.04-925.515-12.2%-97.5%-0.42-0.54-0.13
12-435.08-4.0%-79.2%-0.19-0.26-0.05-1096.515-14.5%-98.6%-0.49-0.61-0.15
13-210.35-1.5%-66.9%-0.07-0.09-0.02-647.010-8.9%-93.8%-0.31-0.40-0.10
14-213.35-1.5%-66.9%-0.07-0.10-0.02-653.010-9.2%-94.2%-0.32-0.41-0.10
15-213.35-1.5%-66.9%-0.07-0.10-0.02-653.010-9.2%-94.2%-0.32-0.41-0.10
16-213.35-1.5%-66.9%-0.07-0.10-0.02-653.010-9.2%-94.2%-0.32-0.41-0.10
17+38.04-0.1%-55.0%-0.01-0.01-0.00-150.58-5.7%-84.7%-0.20-0.27-0.07
18+38.04-0.1%-55.0%-0.01-0.01-0.00-150.58-5.7%-84.7%-0.20-0.27-0.07
19+38.04-0.1%-55.0%-0.01-0.01-0.00-150.58-5.7%-84.7%-0.20-0.27-0.07
20+38.04-0.1%-55.0%-0.01-0.01-0.00-150.58-5.7%-84.7%-0.20-0.27-0.07

Monthly bars 2000-07-312026-07-31. Profit is price points per contract, directly comparable with the daily table above since it is the same instrument and contract size. Trade counts are not comparable — that is the point.

EMA-170 Direction Filter On The Breakout

The same daily channel and the same N grid, with one extra precondition: a long may only open while the 170-period exponential moving average is rising, and a short only while it is falling. The band break is still required on top — the filter removes trades, it never creates them. Exits are untouched, so a trade opened with the trend still closes on the opposite band break even if the EMA has since turned; otherwise the filter would be changing two things at once and this comparison would not isolate it. The unfiltered grid stays above so “does it help” has something to be measured against.

On Corn: no, it makes things slightly worse. Across the 50 cells the filter beats the unfiltered channel on Sharpe in 14 and on Calmar in 6. Medians move the wrong way on all three measures: Sharpe 0.021 against 0.034, Sortino 0.029 against 0.049, Calmar 0.008 against 0.015.

Worth reading with one thing in mind, though: Corn has been the weakest market on this site all along — its base trend system sits near a zero median Sharpe, so there is little for a filter to improve. The same filter is applied to Cocoa, Coffee and Crude Oil on their own cards, and those are the more informative tests.
NDirectionTrades (plain → EMA)Sharpe plainSharpe EMASortino plainSortino EMACalmar plainCalmar EMABetter?
20A — long only81690.170.110.240.150.050.03plain
20B — long & short1611400.01-0.050.02-0.070.00-0.01plain
23A — long only69610.160.110.230.150.050.03plain
23B — long & short1371220.00-0.050.01-0.060.00-0.01plain
26A — long only62570.170.110.240.150.050.03plain
26B — long & short1231140.03-0.060.04-0.080.01-0.02plain
29A — long only57520.130.110.190.160.040.03plain
29B — long & short113106-0.02-0.09-0.03-0.13-0.01-0.03plain
32A — long only55510.030.020.050.030.010.01plain
32B — long & short109103-0.16-0.21-0.22-0.29-0.05-0.06plain
35A — long only51470.070.070.100.100.020.02EMA
35B — long & short10196-0.10-0.14-0.14-0.19-0.03-0.04plain
38A — long only47430.070.080.100.110.020.02EMA
38B — long & short9388-0.09-0.12-0.13-0.17-0.03-0.04plain
41A — long only42380.130.140.180.200.050.05EMA
41B — long & short8378-0.03-0.03-0.05-0.05-0.01-0.01EMA
44A — long only38350.210.220.310.320.080.09EMA
44B — long & short75720.090.060.130.080.040.03plain
47A — long only38350.170.180.250.260.070.07EMA
47B — long & short75720.030.000.040.000.010.00plain
50A — long only35320.180.190.260.280.070.07EMA
50B — long & short70670.040.020.050.020.020.01plain
53A — long only34310.170.190.250.270.070.08EMA
53B — long & short68650.030.020.040.030.010.01plain
56A — long only32300.170.170.240.240.070.06plain
56B — long & short64620.020.000.030.000.010.00plain
59A — long only32300.140.130.200.190.050.04plain
59B — long & short6462-0.03-0.05-0.05-0.07-0.01-0.02plain
62A — long only31290.130.140.190.200.050.04EMA
62B — long & short6260-0.02-0.03-0.03-0.05-0.01-0.01plain
65A — long only29270.150.150.210.220.050.05EMA
65B — long & short58560.01-0.000.01-0.000.00-0.00plain
68A — long only28270.150.130.210.190.050.04plain
68B — long & short56550.01-0.020.01-0.020.00-0.01plain
71A — long only27260.170.160.250.230.060.05plain
71B — long & short54530.050.030.070.050.020.01plain
74A — long only27260.120.120.180.170.040.04plain
74B — long & short5453-0.02-0.03-0.03-0.04-0.01-0.01plain
77A — long only27260.110.110.160.150.040.03plain
77B — long & short5453-0.04-0.05-0.06-0.07-0.02-0.02plain
80A — long only26250.090.100.130.140.030.03EMA
80B — long & short5251-0.07-0.07-0.10-0.10-0.02-0.02EMA
85A — long only25240.050.060.070.080.020.02EMA
85B — long & short5049-0.13-0.13-0.19-0.18-0.04-0.04EMA
90A — long only24240.050.030.080.040.020.01plain
90B — long & short4848-0.13-0.15-0.19-0.21-0.04-0.05plain
95A — long only2424-0.01-0.03-0.01-0.04-0.00-0.01plain
95B — long & short4848-0.20-0.21-0.28-0.30-0.06-0.07plain
100A — long only23230.00-0.010.01-0.020.00-0.00plain
100B — long & short4747-0.20-0.21-0.28-0.30-0.06-0.07plain

“Better?” compares Sharpe at the same N and direction. Sortino divides by downside deviation only, so it does not penalise the large winning days a breakout system is built to catch; Calmar is CAGR over the worst peak-to-trough drawdown.