Skip to content

View original

DotFourHourDonchianBreakoutRisingTrendLong

Hypotheses

DOT 4H Donchian Channel Breakout with Rising Trend Filter Long-Only (Futures, OHLCV)

Hypotheses

Extends the analyst-validated Donchian-with-trend-filter template (BNB iter-2 PROMOTED at Sharpe 5.95) to DOT (Polkadot) as the 8th asset in the cross-asset stack of second-tier-liquidity crypto assets. Per the analyst's most recent refined heuristic: 'high-liquidity-arbitrage-resistant assets work for breakouts; over-efficient majors don't.' DOT fits this profile cleanly — established L1 with $5-10B daily perp volume but NOT in the top-tier over-arbitraged group (BTC, ETH, AVAX where Donchian failed at Sharpe ~0.09). DOT shares the same liquidity tier and breakout-receptiveness as the validated assets (BNB, XRP, ADA, SOL, LINK, DOGE, LTC). The mechanism: enter long on a 4H high-channel breakout ONLY when the higher-timeframe trend is confirmed rising (SMA50 > SMA200 AND SMA50 slope positive over last 5 bars). This filters out the false-breakout regime where Donchian historically fails. Capital deployment scales with signal strength (breakout magnitude × trend strength). EXPLICIT 4-HOUR SPEC — do NOT translate to 6H/8H/12H/1D bars; the cross-asset validation is timeframe-specific.

Hypotheses

Iteration 2 fix for the Layer-2 'frozen signal (value=0.0)' failure in steady_downtrend (the only failing scenario — the others produce breakouts and already varied). Root cause was the gated-signal anti-pattern: calculate_signal returned a conviction only when breakout AND rising-trend held and 0.0 otherwise, so in a pure downtrend (no breakouts, falling SMAs) every bar returned 0.0. Fix: calculate_signal now ALWAYS returns a continuous, bar-varying tanh score (Donchian breakout distance + SMA50-vs-SMA200 spread + SMA50 slope), which varies in a downtrend (all terms negative and moving). The exact entry decision is unchanged — computed in the same place and stored in self._long_trigger (breakout AND SMA50>SMA200 AND rising SMA50), consumed by should_enter/position_size — and the original conviction (1 + breakout_mag*10 + trend_strength*5) is stashed in self._entry_conv so position_size keeps its signal-strength scaling exactly. This preserves the Layer-3 trade behavior and the trailing-Donchian / trend-break / stop exit logic that already passed Layer 1. No imports changed (numpy only), preserving the Layer-1 pass. Venue/leverage unchanged: BINANCE futures at leverage 2.0 with position_size genuinely consuming leverage (equity * position_pct * leverage * scale).

Hypotheses

Fundamentally losing on DOT, not optimizable. Realized track record is deeply negative: profit_factor 0.88 (<1), expectancy -$970/trade, CAGR -17.3%, win_rate 26.9%, max_drawdown 64.6%, recovery_factor -0.74. The +29.7% headline total_return is 94.67% open-position UNREALIZED MTM at backtest end (end_unrealized_pct=94.67), so realized return is ~ -65% -- the single positive print is an un-exited paper position, not an edge. Losses are consistent across regimes (2022 -46%, 2024 -29%, 2025 -19%, 2026 -39%), so optimization would only curve-fit the bull-era windows (2021/2023) that carry the few wins and re-fail the recent ones. This is not a code bug (67 clean entries) or sparsity (67 trades is a fine sample) -- it is a falsified premise: the hypothesis claims DOT shares the breakout-receptiveness of the promoted siblings (BNB/XRP/ADA/SOL/LINK), but the data shows DOT is the negative arm of the family (a sibling DOT breakout was already abandoned for the same lower-liquidity Sharpe-collapse reason). The Donchian-rising-trend MECHANISM is validated and captured on the liquid majors; redirecting it to DOT does not work. Recommend the Research Lead stop extending this family to DOT specifically rather than spending an optimization cycle.

Implementation

