Strategy Analytics

Cocoa — Moving Average & Risk Layers

The same sections as the Corn MA page, on Cocoa (CC=F). Volatility ranges are calibrated to this market rather than copied from Corn.

Instrument
Cocoa (CC=F)
History
1979-12-19 → 2026-09-22
Trading Days / Year
252
Volatility Grid
20–60% (step 5)
All results are net of trading costs. Every round turn (entry + exit) of one contract pays $5.00 commission + 1.5 ticks of slippage (1.5 × $10.00) = $20.00, i.e. 2 price points at $10 per point. Half is charged on entry and half on exit (a position still open at the end has paid only its entry half); on the compounding curve the cost is a share of the contract's real value at entry, so it weighs more on short, frequent trades. Profit Factor is gross profit ÷ gross loss over all trades (not the ATR target multiple sections 4–5 call “profit factor”); Avg Trade and Avg Loss are net USD per contract. Contract rolls are not charged as extra round turns.
How this market is calibrated. The volatility factor grid is 20–60%, derived from p10-p90 of annualized 20-day volatility, rounded to a nice step on this market's own history — not Corn's 20–60%, which would be meaningless here. Annualized 20-day volatility percentiles: p5 15.6%, p10 17.5%, p25 21.5%, p50 27.0%, p75 34.3%, p90 43.9%, p95 52.4%. Metrics annualize with 252 trading days per year. A cell at −100% CAGR means a position lost more than its stake — typically a short in a contract that more than doubled before the exit — and the later numbers in that cell are not meaningful. History from 1979-12-19: this card now runs on Norgate's Panama-adjusted series, which for most markets starts in 1978–1983 — years or decades before the feeds this site used earlier (1998–2019, depending on the market). Trend results include the 1980s–90s trends and buy-and-hold includes decades of roll cost, so neither is comparable to figures from those earlier feeds.

1. Moving Average Optimization

SMA periods 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120. Entry when the SMA turns up, exit when it turns down (System A flat, System B reverses short). Returns are percentages of capital on a compounding equity curve.

Total Return By SMA Period

System A (Long Only) vs System B (Long & Short, stop-and-reverse on the SMA slope). Percentage return on a compounding equity curve.

2. Risk Metrics — Base Systems

CAGR, total return, max drawdown, Sharpe, trade count, profit factor and the average trade / average losing trade for every base variant of both systems over 11,727 daily bars. System A = Long Only, System B = Long & Short (stop-and-reverse).

Donchian Breakout — Pure Channel

Lookback N grid 20–80 step 3, then 85, 90, 95, 100. Exit on the opposite N-period band break.

