Skip to content

View translation

BtcEfficiencyGatedChannelBreakoutLS

Hypotheses

BTC Efficiency-Gated Volatility-Channel Breakout — Trade Trends ONLY in Clean (High Kaufman-Efficiency) Regimes, Stay Flat in Chop, Ride With a Chandelier Trailing Stop (BINANCE USD-M, 4H Bars, Long-Short, Asymmetric Let-Winners-Run, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, ASYMMETRIC-PAYOFF trend strategy on BTCUSDT.BINANCE (USD-M perp), deliberately built around the ONE fact this session has established beyond doubt: every SYMMETRIC mean-reversion / contrarian-fade / market-neutral sleeve dies fee_edge or no_edge (ETH funding-contrarian breakeven, SOL OI-washout negative-edge, LTC-BCH and SOL-ETH pairs below the fee floor), while the SINGLE surviving strategy in 1163 experiments is a directional BTC trend construction that lets winners run with a trailing stop. So this stays firmly in the only living family — but with a mechanism DISTINCT from both the pending dual-TF momentum-confluence survivor (which gates on 4H vs 1D momentum-sign agreement) and the pending ETH OI-confirmed breakout (which gates on open-interest expansion). Here the gate is a REGIME-QUALITY filter: the Kaufman Efficiency Ratio (ER = net move / sum of absolute moves) measures how CLEAN the recent path is. Breakouts fail overwhelmingly in CHOP; by only taking a volatility-channel breakout when ER shows a genuinely trending regime and staying FLAT otherwise, the strategy sidesteps the whipsaw that is the primary trend-following killer — and the chandelier trailing stop delivers the fat right tail that lets a modest win rate clear fees (the structural property the dead symmetric fades lacked). It avoids every graveyard: NOT symmetric reversion (dead), NOT the sprayed dual-TF momentum template on a new ticker (L56 — different mechanism, and on BTC, the one asset where trend is PROVEN to survive the analyst's gates rather than an alt where it is 0-for), NOT funding carry (L57), NOT pairs/cross-sectional (dead), NOT options (infra-broken), NOT a liquidation feed (L58). Pure OHLCV, computationally TRIVIAL: a rolling ER, a rolling channel, and an ATR — a few scalars per bar, no full-history rescans, no sorted()/min() in the hot path. Fills the under-represented long-short bucket. Exactly 3 tunable parameters: the ER trend-quality threshold, the channel lookback, and the chandelier ATR multiple.

Hypotheses

Clean restart: the previous abandonment was pipeline-caused (Layer-2 staticmethod mis-binding, QA performance verdicts on an unoptimized smoke test, backtest-slot starvation), so the mechanism is kept exactly as verified — instance-method helpers only, fully incremental state (Wilder ATR, running abs-move sum, bounded deques, no full-history rescan), continuous every-bar signal in natural range-position units, and a directionless ER regime gate. The one change is a genuine off-by-one fix in the ER estimator: _er_closes was sized er_period + 1, so (read before the current close is appended) the numerator |close_t - close_{t-er_period-1}| spanned one more move than the er_period absolute moves in the denominator's path sum. That biased ER upward — it could exceed 1.0 and was silently clamped — which quietly loosened the chop filter that is the entire point of the hypothesis. With maxlen = er_period the numerator and denominator cover the same window and ER is a true ratio in [0, 1]. Nothing else was touched: entry/exit/sizing logic, imports, parameter set and clamps (mirrored in _param_bounds) are unchanged.

Hypotheses

Overfit / no-generalization, at the iteration limit (attempt 2 of 2). Promote is impossible: two HARD gates fail unwaivably — PBO 0.5106 > 0.5 (selection more likely than not overfitting) and the holdout has only 3 trades (< 10 min), so its 1.67 Sharpe is uninferable. Optimization actively degraded the strategy: it drove er_period to 55 / break_thresh to 1.80, collapsing 235 trades into 14 over 6 years — PF 15.5 / win_rate 0.79 on 14 trades is a curve-fit to a handful of clean windows, not an edge. Robustness confirms noise: deflated_sharpe 0.783 << 0.95, is_significant=false, Sharpe CI [0.448, 1.582] barely off zero, fails programme FDR (keeps 3 of 231, candidate_p 0.217), and WF-OOS windows are -1.95 / 0.99 / 3.07 (avg 0.70, first window deeply negative). This is the overfit-not-dead-premise case per the decision rule (high IS collapsing to near-zero significance, thin negative-window OOS) → abandon, not revise: the identical Kaufman-ER-gated breakout/momentum mechanism is already 0-for-5 across BTC/ETH/SOL and a majors basket (all abandoned overfit or fee_edge), so re-pointing the same mechanism at another target would simply overfit again. There is no untried, robust parameter region — the honest 235-trade default config also sits below every promotion floor (Sharpe 0.98). Failure pattern: overfit.

Implementation

Long-short BTCUSDT (Binance USD-M, 4H) volatility-channel breakout that only fires when Kaufman's Efficiency Ratio shows a clean, genuinely trending path, and stays flat in chop. The signal is the continuous range position (close - channel mid) / (half channel width) computed every bar from the PRIOR channel_lookback bars, so +-1 is exactly the channel edge and a breakout reads beyond it. Exits are a chandelier trailing stop only (highest high since entry minus chandelier_atr x ATR, mirrored for shorts) — no fixed take-profit — giving the asymmetric let-winners-run payoff. Sizing risks risk_frac of equity per ATR-based stop distance, capped at 1x equity notional.

Verification Results

CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.

Verification Results

No action required; confirm the base class honors the override (sandbox produced 231 trades, so warmup gating works).

Verification Results

min_bars_required overrides a framework method (Layer-1 base_shadow warning). Behavior appears intentional and correct (returns a sensible warmup covering channel/ER/ATR windows), synthetic tests and sandbox both warm up and trade normally.

Verification Results

Information ratio vs buy-hold is -0.6447 in the smoke test despite positive alpha (0.094) and low beta (0.037) — the strategy adds absolute return but underperforms simply holding BTC on a benchmark-relative basis over this truncated window. Worth the analyst re-checking IR / alpha significance on full history at optimized params before promotion; not a correctness issue and not blocking.

Backtest Review

Ample, measurable sample: 235 trades over 6.6 years (128 long / 107 short) — supports a meaningful 3-parameter walk-forward without curve-fitting to noise.

Backtest Review

Edge clears costs with margin: avg_trade_return_pct 0.878% vs the 0.15% Binance USD-M floor; commissions only 3.55% of gross, so not fee-fragile.

Backtest Review

Solid, plausible risk-adjusted profile: Sharpe 0.98 (PSR 0.977), Sortino 1.42, Calmar 1.32, max DD 8.1%, recovery factor 11.7 — no artifact signature (no implausible Sharpe/win-rate/monotonic equity).

Backtest Review

Trades match the hypothesized mechanism: long-short breakout with ~4.5d avg hold and asymmetric let-winners-run (avg_win 3115 vs avg_loss 1032, tail_ratio 1.23, return_skew 1.70) and a 34% win rate — exactly the fat-right-tail trend profile described.

Backtest Review

Sits in the only surviving family (BTC directional trend with trailing stop), via a distinct regime-quality (Kaufman ER) gate; positive in 6 of 7 years, calm/normal/stressed regimes all positive.

Backtest Review

Information ratio -0.727 vs buy-hold BTC (QA edge concern): strategy underperforms simply holding BTC on a benchmark-relative basis. Mitigated by low beta (0.046), positive alpha (0.088) and 8% DD — it deliberately avoids full-cycle drawdown — so judge on absolute risk-adjusted metrics, but analyst should re-check alpha/IR significance at optimized params before any promotion.

Backtest Review

Modeled impact_cost_pct 2.49% and one large outlier day (2026-08-28 +12.6%, 2021-01-11 +16.1%) contribute meaningfully to the headline; robustness/deflated-Sharpe gating in the 3-phase run is the real test.

Backtest Review

2025 was a losing year (-3.45%); a couple of parameters (er_threshold, chandelier_atr) will need sensitivity checking for cliffs.

Analysis

Per-trade edge clears fees comfortably in both runs (initial avg_trade_return_pct 0.878%, optimized 6.15% vs the 0.15% Binance USD-M floor) and commissions are only 3.55%/1.55% of gross — this is NOT a fee_edge death.

Analysis

The default-parameter backtest was economically honest: 235 trades (128 long / 107 short) over 6.6 years, PF 1.56, DD 8.1%, positive alpha (0.088), low beta (0.046) — a genuine directional trend construction, not market beta.

Analysis

Sensitivity grid is mostly flat (only er_period flagged as a cliff) and walk-forward is_overfitted=false by the ratio test.

Analysis

Optimization made the strategy WORSE, not better: the optimizer chose er_period=55 and break_thresh=1.80, which collapsed the trade count from 235 to 14 over 6 years (10 long / 4 short). PF 15.5 and win_rate 0.79 on 14 trades is the textbook curve-fit signature — the tuned config fits a handful of clean windows and is statistically empty.

Analysis

Two HARD gates fail and cannot be waived: PBO 0.5106 > 0.5 (the parameter selection is more likely than not overfitting) and holdout is only 3 trades (< 10 min), so the 'passing' holdout Sharpe 1.67 is uninferable noise.

Analysis

Robustness fails across the board: deflated_sharpe 0.783 < 0.95, is_significant=false, Sharpe CI [0.448, 1.582] is barely off zero, and the candidate does NOT survive programme-level FDR (Benjamini-Hochberg keeps 3 of 231; candidate_p 0.217).

Analysis

Walk-forward OOS is fragile: per-window OOS Sharpes -1.95 / 0.99 / 3.07 (avg 0.70) — the first window is deeply negative and the 3.07 is a single-window outlier carrying the average; OOS 0.70 < the 1.5 in-sample floor.

Analysis

The ER-gated breakout/momentum family is 0-for-many in the outcome store: ETH ER-gated TSMOM (overfit), SOL ER-gated breakout (overfit), BTC ER-gated momentum (overfit), BTC ER-gated TSMOM (fee_edge), ER-filtered majors basket (overfit). Same mechanism, same overfit death cross-asset.

Analysis

Backtest gate: - metrics unreliable: 3 trades / 2437 data days is too little evidence (need >=5 trades over >=10 days) — increase signal frequency or widen the window

Analysis

Benjamini-Hochberg at q=0.10 over 231 programme candidates keeps 3. A candidate that does not survive here is not distinguishable from the programme's own noise, however good its individual statistics look.
Strategy report

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