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
1978-01-04 → 2026-09-22
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. 12,273 daily bars. Generated 2026-09-24 13:34:12 UTC.

NA: ProfitA: TradesA: Win RateB: ProfitB: Long P&LB: Short P&LB: TradesB: Win Rate
20+130.013433%+793.0+130.0+663.026841%
23+202.812131%+947.0+202.8+744.324141%
26+271.810231%+1085.0+271.8+813.320342%
29+199.09532%+939.5+199.0+740.518943%
32+146.59030%+834.5+146.5+688.017942%
35+78.38431%+698.0+78.3+619.816741%
38+78.07932%+697.5+78.0+619.515741%
41+140.07334%+821.5+140.0+681.514543%
44+202.36835%+952.5+202.3+750.313543%
47+133.56630%+820.8+133.5+687.313140%
50+130.06231%+823.5+130.0+693.512339%
53+221.55932%+1010.8+221.5+789.311740%
56+98.55831%+764.8+98.5+666.311540%
59+164.05632%+901.0+164.0+737.011141%
62+99.35531%+771.5+99.3+672.310940%
65-15.35529%+542.5-15.3+557.810939%
68+49.35231%+671.5+49.3+622.310343%
71-21.35129%+530.5-21.3+551.810142%
74+70.84829%+714.5+70.8+643.89541%
77+37.04827%+647.0+37.0+610.09540%
80+122.04529%+817.0+122.0+695.08943%
85+134.34330%+841.5+134.3+707.38544%
90+97.54231%+768.0+97.5+670.58343%
95+136.33834%+845.5+136.3+709.37548%
100+38.33732%+655.3+38.3+617.07347%

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 = 3–20 months over 585 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.096 on monthly bars against 0.039 on daily, and 7 of 36 monthly cells have a positive Sharpe at all (the daily grid manages 31 of 50). The best monthly cell is N = 3 at Sharpe 0.08, against the daily grid's best of 0.30 at N = 26.

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 19 trades in total, and the best one takes 61. 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+139.331-1.2%-79.1%-0.07-0.11-0.02+858.8611.9%-65.2%0.080.130.03
4+115.029-1.5%-80.5%-0.09-0.14-0.02+810.3571.2%-66.7%0.060.090.02
5+75.022-1.5%-84.8%-0.09-0.14-0.02+681.8441.0%-79.4%0.040.070.01
6+45.519-1.1%-80.0%-0.07-0.11-0.01+622.8381.1%-80.2%0.050.080.01
7-52.017-1.8%-82.4%-0.11-0.17-0.02+427.834-0.2%-84.4%-0.01-0.02-0.00
8+60.016-1.4%-78.0%-0.09-0.13-0.02+670.3310.2%-76.9%0.010.020.00
9+103.014-1.5%-78.0%-0.09-0.14-0.02+758.5270.4%-75.0%0.020.030.01
10+9.814-2.1%-79.7%-0.12-0.18-0.03+599.827-0.4%-76.2%-0.02-0.03-0.00
11+95.512-1.6%-80.6%-0.10-0.15-0.02+771.3230.9%-81.6%0.050.070.01
12-3.312-2.3%-86.3%-0.15-0.21-0.03+573.823-0.6%-90.3%-0.03-0.04-0.01
13-22.511-2.3%-85.0%-0.14-0.21-0.03+480.022-0.7%-90.3%-0.04-0.05-0.01
14-95.011-2.7%-87.4%-0.17-0.24-0.03+335.022-1.5%-91.3%-0.08-0.11-0.02
15-295.510-3.7%-91.5%-0.24-0.33-0.04-66.021-3.7%-96.4%-0.18-0.25-0.04
16-354.810-4.1%-92.7%-0.26-0.36-0.04-184.521-4.3%-97.4%-0.21-0.29-0.04
17-430.39-4.1%-92.0%-0.27-0.36-0.05-335.519-3.9%-95.4%-0.19-0.26-0.04
18-362.58-3.6%-88.7%-0.23-0.32-0.04-218.017-2.8%-90.9%-0.14-0.19-0.03
19-362.58-3.6%-88.7%-0.23-0.32-0.04-218.017-2.8%-90.9%-0.14-0.19-0.03
20-425.58-3.9%-90.6%-0.26-0.35-0.04-344.017-3.5%-93.4%-0.17-0.23-0.04