Long-only DOTUSDT.BINANCE USD-M perp 4H Donchian breakout with a rising higher-timeframe trend filter, pure OHLCV. Enters long when close breaks above the prior 20-bar high AND SMA50 > SMA200 AND SMA50 is rising over the last 5 bars; capital scales with breakout magnitude x trend strength. Exits on a trailing 10-bar Donchian-low break, a trend break below the fast SMA, or an 8% stop (no fixed take-profit). calculate_signal() returns a continuous tanh score (breakout distance + trend spread + SMA slope) so the signal varies every bar; the binary breakout+rising-trend trigger is stored in self._long_trigger and its conviction in self._entry_conv for signal-strength-scaled sizing. Leverage 2.0 (~1.2x equity notional).

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['sma_fast', 'sma_slow', 'min_notional', 'position_pct', 'exit_lookback', 'stop_loss_pct', 'slope_lookback', 'donchian_period'] Check that __init__ sets all attributes from self.parameters.get(). - steady_downtrend: Frozen signal: all 291 signals are identical (value=0.0). calculate_signal() likely has a bug — the signal never varies.

Backtest Review

Clean implementation: 67 entries signaled -> 67 submitted, 0 dropped (no coding/min-notional bug).

Backtest Review

Adequate sample size (67 trades over ~6 years) and the mechanism is genuinely validated on sibling assets (BNB promoted).

Backtest Review

Fundamentally money-losing on DOT: profit_factor 0.88 (<1), expectancy -$970/trade, avg_trade_return negative, win_rate 26.9%, CAGR -17.3%.

Backtest Review

The only positive number is fake: total_return +29.7% is 94.67% unrealized open-position MTM at backtest end -> realized track record ~ -65%.

Backtest Review

Consistently negative across recent regimes: 2022 -46%, 2024 -29%, 2025 -19%, 2026 -39%; max_drawdown 64.6%, recovery_factor -0.74.

Backtest Review

Premise falsified: DOT does NOT share the breakout-receptiveness of the promoted siblings; this is the wrong target, not a tunable config.

Backtest Review

total_return 29.7 minus 94.67 unrealized

Outcome Summary

This strategy extended the analyst-validated, BNB-promoted Donchian-breakout-with-rising-trend-filter template to DOT, on the thesis that DOT shares the breakout-receptiveness of the promoted second-tier siblings. The signal fired cleanly over 67 trades but lost money on a realized basis — profit factor 0.88, expectancy -$970/trade, CAGR -17.3%, a 64.6% drawdown, losing across 2022-2026 — with its only positive figure (+29.7%) being 94.67% unrealized open-position MTM that masked a ~-65% realized return. The analyst abandoned it at the backtest-review gate on its second iteration as a falsified premise (DOT is the family's negative arm, not a tunable config), recommending the family not be extended to DOT, so it never advanced to optimization or risk review.

Outcome Summary

A mechanism validated on liquid majors does not automatically transfer to a lower-liquidity asset — DOT is the negative arm of the Donchian family, and a positive headline return driven almost entirely by unrealized open-position mark-to-market (here masking a ~-65% realized result) must be read through to realized PnL before claiming an edge.

Outcome Summary

The backtest-review analyst issued an 'abandon' verdict: the implementation was clean (67/67 entries) and the sample adequate, so this is a falsified premise rather than a bug or sparsity — DOT does not share the breakout-receptiveness of the promoted siblings (a DOT breakout sibling was already abandoned for the same lower-liquidity Sharpe collapse), and the lone positive print is an un-exited paper position, not an edge.

Outcome Summary

A long-only Donchian-channel breakout strategy on DOTUSDT 4H Binance futures (2.0x leverage) — extending the BNB-promoted Donchian-with-rising-trend-filter template to DOT as the 8th second-tier-liquidity asset — entering long on a 20-bar high breakout only when SMA50 > SMA200 and SMA50 was rising, with signal-strength-scaled sizing and Donchian-trailing/trend-break/stop exits.

Outcome Summary

Across 67 trades it was a realized loser: profit factor 0.88, expectancy -$970/trade, win rate 26.9%, CAGR -17.3%, a 64.6% max drawdown and recovery factor -0.74, losing across recent regimes (2022 -46%, 2024 -29%, 2025 -19%, 2026 -39%); the headline +29.7% total return was 94.67% unrealized open-position MTM at backtest end, so the realized track record was roughly -65%.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.