NA: CAGRA: Total ReturnA: Max DDA: SharpeA: SortinoA: CalmarA: TradesA: Profit FactorA: Avg TradeA: Avg LossB: CAGRB: Total ReturnB: Max DDB: SharpeB: SortinoB: CalmarB: TradesB: Profit FactorB: Avg TradeB: Avg Loss
20-7.5%-97.3%-99.2%-0.33-0.46-0.081540.82−$209−$1,580-13.1%-99.9%-100.0%-0.43-0.60-0.133080.82−$199−$1,613
23-6.3%-95.1%-99.0%-0.27-0.38-0.061330.99−$12−$1,469-11.2%-99.6%-99.9%-0.37-0.51-0.112661.00−$1−$1,558
26-6.8%-96.3%-99.0%-0.30-0.42-0.071210.80−$254−$1,763-12.6%-99.8%-100.0%-0.41-0.58-0.132420.82−$242−$1,945
29-5.9%-94.2%-98.3%-0.26-0.37-0.061070.79−$277−$1,815-10.8%-99.5%-99.9%-0.35-0.50-0.112140.81−$262−$2,032
32-6.4%-95.4%-98.6%-0.28-0.39-0.061000.76−$349−$1,923-11.7%-99.7%-99.9%-0.38-0.53-0.122000.78−$331−$2,141
35-5.6%-93.1%-98.5%-0.24-0.34-0.06930.98−$33−$1,708-9.7%-99.1%-99.9%-0.32-0.45-0.101850.99−$14−$1,841
38-5.5%-92.9%-98.5%-0.24-0.34-0.06851.00−$4−$1,730-10.1%-99.3%-99.9%-0.34-0.47-0.101701.00−$2−$1,900
41-5.8%-93.8%-98.6%-0.25-0.36-0.06790.94−$81−$1,873-10.6%-99.5%-99.9%-0.36-0.49-0.111580.95−$79−$2,046
44-5.9%-94.1%-98.6%-0.26-0.36-0.06740.89−$182−$2,050-10.8%-99.5%-99.9%-0.36-0.50-0.111480.89−$180−$2,188
47-5.3%-92.0%-98.5%-0.23-0.32-0.05701.10$171−$2,116-9.3%-98.9%-99.9%-0.31-0.43-0.091401.12$174−$2,011
50-4.8%-89.8%-98.2%-0.21-0.29-0.05661.13$224−$2,082-8.4%-98.3%-99.9%-0.28-0.39-0.081321.15$226−$2,013
53-4.7%-89.2%-98.1%-0.20-0.29-0.05631.13$220−$2,207-8.1%-98.1%-99.9%-0.27-0.38-0.081261.14$222−$2,098
56-3.5%-81.1%-96.1%-0.15-0.21-0.04571.12$225−$2,335-5.8%-93.8%-99.4%-0.20-0.28-0.061141.14$228−$2,343
59-4.4%-87.8%-97.1%-0.19-0.27-0.05561.02$42−$2,349-7.4%-97.3%-99.7%-0.25-0.35-0.071121.02$39−$2,378
62-4.2%-86.4%-96.3%-0.18-0.26-0.04530.96−$86−$2,608-7.1%-96.7%-99.4%-0.24-0.33-0.071060.95−$89−$2,626
65-3.5%-80.7%-94.7%-0.15-0.21-0.04500.99−$12−$2,662-5.7%-93.5%-98.9%-0.19-0.27-0.061000.99−$15−$2,678
68-3.7%-82.7%-95.0%-0.16-0.23-0.04490.95−$117−$2,667-6.1%-94.8%-99.0%-0.21-0.29-0.06980.94−$121−$2,772
71-1.4%-49.0%-89.6%-0.06-0.09-0.02431.65$954−$1,845-1.2%-42.0%-95.0%-0.04-0.06-0.01861.72$946−$1,878
74-1.3%-45.0%-88.2%-0.05-0.08-0.01411.70$1,002−$1,847-0.7%-29.4%-93.2%-0.03-0.04-0.01821.77$995−$1,861
77-0.9%-34.1%-85.9%-0.04-0.05-0.01391.74$1,105−$1,8120.2%9.6%-90.0%0.010.010.00781.85$1,097−$1,826
80-0.5%-19.1%-82.6%-0.02-0.03-0.01371.82$1,220−$1,8440.8%44.4%-86.7%0.030.040.01741.91$1,204−$1,923
85-0.6%-22.8%-83.0%-0.02-0.04-0.01351.87$1,304−$1,8120.5%25.3%-89.3%0.020.020.01701.94$1,270−$1,930
90-0.9%-33.7%-85.4%-0.04-0.06-0.01341.81$1,267−$1,911-0.2%-7.2%-92.1%-0.01-0.01-0.00681.87$1,224−$1,995
95-0.6%-23.8%-86.4%-0.03-0.04-0.01321.92$1,447−$1,934-0.1%-4.9%-93.2%-0.00-0.01-0.00641.96$1,390−$2,064
100-0.9%-34.9%-88.0%-0.04-0.06-0.01311.80$1,342−$2,090-0.8%-31.7%-94.8%-0.03-0.04-0.01621.83$1,277−$2,226

Moving Average — SMA Slope

SMA period grid 30→70 step 3, then 70→120 step 5. Exit/reverse when the SMA slope flips.

