Strategy Analytics
Corn Donchian Breakout
Pure Donchian channel breakout optimization on Corn futures — which lookback N fits the market's history best.
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.
| N | A: Profit | A: Trades | A: Win Rate | B: Profit | B: Long P&L | B: Short P&L | B: Trades | B: Win Rate |
|---|---|---|---|---|---|---|---|---|
| 20 | +308.3 | 81 | 37% | +327.0 | +308.3 | +18.8 | 161 | 38% |
| 23 | +255.0 | 69 | 35% | +220.5 | +255.0 | -34.5 | 137 | 36% |
| 26 | +235.0 | 62 | 35% | +182.5 | +235.0 | -52.5 | 123 | 37% |
| 29 | +170.3 | 57 | 32% | +53.0 | +170.3 | -117.3 | 113 | 35% |
| 32 | -37.5 | 55 | 27% | -358.8 | -37.5 | -321.3 | 109 | 30% |
| 35 | +38.8 | 51 | 29% | -206.3 | +38.8 | -245.0 | 101 | 33% |
| 38 | +36.5 | 47 | 32% | -210.8 | +36.5 | -247.3 | 93 | 35% |
| 41 | +191.0 | 42 | 36% | +98.3 | +191.0 | -92.8 | 83 | 37% |
| 44 | +463.5 | 38 | 39% | +643.3 | +463.5 | +179.8 | 75 | 39% |
| 47 | +384.5 | 38 | 39% | +485.3 | +384.5 | +100.8 | 75 | 36% |
| 50 | +394.5 | 35 | 43% | +505.8 | +394.5 | +111.3 | 70 | 36% |
| 53 | +442.5 | 34 | 44% | +603.3 | +442.5 | +160.8 | 68 | 37% |
| 56 | +452.8 | 32 | 47% | +632.3 | +452.8 | +179.5 | 64 | 38% |
| 59 | +391.0 | 32 | 44% | +505.8 | +391.0 | +114.8 | 64 | 34% |
| 62 | +365.8 | 31 | 39% | +461.8 | +365.8 | +96.0 | 62 | 29% |
| 65 | +374.8 | 29 | 38% | +485.3 | +374.8 | +110.5 | 58 | 29% |
| 68 | +356.8 | 28 | 32% | +449.3 | +356.8 | +92.5 | 56 | 25% |
| 71 | +405.8 | 27 | 33% | +547.3 | +405.8 | +141.5 | 54 | 26% |
| 74 | +313.0 | 27 | 33% | +363.5 | +313.0 | +50.5 | 54 | 26% |
| 77 | +291.5 | 27 | 33% | +318.0 | +291.5 | +26.5 | 54 | 26% |
| 80 | +238.5 | 26 | 35% | +212.5 | +238.5 | -26.0 | 52 | 27% |
| 85 | +168.8 | 25 | 36% | +76.3 | +168.8 | -92.5 | 50 | 28% |
| 90 | +183.0 | 24 | 33% | +107.8 | +183.0 | -75.3 | 48 | 27% |
| 95 | +29.8 | 24 | 33% | -193.3 | +29.8 | -223.0 | 48 | 27% |
| 100 | +31.3 | 23 | 35% | -216.8 | +31.3 | -248.0 | 47 | 28% |
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 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.
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: Profit | A: Trades | A: CAGR | A: Max DD | A: Sharpe | A: Sortino | A: Calmar | B: Profit | B: Trades | B: CAGR | B: Max DD | B: Sharpe | B: Sortino | B: Calmar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3 | -86.3 | 19 | -0.5% | -69.7% | -0.03 | -0.04 | -0.01 | -450.3 | 38 | -7.0% | -90.9% | -0.25 | -0.34 | -0.08 |
| 4 | -130.3 | 18 | -1.2% | -69.7% | -0.06 | -0.08 | -0.02 | -529.3 | 36 | -8.2% | -90.9% | -0.29 | -0.40 | -0.09 |
| 5 | -336.0 | 13 | -3.0% | -75.7% | -0.13 | -0.18 | -0.04 | -923.3 | 26 | -10.6% | -95.6% | -0.37 | -0.49 | -0.11 |
| 6 | -431.3 | 12 | -3.7% | -78.5% | -0.16 | -0.23 | -0.05 | -1146.0 | 25 | -12.8% | -97.1% | -0.44 | -0.58 | -0.13 |
| 7 | -367.0 | 11 | -3.0% | -81.1% | -0.14 | -0.20 | -0.04 | -1014.3 | 23 | -11.1% | -95.6% | -0.39 | -0.53 | -0.12 |
| 8 | -166.8 | 10 | -1.4% | -73.1% | -0.06 | -0.09 | -0.02 | -613.8 | 20 | -8.1% | -91.1% | -0.29 | -0.40 | -0.09 |
| 9 | -340.3 | 10 | -2.7% | -78.4% | -0.13 | -0.18 | -0.03 | -960.8 | 20 | -11.1% | -95.9% | -0.39 | -0.52 | -0.12 |
| 10 | -327.8 | 8 | -2.9% | -75.6% | -0.14 | -0.19 | -0.04 | -903.8 | 15 | -11.9% | -97.5% | -0.41 | -0.53 | -0.12 |
| 11 | -349.5 | 8 | -3.2% | -75.6% | -0.15 | -0.21 | -0.04 | -925.5 | 15 | -12.2% | -97.5% | -0.42 | -0.54 | -0.13 |
| 12 | -435.0 | 8 | -4.0% | -79.2% | -0.19 | -0.26 | -0.05 | -1096.5 | 15 | -14.5% | -98.6% | -0.49 | -0.61 | -0.15 |
| 13 | -210.3 | 5 | -1.5% | -66.9% | -0.07 | -0.09 | -0.02 | -647.0 | 10 | -8.9% | -93.8% | -0.31 | -0.40 | -0.10 |
| 14 | -213.3 | 5 | -1.5% | -66.9% | -0.07 | -0.10 | -0.02 | -653.0 | 10 | -9.2% | -94.2% | -0.32 | -0.41 | -0.10 |
| 15 | -213.3 | 5 | -1.5% | -66.9% | -0.07 | -0.10 | -0.02 | -653.0 | 10 | -9.2% | -94.2% | -0.32 | -0.41 | -0.10 |
| 16 | -213.3 | 5 | -1.5% | -66.9% | -0.07 | -0.10 | -0.02 | -653.0 | 10 | -9.2% | -94.2% | -0.32 | -0.41 | -0.10 |
| 17 | +38.0 | 4 | -0.1% | -55.0% | -0.01 | -0.01 | -0.00 | -150.5 | 8 | -5.7% | -84.7% | -0.20 | -0.27 | -0.07 |
| 18 | +38.0 | 4 | -0.1% | -55.0% | -0.01 | -0.01 | -0.00 | -150.5 | 8 | -5.7% | -84.7% | -0.20 | -0.27 | -0.07 |
| 19 | +38.0 | 4 | -0.1% | -55.0% | -0.01 | -0.01 | -0.00 | -150.5 | 8 | -5.7% | -84.7% | -0.20 | -0.27 | -0.07 |
| 20 | +38.0 | 4 | -0.1% | -55.0% | -0.01 | -0.01 | -0.00 | -150.5 | 8 | -5.7% | -84.7% | -0.20 | -0.27 | -0.07 |
Monthly bars 2000-07-31 → 2026-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.
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.
| N | Direction | Trades (plain → EMA) | Sharpe plain | Sharpe EMA | Sortino plain | Sortino EMA | Calmar plain | Calmar EMA | Better? |
|---|---|---|---|---|---|---|---|---|---|
| 20 | A — long only | 81 → 69 | 0.17 | 0.11 | 0.24 | 0.15 | 0.05 | 0.03 | plain |
| 20 | B — long & short | 161 → 140 | 0.01 | -0.05 | 0.02 | -0.07 | 0.00 | -0.01 | plain |
| 23 | A — long only | 69 → 61 | 0.16 | 0.11 | 0.23 | 0.15 | 0.05 | 0.03 | plain |
| 23 | B — long & short | 137 → 122 | 0.00 | -0.05 | 0.01 | -0.06 | 0.00 | -0.01 | plain |
| 26 | A — long only | 62 → 57 | 0.17 | 0.11 | 0.24 | 0.15 | 0.05 | 0.03 | plain |
| 26 | B — long & short | 123 → 114 | 0.03 | -0.06 | 0.04 | -0.08 | 0.01 | -0.02 | plain |
| 29 | A — long only | 57 → 52 | 0.13 | 0.11 | 0.19 | 0.16 | 0.04 | 0.03 | plain |
| 29 | B — long & short | 113 → 106 | -0.02 | -0.09 | -0.03 | -0.13 | -0.01 | -0.03 | plain |
| 32 | A — long only | 55 → 51 | 0.03 | 0.02 | 0.05 | 0.03 | 0.01 | 0.01 | plain |
| 32 | B — long & short | 109 → 103 | -0.16 | -0.21 | -0.22 | -0.29 | -0.05 | -0.06 | plain |
| 35 | A — long only | 51 → 47 | 0.07 | 0.07 | 0.10 | 0.10 | 0.02 | 0.02 | EMA |
| 35 | B — long & short | 101 → 96 | -0.10 | -0.14 | -0.14 | -0.19 | -0.03 | -0.04 | plain |
| 38 | A — long only | 47 → 43 | 0.07 | 0.08 | 0.10 | 0.11 | 0.02 | 0.02 | EMA |
| 38 | B — long & short | 93 → 88 | -0.09 | -0.12 | -0.13 | -0.17 | -0.03 | -0.04 | plain |
| 41 | A — long only | 42 → 38 | 0.13 | 0.14 | 0.18 | 0.20 | 0.05 | 0.05 | EMA |
| 41 | B — long & short | 83 → 78 | -0.03 | -0.03 | -0.05 | -0.05 | -0.01 | -0.01 | EMA |
| 44 | A — long only | 38 → 35 | 0.21 | 0.22 | 0.31 | 0.32 | 0.08 | 0.09 | EMA |
| 44 | B — long & short | 75 → 72 | 0.09 | 0.06 | 0.13 | 0.08 | 0.04 | 0.03 | plain |
| 47 | A — long only | 38 → 35 | 0.17 | 0.18 | 0.25 | 0.26 | 0.07 | 0.07 | EMA |
| 47 | B — long & short | 75 → 72 | 0.03 | 0.00 | 0.04 | 0.00 | 0.01 | 0.00 | plain |
| 50 | A — long only | 35 → 32 | 0.18 | 0.19 | 0.26 | 0.28 | 0.07 | 0.07 | EMA |
| 50 | B — long & short | 70 → 67 | 0.04 | 0.02 | 0.05 | 0.02 | 0.02 | 0.01 | plain |
| 53 | A — long only | 34 → 31 | 0.17 | 0.19 | 0.25 | 0.27 | 0.07 | 0.08 | EMA |
| 53 | B — long & short | 68 → 65 | 0.03 | 0.02 | 0.04 | 0.03 | 0.01 | 0.01 | plain |
| 56 | A — long only | 32 → 30 | 0.17 | 0.17 | 0.24 | 0.24 | 0.07 | 0.06 | plain |
| 56 | B — long & short | 64 → 62 | 0.02 | 0.00 | 0.03 | 0.00 | 0.01 | 0.00 | plain |
| 59 | A — long only | 32 → 30 | 0.14 | 0.13 | 0.20 | 0.19 | 0.05 | 0.04 | plain |
| 59 | B — long & short | 64 → 62 | -0.03 | -0.05 | -0.05 | -0.07 | -0.01 | -0.02 | plain |
| 62 | A — long only | 31 → 29 | 0.13 | 0.14 | 0.19 | 0.20 | 0.05 | 0.04 | EMA |
| 62 | B — long & short | 62 → 60 | -0.02 | -0.03 | -0.03 | -0.05 | -0.01 | -0.01 | plain |
| 65 | A — long only | 29 → 27 | 0.15 | 0.15 | 0.21 | 0.22 | 0.05 | 0.05 | EMA |
| 65 | B — long & short | 58 → 56 | 0.01 | -0.00 | 0.01 | -0.00 | 0.00 | -0.00 | plain |
| 68 | A — long only | 28 → 27 | 0.15 | 0.13 | 0.21 | 0.19 | 0.05 | 0.04 | plain |
| 68 | B — long & short | 56 → 55 | 0.01 | -0.02 | 0.01 | -0.02 | 0.00 | -0.01 | plain |
| 71 | A — long only | 27 → 26 | 0.17 | 0.16 | 0.25 | 0.23 | 0.06 | 0.05 | plain |
| 71 | B — long & short | 54 → 53 | 0.05 | 0.03 | 0.07 | 0.05 | 0.02 | 0.01 | plain |
| 74 | A — long only | 27 → 26 | 0.12 | 0.12 | 0.18 | 0.17 | 0.04 | 0.04 | plain |
| 74 | B — long & short | 54 → 53 | -0.02 | -0.03 | -0.03 | -0.04 | -0.01 | -0.01 | plain |
| 77 | A — long only | 27 → 26 | 0.11 | 0.11 | 0.16 | 0.15 | 0.04 | 0.03 | plain |
| 77 | B — long & short | 54 → 53 | -0.04 | -0.05 | -0.06 | -0.07 | -0.02 | -0.02 | plain |
| 80 | A — long only | 26 → 25 | 0.09 | 0.10 | 0.13 | 0.14 | 0.03 | 0.03 | EMA |
| 80 | B — long & short | 52 → 51 | -0.07 | -0.07 | -0.10 | -0.10 | -0.02 | -0.02 | EMA |
| 85 | A — long only | 25 → 24 | 0.05 | 0.06 | 0.07 | 0.08 | 0.02 | 0.02 | EMA |
| 85 | B — long & short | 50 → 49 | -0.13 | -0.13 | -0.19 | -0.18 | -0.04 | -0.04 | EMA |
| 90 | A — long only | 24 → 24 | 0.05 | 0.03 | 0.08 | 0.04 | 0.02 | 0.01 | plain |
| 90 | B — long & short | 48 → 48 | -0.13 | -0.15 | -0.19 | -0.21 | -0.04 | -0.05 | plain |
| 95 | A — long only | 24 → 24 | -0.01 | -0.03 | -0.01 | -0.04 | -0.00 | -0.01 | plain |
| 95 | B — long & short | 48 → 48 | -0.20 | -0.21 | -0.28 | -0.30 | -0.06 | -0.07 | plain |
| 100 | A — long only | 23 → 23 | 0.00 | -0.01 | 0.01 | -0.02 | 0.00 | -0.00 | plain |
| 100 | B — long & short | 47 → 47 | -0.20 | -0.21 | -0.28 | -0.30 | -0.06 | -0.07 | plain |
“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.