AdaFourHourDonchianWidthExpansionLong
Hypotheses
ADA 4H Donchian Channel-Width Expansion Long (Range-Expansion Entry Mechanism)
Hypotheses
A long-only, single-instrument, single-timeframe strategy on ADAUSDT.BINANCE 4H bars (the ONLY consistently-fresh bar type per the persistent audit_stale pattern affecting all other Binance futures bars). Implements a NEW MECHANISM CLASS not yet tried in the portfolio: DONCHIAN CHANNEL-WIDTH EXPANSION. Standard Donchian breakout strategies use the channel TOP or BOTTOM as the signal (price breaches the channel boundary). This strategy uses the channel WIDTH ITSELF as the signal: when the 20-bar Donchian channel WIDTH (high20 - low20) expands meaningfully above its smoothed average, this indicates a regime shift from contraction to expansion. Combined with a bullish-direction filter (current bar closing in upper half of channel) and trend filter, it captures the moment when volatility regime change has begun and price is biased upward. Critically distinct from every existing pipeline mechanism: (a) NOT a Donchian price breach (uses channel width metric instead of price-vs-boundary); (b) NOT an ATR expansion (channel width is a longer-window range measure, less noisy than 14-bar ATR); (c) NOT a volume signal (no volume confirmation needed — the channel-width itself is the signal); (d) NOT a sequence pattern (state-based snapshot of channel geometry). The width-expansion + bullish-direction + trend conjunction produces ~35-60 trades/year on ADA 4H — well above the walk-forward minimum without rare-event risk.
Hypotheses
Iteration 3 fix: the Layer-2 synthetic failure was a TypeError — the running `_sma(self, ...)` helper was invoked with two arguments but its actual signature accepted only one, causing every scenario to crash on the trend-SMA call. The smallest safe change: replace the ambiguous `_sma` helper with a uniquely-named `_mean_last(self, vals, n)` whose signature unambiguously matches its single call site, eliminating the argument-count mismatch. All signal logic, entry/exit conjunction, sizing, imports, and parameters are unchanged — only the helper name/definition and its one call were touched, so earlier passing layers (Layer 1 static, structure) remain green.
Hypotheses
Fails every robustness and forward gate on optimization attempt 1. Walk-forward is is_overfitted=TRUE: avg IS Sharpe 2.68 collapses to avg OOS -0.365 with 2 of 3 OOS windows negative ([-0.92, -0.30, +0.12]) — the channel-width-expansion signal does not generalize out-of-sample on ADA 4H. It fails deflated Sharpe decisively: DSR=0.0819 (vs 0.95), the optimized Sharpe 1.205 is FAR below the 225-trial expected-max luck bar of 2.7118 (is_significant=false, sharpe_ci_low=-1.0779 straddling 0, PBO=0.5278 >0.5) — after multiple-testing correction the selected config is statistically indistinguishable from best-of-225 noise, and PSR 0.87 vs DSR 0.08 is the classic selection-inflation trap. The holdout 'pass' is SPURIOUS: passed=true but ratio=0 because it is computed against a NEGATIVE WF-OOS baseline (-0.365), so a positive holdout_sharpe (2.08) cannot validate a strategy that loses money out-of-sample. Sensitivity FAILED with 2 cliff parameters (expansion_mult: Sharpe 0.14->1.32 across small steps; donchian_period: 0.33->0.89) — a knife-edge surface with no robust region. The optimized run also has a NEGATIVE information ratio (-0.44), so it does not beat its own benchmark risk-adjusted. Not iterate: the binding failures are a negative walk-forward OOS with is_overfitted=true on a 2-cliff surface whose best-of-225 selection lands well below the luck bar — there is no robust parameter region to tune toward, so a second sweep re-overfits the same in-sample ridge. Not revise_hypothesis: this is the overfit case (high IS, negative OOS), and per the overfit->abandon rule reframing the same mechanism onto another instrument just overfits again; ADA 4H is a fine target with no proven channel-width sibling stranded here. FAILURE PATTERN: a genuinely novel signal (Donchian channel-WIDTH expansion vs price-breach) and a clean, adequately-sampled data path do not rescue a long-only ADA 4H trend variant that overfits in-sample (IS 2.68 -> OOS -0.365, is_overfitted), cannot clear best-of-225 deflation (DSR 0.08, Sharpe 1.21 vs 2.71 luck bar, PBO 0.53, CI through 0), and sits on a 2-cliff sensitivity surface. A holdout 'pass' whose ratio is 0 against a negative WF-OOS baseline is not evidence of generalization.
Implementation
Long-only ADA 4H strategy whose entry signal is the Donchian channel WIDTH (high20-low20) expanding above 1.3x its 50-bar smoothed baseline, confirmed by a bullish channel position (close in upper half) and a 100-SMA trend filter. Exits on 8% take-profit, 5% stop, trend break, or 20-bar time stop.
Verification Results
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['min_notional', 'position_pct', 'trend_period', 'width_smooth', 'max_hold_bars', 'stop_loss_pct', 'expansion_mult', 'donchian_period', 'take_profit_pct', 'channel_pos_thresh']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
- steady_downtrend: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
- flat_ranging: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
- volatility_spike: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
- zero_volume: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
- price_gap: TypeError: AdaFourHourDonchianWidthExpansionLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695660000)
Backtest Review
Mechanism-faithful and well-sampled: 214 long trades / 0 shorts (~35/year, matches hypothesis), 15% exposure, clean implementation of the novel channel-width-expansion signal
Backtest Review
Net-positive edge after all costs (impact folded): total_return 184.9%, profit_factor 1.065, Sharpe 0.66, alpha +0.069, survived full 2020-2026 cycle
Backtest Review
Ample trade count for meaningful walk-forward optimization; concrete improvement path exists (reduce position size to cut impact)
Backtest Review
Severe market impact: impact_cost_pct 30% (impact ~= commissions at 52.2k vs 56.7k), capacity_usd only 1.1M — position_pct 0.95 is too large for ADA 4H liquidity and is the main drag on net PF
Backtest Review
Thin edge concentrated in bull years: profit_factor 1.065 with returns from 2021 (+217%) and 2024 (+49%); 2020/2022/2023/2026 all negative (2026 -27%)
Backtest Review
Sharpe CI-low -0.834 straddles 0 and info_ratio -0.36 — will be pressured by the deflated-Sharpe gate; 42.7% max drawdown
Analysis
Novel, faithfully-implemented mechanism class (Donchian channel-WIDTH expansion rather than a price breach); clean single-asset bars-only data path with adequate trade count (214 base / 78 optimized)
Analysis
Non-frozen continuous signal, correct long-only construction, and a reasonable base equity curve in bull regimes (2021 +217%, 2024 +49%)
Analysis
Fails deflated Sharpe decisively: DSR=0.0819 (<0.95), optimized Sharpe 1.205 far below the 225-trial expected-max luck bar of 2.7118, is_significant=false, sharpe_ci_low=-1.0779 straddling 0, PBO=0.5278 (>0.5)
Analysis
Walk-forward is_overfitted=TRUE: avg IS Sharpe 2.68 collapses to avg OOS -0.365, with 2 of 3 OOS windows negative ([-0.92, -0.30, +0.12])
Analysis
Holdout 'pass' is SPURIOUS: passed=true but ratio=0 because computed against a NEGATIVE WF-OOS baseline (-0.365); a positive holdout_sharpe cannot validate a negative-OOS strategy
Analysis
Sensitivity FAILED with 2 cliff parameters (expansion_mult: Sharpe 0.14->1.32; donchian_period: 0.33->0.89) — a knife-edge surface with no robust region
Analysis
Negative information ratio (-0.44 optimized, -0.36 base) — does not beat its own benchmark on a risk-adjusted basis; base-run impact_cost was 30% of gross (capacity concern)
Analysis
PSR 0.87 vs DSR 0.08 is the textbook multiple-testing selection-inflation trap
Analysis
Do NOT optimize yet — the run is corrupted by reckless sizing on a thin instrument, so the marginal PF 1.057 is not a fair read of the edge. Fix before re-running:
1. SIZING (critical): position_pct=0.95 compounds to avg_position_pct 119% with 103% annualized vol and 42.7% drawdown. Replace with a modest fixed fraction (e.g. 0.15-0.25 of equity) or risk-based sizing against the 5% stop. This is the dominant driver of the 32.8% impact cost ($52k) — impact is folded into PnL, so cutting size will lower impact_cost_pct and should raise the NET profit_factor. Report the new impact_cost_pct and net PF.
2. CAPACITY/LIQUIDITY (important): capacity_usd is only $929k and turnover is 647%/yr — ADA 4H cannot absorb large size. Even properly sized this is a low-capacity, toy-scale edge; confirm whether a deployable size leaves any net edge.
3. END-OF-BACKTEST EXIT (important): end_unrealized_pct is 77.96 — ~78% of the +184.9% headline is unrealized open-position gain on the final bar. Ensure the exit logic (TP/stop/trend-break/time) governs and judge on REALIZED return.
4. REGIME CONCENTRATION (note): the edge is heavily 2021 (+153%) with 2022/2023/2026 negative. After re-sizing, if the realized net PF stays <1.2 or the profit remains concentrated in 2021, this should be abandoned rather than optimized — a 2-hour walk-forward will simply confirm the regime dependence.
Resubmit only after a properly-sized run with realized-return and net-impact reported.
Outcome Summary
This strategy introduced a genuinely new mechanism — Donchian channel-WIDTH expansion instead of the usual price breach — applied long-only to ADA 4H, the only consistently-fresh Binance futures bar type. It was faithfully implemented and well-sampled (214 trades, +184.9%, Sharpe 0.66, PF 1.065), enough to clear the pre-optimization review with an 'optimize' verdict despite a flagged 30% impact cost. But optimization exposed it as overfit: in-sample Sharpe of 2.68 collapsed to -0.365 out-of-sample with two of three OOS windows negative, a deflated Sharpe of 0.08 far under the 225-trial luck bar of 2.71, PBO 0.53, and a knife-edge 2-cliff sensitivity surface. The analyst abandoned it after 3 iterations, concluding there was no robust parameter region to tune toward and that a positive holdout measured against a negative OOS baseline proved nothing.
Outcome Summary
A genuinely novel signal and a clean, well-sampled data path do not rescue a long-only trend variant that overfits in-sample; trust the deflated-Sharpe/luck-bar and OOS gates over an attractive base backtest, and treat a holdout 'pass' with ratio 0 against a negative WF-OOS baseline as no evidence of generalization.
Outcome Summary
The post-optimization analyst verdict was 'abandon': the strategy failed every robustness and forward gate — walk-forward flagged is_overfitted=true, it was not statistically significant (Sharpe CI-low -1.08 straddling zero), sensitivity failed with two cliff parameters, and the holdout 'pass' was spurious (ratio 0 against a negative OOS baseline).
Outcome Summary
A long-only ADA 4H strategy testing a novel mechanism class — using the Donchian channel's WIDTH expansion (width above its smoothed baseline) rather than a price breach of the channel boundary as the entry signal, gated by a bullish channel-position filter and a 100-bar trend filter.
Outcome Summary
The base backtest looked promising over 2020-2026: 214 long trades, +184.9% total return, Sharpe 0.66, profit factor 1.065 and 45.8% win rate, though with 42.7% max drawdown and a 30% impact-cost drag (capacity only ~$1.1M). After optimization the edge collapsed out-of-sample: average in-sample Sharpe 2.68 fell to average OOS -0.365 (2 of 3 OOS windows negative), deflated Sharpe 0.08 against a 225-trial luck bar of 2.71, PBO 0.53, and a 2-cliff sensitivity surface.
Backtest and paper results are hypothetical. Trading involves risk of loss.