SMAA: CAGRA: Total ReturnA: Max DDA: SharpeA: SortinoA: CalmarA: TradesA: Profit FactorA: Avg TradeA: Avg LossB: CAGRB: Total ReturnB: Max DDB: SharpeB: SortinoB: CalmarB: TradesB: Profit FactorB: Avg TradeB: Avg Loss
30-7.2%-96.9%-99.2%-0.31-0.44-0.074930.94−$30−$667-12.4%-99.8%-100.0%-0.41-0.57-0.129860.94−$27−$671
33-7.0%-96.6%-98.9%-0.31-0.43-0.074540.81−$104−$738-12.2%-99.8%-100.0%-0.41-0.57-0.129080.82−$101−$788
36-8.7%-98.6%-99.6%-0.39-0.54-0.094510.80−$105−$690-15.7%-100.0%-100.0%-0.52-0.71-0.169020.81−$101−$748
39-6.6%-95.8%-98.9%-0.29-0.41-0.074650.91−$41−$661-11.5%-99.7%-99.9%-0.38-0.53-0.119300.92−$39−$700
42-4.4%-87.9%-97.5%-0.20-0.28-0.054330.98−$7−$659-7.5%-97.4%-99.7%-0.25-0.35-0.088670.99−$6−$701
45-5.8%-93.9%-98.7%-0.26-0.36-0.064230.96−$16−$583-10.3%-99.4%-99.9%-0.35-0.48-0.108470.97−$14−$661
48-4.6%-88.9%-97.7%-0.20-0.29-0.054031.06$28−$629-7.8%-97.7%-99.7%-0.26-0.37-0.088071.06$30−$675
51-4.3%-87.0%-97.9%-0.19-0.27-0.043861.18$75−$573-7.2%-97.0%-99.8%-0.24-0.34-0.077731.17$77−$635
54-5.4%-92.6%-97.9%-0.24-0.34-0.063670.95−$26−$703-9.4%-99.0%-99.8%-0.32-0.44-0.097350.95−$24−$729
57-3.5%-81.3%-96.1%-0.16-0.22-0.043581.17$75−$615-5.5%-92.8%-99.4%-0.19-0.26-0.067161.17$76−$661
60-4.6%-88.6%-96.5%-0.20-0.28-0.053520.97−$17−$707-7.4%-97.2%-99.5%-0.25-0.35-0.077040.97−$16−$717
63-5.4%-92.4%-97.6%-0.24-0.34-0.063500.89−$54−$669-9.3%-99.0%-99.8%-0.32-0.44-0.097000.90−$52−$716
66-4.8%-90.1%-97.0%-0.21-0.30-0.053550.93−$32−$655-8.3%-98.2%-99.6%-0.28-0.39-0.087100.93−$31−$680
69-2.9%-75.1%-91.7%-0.13-0.19-0.033110.97−$13−$730-4.8%-89.9%-98.1%-0.16-0.23-0.056220.97−$14−$782
70-3.7%-82.5%-94.3%-0.16-0.23-0.043070.92−$42−$748-6.2%-94.8%-98.6%-0.21-0.29-0.066140.92−$43−$788
75-3.1%-76.5%-94.5%-0.14-0.19-0.032921.11$50−$674-4.6%-89.0%-98.5%-0.16-0.22-0.055841.10$50−$709
80-1.6%-52.9%-86.7%-0.07-0.10-0.022711.05$25−$754-2.5%-68.6%-92.6%-0.08-0.12-0.035421.04$23−$805
85-2.7%-72.0%-91.7%-0.12-0.17-0.032720.99−$7−$723-4.5%-88.1%-97.3%-0.15-0.21-0.055440.98−$9−$824
90-0.6%-23.5%-82.9%-0.03-0.04-0.012711.16$76−$660-0.0%-2.1%-75.3%-0.00-0.00-0.005421.14$70−$736
95-1.7%-55.2%-89.8%-0.08-0.11-0.022541.18$84−$671-1.9%-58.6%-94.4%-0.07-0.09-0.025081.16$79−$733
100-2.8%-72.7%-91.5%-0.12-0.18-0.032251.01$5−$781-4.1%-85.6%-96.6%-0.14-0.20-0.044500.99−$4−$846
105-3.5%-81.3%-94.3%-0.16-0.23-0.042430.91−$57−$837-5.7%-93.3%-98.5%-0.20-0.28-0.064860.89−$68−$835
110-4.2%-86.4%-96.7%-0.19-0.27-0.042640.98−$9−$827-7.2%-96.9%-99.6%-0.25-0.36-0.075280.96−$21−$784
115-4.8%-89.8%-97.2%-0.22-0.30-0.052650.96−$24−$701-8.4%-98.3%-99.8%-0.30-0.41-0.085300.94−$32−$695
120-1.7%-55.4%-91.8%-0.08-0.11-0.022361.31$145−$659-2.2%-63.8%-97.4%-0.08-0.11-0.024721.30$134−$668

2b. EMA-170 Direction Filter On The Donchian Breakout

Client 2026-07-30. The same Donchian channel and N grid as section 2, with one extra precondition: a long may only open while the 170-period EMA is rising, a short only while it is falling. The band break is still required on top, so the filter only removes trades. Exits are untouched. The unfiltered Donchian table in section 2 is the baseline — read them side by side.

Donchian gated by the EMA-170 direction

Same lookback grid as section 2. Compare row for row against the unfiltered Donchian table above.

