Strategies
BTC 4H Wide-Range Bullish Bar Volatility-Expansion Momentum Long with Daily Bull Regime Filter
Outcome: Abandoned
BtcFourHourWideRangeBullishBarVolatilityExpansionMomentumLong
Outcome Summary
This strategy isolated a genuinely distinct signal — a single 4H bar's total range relative to recent volatility, with a bullish upper close — on BTC, and earned an 'optimize' verdict on a thin but positive, high-density base edge (356 trades, Sharpe 0.39), though flagged for heavy costs, tiny capacity, and recent decay. Optimization produced an encouraging clean walk-forward (Sharpe 1.83, non-overfit, all OOS windows positive), but the decisive gates rejected it: deflated Sharpe 0.0 against a 5.50 luck bar, a negative-Sharpe holdout (-2.82), and six core-parameter cliffs, with optimized annual returns fading to -4.2% in 2026. The analyst abandoned it at the analyzing stage on its second iteration as a knife's-edge, sub-luck-bar selection artifact with no robust plateau to tune toward — the same signature as the abandoned ADA volume-breakout sibling — so it stopped before risk review.
Hypothesis
Iteration-2 minimal fix for the Layer-3 'No trades produced' failure. Root cause: the entry required self._regime_ok, which read from self._daily_close populated only by on_extra_bar from a separate DAILY extra-bar feed; that feed never populated in the sandbox, so _regime_on() was permanently False and the WRB trigger (range>=1.5x baseline + bullish-upper close, which fires often on BTC 4H) never produced an entry over all 14,019 bars. I changed ONLY the regime computation: _regime_on() now computes the identical 50-day bull filter from the existing 4H close buffer (regime_sma_period*bars_per_day = 300-bar SMA), and the daily extra feed is removed from config (single feed). min_bars_required and the buffer cap were raised to guarantee the 300-bar regime window is available before trading. Imports, the WRB range-expansion signal math, entry/exit/sizing logic, and the BINANCE futures routing (leverage 1.0) are unchanged, so Layers 1 and 2 stay green while the strategy now produces long entries whenever BTC prints a wide bullish range bar within a confirmed 4H-derived uptrend.
Implementation
Long-only Wide Range Bar volatility-expansion momentum on BTCUSDT.BINANCE USD-M futures, 4H bars, pure OHLCV single feed. Enters LONG when a 4H bar's range is >= 1.5x the prior 20-bar mean range AND it closes bullishly in the upper 60% of its range AND the 50-day bull regime is on (now computed from the same 4H buffer as a 300-bar SMA instead of a separate daily feed). Exits on a 6% take-profit, a 4% stop, a regime flip, or a 6-bar time stop. The signal is a continuous range-expansion score signed by close position; the discrete WRB gate drives entry. leverage 1.0.
Verification Results
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 14040 Diagnostics: should_enter() returned a side 0 times over 14019 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Backtest Review
- Sharpe
- 0.39
- Total return
- 33.39%
- Max drawdown
- 19.84%
- Trades
- 356
- Win rate
- 48.6%
- Profit factor
- 1.09
Highest trade density of the batch: 356 signals -> 356 submitted, 0 dropped (~55/yr) — ample sample for sensitivity/walk-forward; ITER-2 regime fix works
Implemented correctly and trades as specified: all long, exposure 14.6%, avg hold ~22h, WRB range-expansion + bullish-upper-close gate firing as designed
Net-positive edge (unlike today's no-edge abandons): PF 1.092, Sharpe 0.386, total +33.4%, positive in 4 of 7 years
Quality-filter design gives the optimizer a concrete lever (raise range_mult/close_pos_min) to lift avg-trade-return and cut fee drag
Thin per-trade edge ~0.11% (expectancy $59.6 on ~$55k notional) — at/below the 0.15% futures viability target; PF 1.092 barely above 1
Heavy cost drag: commission_pct_of_gross 8.77%; impact_cost_pct 21.9% — fees/impact consume a large share of gross
Tiny capacity (~$2.08M): edge real only at toy scale — a promotion blocker the optimizer must address by trading more selectively
Regime-mixed returns (2021 -10.5%, 2024 -4.0%) and rolling Sharpe swings deeply negative in stretches (2024 ~-7) — generalization risk for the holdout
Analysis
Walk-forward is_overfitted=FALSE with all 3 OOS windows strongly positive (avg OOS 3.45), PBO 0.4524 (<0.5), PSR 0.9781
Optimized config looks clean in isolation: Sharpe 1.83, PF 1.45, Sortino 3.65, max_drawdown 8.1%, capacity improved to ~$19M by trading more selectively
Implemented correctly with high density (356 base / 157 optimized trades); ITER-2 regime fix works
Failed deflated Sharpe: DSR=0.0 (bar 0.95) with the optimized Sharpe 1.83 FAR below the expected-max luck bar 5.50 over 225 trials — indistinguishable from best-of-N selection
Holdout FAILED with a NEGATIVE Sharpe -2.82 (ratio -0.818): the recent one-shot forward window loses money
Sensitivity FAILED with 6 cliffs — range_mult, bars_per_day, close_pos_min, max_hold_bars, range_lookback, regime_sma_period all cliffs; no robust plateau, the config is a knife's-edge point pick
is_significant FALSE; sharpe_ci_low 0.096 (barely above 0)
Recent decay (flagged at pre-opt): optimized 2024 +1.3% -> 2025 -1.9% -> 2026 -4.2%, rolling Sharpe negative through 2026
Heavy fee drag (commission 8.75% of gross) — fee-fragile thin edge
Outcome Summary
A clean, non-overfit positive walk-forward is not enough — when deflated Sharpe is 0.0 below the luck bar, the holdout is negative, and nearly every core parameter sits on a sensitivity cliff, the result is best-of-N selection on a knife's edge, not a robust edge; a thin, fee-fragile single-bar momentum signal that is front-loaded and decaying does not deflate.
It cleared the backtest-review gate with an 'optimize' verdict and posted an encouraging non-overfit walk-forward, but the post-optimization analyst abandoned it: deflated Sharpe 0.0 (<0.95) with the optimized Sharpe 1.83 far below the 5.50 expected-max over 225 trials, the holdout FAILED with a negative Sharpe -2.82, and sensitivity failed with 6 cliffs across nearly every core parameter — a knife's-edge, fee-fragile edge that had decayed to negative by 2025-2026.
A long-only Wide-Range-Bar volatility-expansion momentum strategy on BTCUSDT 4H Binance futures (1.0x leverage, 0.50 position) — entering long when a 4H bar's range exceeded 1.5x its 20-bar baseline AND it closed bullishly in the upper 60% of that range, inside a 50-day bull regime — a single-bar geometric range property distinct from the portfolio's Donchian/Bollinger/order-flow BTC strategies, with TP/stop/regime/time exits.
The base backtest had a thin positive edge — 356 trades (~55/yr), +33.4% total, Sharpe 0.39, profit factor 1.092, expectancy +$59.6/trade (~0.11%, below the 0.15% viability target) — burdened by heavy costs (8.8% commission, 21.9% impact) and tiny ~$2.08M capacity; the optimized config looked clean (Sharpe 1.83, PF 1.45, 8.1% drawdown) and even passed walk-forward (not overfit, all 3 OOS windows strongly positive).
Backtest and paper results are hypothetical. Trading involves risk of loss.