Monthly bars 1978-01-31 → 2026-09-30. 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 42 and on Calmar in 42. Medians move the wrong way on all three measures: Sharpe 0.055 against 0.039, Sortino 0.078 against 0.055, Calmar 0.013 against 0.010.

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 only134 → 89-0.010.03-0.010.05-0.000.01EMA
20B — long & short268 → 2080.160.230.220.330.050.07EMA
23A — long only121 → 830.010.040.020.060.000.01EMA
23B — long & short241 → 1910.200.260.280.360.060.07EMA
26A — long only102 → 760.080.060.120.090.020.01plain
26B — long & short203 → 1690.300.300.430.420.080.07plain
29A — long only95 → 700.040.040.050.060.010.01EMA
29B — long & short189 → 1580.240.260.340.370.070.07EMA
32A — long only90 → 670.010.030.020.050.000.01EMA
32B — long & short179 → 1510.200.230.280.330.060.06EMA
35A — long only84 → 65-0.010.02-0.010.03-0.000.00EMA
35B — long & short167 → 1440.160.180.220.260.040.05EMA
38A — long only79 → 63-0.020.01-0.030.01-0.000.00EMA
38B — long & short157 → 1380.140.160.200.220.040.04EMA
41A — long only73 → 600.020.020.030.020.000.00plain
41B — long & short145 → 1290.200.210.280.300.050.06EMA
44A — long only68 → 580.010.000.010.010.000.00plain
44B — long & short135 → 1240.190.170.270.240.060.05plain
47A — long only66 → 56-0.01-0.01-0.02-0.01-0.00-0.00EMA
47B — long & short131 → 1200.160.160.230.220.050.04plain
50A — long only62 → 53-0.03-0.02-0.04-0.02-0.01-0.00EMA
50B — long & short123 → 1140.150.130.210.190.040.03plain
53A — long only59 → 51-0.010.00-0.010.00-0.000.00EMA
53B — long & short117 → 1090.190.180.270.250.060.05plain
56A — long only58 → 50-0.05-0.03-0.07-0.04-0.01-0.01EMA
56B — long & short115 → 1070.120.120.170.170.040.04EMA
59A — long only56 → 48-0.05-0.02-0.06-0.03-0.01-0.00EMA
59B — long & short111 → 1030.130.140.190.200.040.05EMA
62A — long only55 → 48-0.07-0.05-0.10-0.08-0.01-0.01EMA
62B — long & short109 → 1020.100.110.140.150.030.03EMA
65A — long only55 → 48-0.12-0.09-0.16-0.12-0.02-0.02EMA
65B — long & short109 → 1020.030.050.050.070.010.01EMA
68A — long only52 → 45-0.08-0.05-0.11-0.07-0.01-0.01EMA
68B — long & short103 → 960.090.100.120.150.030.03EMA
71A — long only51 → 45-0.11-0.08-0.15-0.11-0.02-0.01EMA
71B — long & short101 → 950.040.060.060.090.010.02EMA
74A — long only48 → 43-0.07-0.05-0.10-0.07-0.01-0.01EMA
74B — long & short95 → 900.080.090.110.130.020.03EMA
77A — long only48 → 43-0.09-0.06-0.13-0.08-0.02-0.01EMA
77B — long & short95 → 900.060.080.080.110.020.02EMA
80A — long only45 → 41-0.06-0.04-0.09-0.06-0.01-0.01EMA
80B — long & short89 → 850.110.120.150.170.030.03EMA
85A — long only43 → 39-0.07-0.03-0.09-0.04-0.01-0.01EMA
85B — long & short85 → 810.110.130.160.190.030.04EMA
90A — long only42 → 38-0.08-0.04-0.11-0.06-0.01-0.01EMA
90B — long & short83 → 790.090.120.130.170.030.04EMA
95A — long only38 → 37-0.07-0.06-0.09-0.08-0.01-0.01EMA
95B — long & short75 → 740.120.120.170.180.040.04EMA
100A — long only37 → 36-0.10-0.09-0.14-0.13-0.02-0.02EMA
100B — long & short73 → 720.060.070.090.100.020.02EMA

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