NA: CAGRA: Total ReturnA: Max DDA: SharpeA: SortinoA: CalmarA: TradesA: Profit FactorA: Avg TradeA: Avg LossB: CAGRB: Total ReturnB: Max DDB: SharpeB: SortinoB: CalmarB: TradesB: Profit FactorB: Avg TradeB: Avg Loss
20-5.3%-92.2%-97.0%-0.27-0.37-0.061160.84−$193−$1,662-9.2%-98.9%-99.8%-0.34-0.47-0.092510.93−$66−$1,441
23-4.5%-88.2%-96.8%-0.22-0.31-0.051031.00$0−$1,550-7.7%-97.6%-99.7%-0.28-0.40-0.082211.10$97−$1,466
26-5.6%-93.2%-97.5%-0.27-0.38-0.06980.77−$323−$1,855-9.3%-98.9%-99.8%-0.34-0.47-0.092080.92−$97−$1,743
29-5.1%-91.4%-96.7%-0.25-0.34-0.05900.74−$374−$1,898-8.2%-98.2%-99.7%-0.29-0.41-0.081890.94−$79−$1,795
32-5.5%-92.9%-97.1%-0.26-0.36-0.06860.71−$457−$2,031-9.1%-98.8%-99.8%-0.33-0.45-0.091800.89−$139−$1,885
35-4.8%-89.8%-97.1%-0.22-0.31-0.05800.92−$112−$1,816-7.9%-97.8%-99.7%-0.28-0.39-0.081671.05$62−$1,771
38-5.1%-91.4%-97.6%-0.24-0.33-0.05760.90−$142−$1,842-8.4%-98.3%-99.8%-0.29-0.41-0.081561.06$74−$1,810
41-5.3%-92.0%-97.8%-0.24-0.34-0.05720.88−$182−$1,937-8.5%-98.4%-99.8%-0.30-0.42-0.091461.02$31−$1,917
44-5.2%-91.7%-97.6%-0.24-0.33-0.05680.84−$265−$2,098-8.9%-98.7%-99.8%-0.31-0.43-0.091380.96−$64−$2,067
47-4.2%-86.7%-97.0%-0.19-0.27-0.04641.10$160−$2,140-8.5%-98.4%-99.8%-0.29-0.41-0.091321.08$127−$2,104
50-3.9%-84.6%-96.6%-0.18-0.25-0.04611.11$184−$2,113-7.7%-97.6%-99.7%-0.26-0.37-0.081251.11$173−$2,113
53-3.8%-83.2%-96.3%-0.17-0.24-0.04581.11$187−$2,240-7.2%-97.0%-99.7%-0.25-0.35-0.071191.12$190−$2,184
56-3.0%-75.3%-93.9%-0.13-0.19-0.03531.10$187−$2,371-5.0%-90.9%-98.9%-0.17-0.24-0.051081.15$253−$2,369
59-3.4%-80.4%-95.0%-0.16-0.22-0.04521.05$88−$2,347-6.2%-94.8%-99.3%-0.21-0.30-0.061061.06$107−$2,378
62-3.4%-79.5%-94.2%-0.15-0.21-0.04500.99−$28−$2,608-5.9%-94.1%-99.0%-0.20-0.28-0.061010.99−$15−$2,633
65-2.9%-74.9%-93.5%-0.13-0.18-0.03481.01$27−$2,629-4.8%-90.0%-98.2%-0.17-0.23-0.05961.03$54−$2,668
68-3.1%-77.2%-93.8%-0.14-0.20-0.03470.97−$76−$2,627-5.3%-91.9%-98.4%-0.18-0.25-0.05940.97−$53−$2,762
71-0.8%-32.4%-87.2%-0.04-0.05-0.01411.74$1,057−$1,769-0.3%-14.6%-92.4%-0.01-0.02-0.00831.82$1,045−$1,815
74-0.7%-26.8%-84.5%-0.03-0.04-0.01391.80$1,115−$1,763-0.1%-5.9%-90.6%-0.00-0.01-0.00801.83$1,049−$1,815
77-0.5%-22.5%-83.4%-0.02-0.03-0.01381.80$1,176−$1,7490.5%28.8%-88.3%0.020.030.01771.89$1,132−$1,789
80-0.6%-22.8%-83.4%-0.02-0.03-0.01371.80$1,206−$1,7910.7%37.8%-87.3%0.020.030.01741.90$1,197−$1,889
85-0.6%-25.6%-83.6%-0.03-0.04-0.01351.86$1,293−$1,7570.4%20.8%-89.7%0.010.020.00701.93$1,265−$1,895
90-0.9%-33.7%-85.4%-0.04-0.06-0.01341.81$1,267−$1,911-0.2%-7.2%-92.1%-0.01-0.01-0.00681.87$1,224−$1,995
95-0.6%-23.8%-86.4%-0.03-0.04-0.01321.92$1,447−$1,934-0.1%-4.9%-93.2%-0.00-0.01-0.00641.96$1,390−$2,064
100-0.9%-34.9%-88.0%-0.04-0.06-0.01311.80$1,342−$2,090-0.8%-31.7%-94.8%-0.03-0.04-0.01621.83$1,277−$2,226

