Strategies
LINK 4H Donchian Channel Breakout with Rising Trend Filter Long-Only (BINANCE USD-M Futures, 4H, OHLCV-Only, Second-Tier-Liquidity Asset Class)
Outcome: Abandoned
LinkFourHourDonchianBreakoutTrendFilterLong
Outcome Summary
LinkFourHourDonchianBreakoutTrendFilterLong tried to complete a cross-asset Donchian stack by reasoning that LINK's second-tier liquidity should place it with the promoted BNB version rather than the failed BTC one. The mechanism traded faithfully across 404 entries, but LINK landed firmly with BTC: profit_factor 0.851, Sharpe −0.89, a −68.5% return negative in 5 of 7 years, and an 85.8% drawdown worsened by a recurring leverage double-counting bug (241.5% average position vs the intended 120%). The analyst abandoned it at backtest review without optimizing — the scale-invariant sub-1 profit factor proves there's no edge regardless of sizing, so unlike the near-breakeven ETH pullback this isn't a fixable sizing case. It refines the cross-asset map (Donchian-with-trend is asset-selective and 'second-tier liquidity' doesn't guarantee it works) while flagging the leverage-plumbing bug for a template-level fix in this developer's leverage-2.0 strategies.
Hypothesis
Iteration 2 fix for the Layer-2 frozen-signal failure on steady_downtrend. Root cause: calculate_signal returned 0.0 on every bar where the trend/breakout conditions weren't both met (the gated-signal anti-pattern), so in a persistent downtrend the signal was 0.0 on all 426 bars. The fix makes calculate_signal compute and return the CONTINUOUS decision variable every post-warmup bar — the fractional distance of close from the Donchian upper channel, (close - upper)/upper, which varies bar to bar (negative in downtrends, positive on breakouts) — while moving the unchanged entry logic (rising SMA50 + close > SMA50 + close > upper channel) into should_enter via stored _trend_up / _breakout flags. Exit logic, position sizing, leverage usage, imports, and config are untouched, so Layer-1 static and the already-correct Donchian-breakout mechanism remain intact and trading behavior is identical; only the signal is now continuous. Leverage 2.0 stays genuinely consumed in position_size (equity * position_pct * leverage), satisfying the leverage_set_but_unused gate.
Implementation
Long-only Donchian channel breakout with a rising-trend filter on LINKUSDT.BINANCE USD-M futures 4H bars, OHLCV-only. It enters long when the current close breaks above the highest high of the prior 12 bars (Donchian upper channel) AND a trend filter confirms a pre-existing uptrend (SMA(50) rising over 20 bars AND close > SMA(50)). It exits on a Donchian-low trailing stop (close below the prior 12-bar low), a 6% catastrophic stop-loss, or a 60-bar (~10-day) time stop. calculate_signal returns the continuous breakout distance (close vs the upper channel, fractional) every bar so the signal varies; the trend and breakout gates are captured in flags and checked in should_enter. Sizes 0.60 x leverage(2.0) = ~1.2x equity notional, genuinely consuming the configured leverage.
Verification Results
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['sma_period', 'exit_period', 'min_notional', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'slope_lookback', 'donchian_period'] Check that __init__ sets all attributes from self.parameters.get(). - steady_downtrend: Frozen signal: all 426 signals are identical (value=0.0). calculate_signal() likely has a bug — the signal never varies.
Backtest Review
- Sharpe
- -0.89
- Total return
- -68.50%
- Max drawdown
- 85.79%
- Trades
- 404
- Win rate
- 42.8%
- Profit factor
- 0.85
Implemented as specified (404 Donchian-breakout long entries, clean entry_diag, metrics_reliable=true); validated mechanism on OTHER assets (BNB promoted)
No edge on LINK: profit_factor 0.851 (<1, scale-invariant), Sharpe -0.89, total_return -68.5%, expectancy -203.7, negative in 5 of 7 years across all regimes; Sharpe CI almost entirely negative (-2.90 to 0.71)
Catastrophic risk: max_drawdown 85.8% (CI 99%), annualized_volatility 115%, commission 11.13% of gross at turnover 781
LEVERAGE OVER-EXPOSURE ARTIFACT (repeat): avg_position_pct 241.5% vs intended ~120% (leverage double-counted), with impossible daily returns (+63.7%, +29.9%, +28.5%) amplifying the drawdown
~0.5+ (pre-opt)
2 of 7
majority
~120 (0.60 x 2.0)
Outcome Summary
The Donchian-with-trend-filter breakout is asset-selective — it works on BNB (promoted 5.95) but fails on efficient/uncooperative names (BTC 0.09, now LINK PF 0.851 / −68.5% / 85.8% DD) — so a 'second-tier-liquidity' cross-asset heuristic does not reliably predict where the edge survives; and a scale-invariant profit factor below 1 diagnoses no-edge independently of a sizing/leverage artifact, separating a dead premise (abandon) from a borderline-breakeven sizing bug (fixable).
The analyst issued an abandon verdict at backtest review on a no-edge basis: the scale-invariant profit_factor 0.851 shows the LINK breakout loses money regardless of sizing, with multi-year, multi-regime losses (Sharpe CI almost entirely negative, −2.90 to 0.71) — and the hypothesis's own cross-asset framing predicts it, since LINK lands with BTC (money-losing) rather than BNB, so the 'second-tier-liquidity Donchian' heuristic does not hold for LINK; a recurring leverage double-counting bug compounded the drawdown but a sizing fix cannot flip a 15% gross shortfall positive.
A long-only, OHLCV-only Donchian channel breakout on LINKUSDT.BINANCE 4H (leverage 2.0) — applying the analyst's refined cross-asset heuristic that Donchian-with-trend-filter works on second-tier-liquidity assets (BNB promoted Sharpe 5.95, XRP baseline 0.90) but not over-arbitraged majors (BTC 0.09 failed) — entering long when price breaks above its 12-bar high AND a rising-50-SMA trend filter confirms an uptrend, exiting on a Donchian-low trailing stop, catastrophic stop, or time stop.
It traded as specified (404 long entries, metrics_reliable=true) but had no edge on LINK and catastrophic risk: profit_factor 0.851 (scale-invariant, gross losses exceed wins by ~15%), Sharpe −0.89, total_return −68.5%, expectancy −203.7, negative in 5 of 7 years across all regimes (2021 −47, 2022 −22, 2023 −19, 2025 −41, 2026 −32), max drawdown 85.8%, annualized volatility 115%, commission 11.13% of gross. It also carried a leverage over-exposure artifact — avg_position_pct 241.5% vs the intended ~120% (leverage double-counted), producing impossible daily returns (+63.7%, +29.9%, +28.5%) that amplified the drawdown.
Backtest and paper results are hypothetical. Trading involves risk of loss.