3. Equity Curve Explorer

Pick a period, direction and ATR profit target (or Base) to see its month-end cumulative return, starting at 0%.

Every ATR profit target is overlaid against the base system.

Loading equity curves…

4. Profit Factor Sweep

An ATR profit target swept 1.5 → 10.0 (step 0.5) for every variant. Target = entry ± PF × ATR₂₀, frozen at entry. The swept multiple is labelled ATR Target below, so it is not confused with the Profit Factor column (gross profit ÷ gross loss).

Loading atr target grid…

5. Volatility-Adjusted Profit Target (Dynamic)

The same sweep as section 4, but the target is recomputed each day from the current ATR instead of frozen at entry, so it breathes with volatility while staying anchored to the entry price. Click an ATR target under the charts to take it off them and let the axis rescale to the rest.

Loading atr target grid…

6. Stop Loss Sweep

A protective ATR stop swept 1.5 → 10.0 (step 0.5). Stop = entry ∓ SL × ATR₂₀, no take-profit; the position still reverses on the opposite SMA-slope signal if the stop is not hit first.

Loading stop loss factor grid…

7. ATR Trailing Stop Sweep

A trailing ATR stop, distinct from section 6: stop = best price reached since entry ∓ f × ATR₂₀, recomputed daily. It ratchets in the trade's favour and retreats when volatility rises. Swept 1.0 → 10.0 (step 0.5).

Loading trailing factor grid…

7b. ATR Trailing Stop — Equity Curve

Section 7 as an equity curve: pick an SMA period, direction and trailing factor to see the strategy's month-end cumulative return, net of costs, against the plain SMA system with no stop. Every factor of the section-7 sweep is here, so any row of its table can be looked at as a curve.

Loading equity curves…

8. Stop Loss + Time Stop — Equity Curves

The full strategy: SMA entry, ATR stop loss, and a time stop that exits a trade still not in profit 5/10/15/20/30/40 days after entry. Split into one file per SMA period so this loads in a fraction of the Corn page's payload.

Loading equity curves…

9. Time Stop Only — Equity Curves

The time stop judged on its own, with no ATR stop, against the plain SMA baseline. Each line exits a trade still underwater 5/10/15/20/30/40 days after entry.

Loading equity curves…

10. Volatility Filter Sweep

Volatility is the annualized standard deviation of daily returns — the standard deviation of the last 20 daily returns × √252. The factor is a maximum: a new position opens only on a day at or below it, so the strategy stands aside in turbulence. An open trade is never closed by the filter.

Loading volatility factor grid…

11. Volatility Filter + ATR Trailing Stop

The first combined risk layer: the section-10 filter and the section-7 trailing stop in one strategy, swept together across every combination. The last column is section 7 on its own, so you can read left to right whether adding the filter helps.

Loading the volatility × trailing-stop grid…

11b. Volatility Filter + ATR Trailing Stop — Equity Curve

Section 11 as an equity curve: pick an SMA period, direction, trailing factor and volatility cap to see the combined strategy's month-end cumulative return, net of costs, against the trailing stop alone (section 7, same factor) and the plain SMA system. Trailing factors 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; the section-11 matrix above keeps every half-step.

Loading equity curves…

12. Volatility Regime Switch

The same threshold as section 10, but acting as a regime switch: above it the open position is closed at that day's close, nothing opens while volatility stays high, and the position re-opens on the first calm day the SMA slope still points the right way — no fresh signal required.

Loading volatility factor grid…

13. Reset / No Reset

Section 7's trailing stop with the client's 2026-08-04 question on top: after a stop-out, does re-entering beat staying out? No Reset shuts that side until the SMA slope has flipped away and back, so a market that keeps falling leaves the saved profit saved. Reset waits for a new high — the side re-opens when the market closes back above the stopped-out trade's highest high, at a worse price than the exit, so that a reversal is not missed. Immediate is what section 7 itself does, since its entry signal is a state and not an event: the next bar re-enters while the slope still points the same way. Both directions are swept, so System A only resets long and System B resets whichever side was stopped out.

Loading reset-rule grid…

Source: Norgate Data continuous futures, Panama (difference) back-adjusted, rolled one business day before last trade or first notice; percentages over the real contract price (daily OHLC), full available history. Generated 2026-10-06 13:16:09 UTC.