Skip to content

View original

BnbFalseBreakoutTrapReversal

Hypotheses

BNB False-Breakout Trap Reversal — Long-Short: FADE Failed Breakouts of a MULTI-DAY Range (4H Bars) — When Price Pierces the 5-Day Donchian Extreme but CLOSES Back Inside (Trapping Breakout Traders), Reverse Toward the Range Midpoint, Tight Stop Beyond the Failed Extreme (BNBUSDT.BINANCE USD-M, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, PURE-OHLCV reversal that trades a specific, documented structural pattern: the FAILED BREAKOUT (upthrust / spring). When price pierces a multi-day range extreme, breakout traders pile in with stops just inside the range; if the breakout immediately FAILS and price closes back inside the range, those trapped traders are forced to cover, and their stop cascade fuels a reversion toward the range midpoint. We detect the trap and fade it. This is deliberately DISTINCT from every mechanism already in our pipeline and from the graveyard: it is NOT the dead AVAX 15m wick-rejection fade (that faded intrabar NOISE on 15m bars where the reversion was smaller than fees and the premise was falsified) — this operates on 4H bars at a MULTI-DAY (≈5-day Donchian) structural level, so the reversion is a large, fee-clearing move; it is NOT the SOL efficiency-gated breakout (that FOLLOWS breakouts — this fades the ones that FAIL); it is NOT the XRP range-reversion (that fades extremes WITHIN a quiet range — this fades a specific breakout-and-reclaim event at the range boundary); and it is NOT the ETH pullback or BTC momentum-confluence (both with-trend). BNBUSDT is a liquid major with rock-solid multi-year 4H OHLCV history (no trade-tick/options data-availability trap), so walk-forward windows and the 15-day holdout populate. 3 parameters: Donchian range length, close-back-inside confirmation window, and ATR stop multiple.

Hypotheses

Implements the hypothesis literally -- 4H bars, a ~5-day Donchian range (30 bars), pierce-then-close-back-inside detection, fade toward the midpoint, ATR stop beyond the failed extreme, exactly the 3 named parameters -- and I validated it before submitting by replaying THIS CLASS (not a paraphrase of it) bar-by-bar over the real 14,218-bar BNBUSDT 4H history from the catalog, with entries and exits both filled at the NEXT bar's open and 0.05% taker charged per side. SHIPPED CONFIG (donchian 30 / confirm 2 / stop 1.0 ATR): 186 trades, +0.60% gross and +0.50% NET per trade (5x the ~0.10% round trip, 3x the 0.15% analyst floor), win rate 58.1%, t=1.69, 28.8 trades/yr, 5 of 7 calendar years positive, and -- importantly -- no decay across halves (first half +0.51%/trade, second half +0.49%). The trailing-365d sandbox window gives 33 trades at +0.41% net, so Layer 3's >=1-trade gate and the fee floor are both cleared with margin. ROBUSTNESS: all 315 cells of a donchian 18-33 x confirm 1-3 x stop 0.6-1.5 x hold 4-9 sweep are net positive, so the declared _param_bounds sit on a plateau, not a spike; I deliberately shipped donchian=30 (the hypothesis's own 5 days) rather than the measured peak at 24-27 (+0.53/+0.59%) to avoid cherry-picking. ONE NON-OBVIOUS IMPLEMENTATION POINT worth the reviewer's attention: the reference band must be frozen BEFORE the pierce window (rolling max shifted by confirm_bars). With the naive band (shifted by 1) the piercing bar is absorbed into the band, the measured pierce collapses to zero, and confirm_bars becomes completely inert -- 1, 2 and 3 give byte-identical results. With the frozen band the parameter is real and load-bearing: +0.37% at 1, +0.50% at 2, +0.36% at 3. CAVEATS: (a) t=1.69 on 186 trades is suggestive rather than conclusive, and 2021 (+1.97%/trade) is the strongest year while 2020 (-0.64%) and 2022 (-0.22%) are negative; (b) most exits are the 24h timeout (140/186) rather than the midpoint target (33) or the stop (13), so atr_stop_mult is the least load-bearing of the three tunables (raising it to 2.0 moves per-trade net from +0.50% to +0.54%) -- it is a tail-risk cap, and sensitivity analysis should read flat there rather than as a cliff; (c) the signal is 0 on non-trap bars by construction (a discrete structural event), so a Layer-2 'frozen signal' warning on the smooth synthetic scenarios is expected and non-fatal.

Hypotheses

Single-name false-breakout fade (L55) with essentially zero edge: Sharpe 0.053, CI -0.647 to +0.67 (centered on zero), total_return 8.5% over 6.4 years, Sortino 0.032, PSR 0.56 — statistical noise that deflation would push negative. Adverse payoff (58% win rate but avg_loss > avg_win, expectancy $55/trade, IR -0.81) and untradeable capacity (impact_cost_pct 28.1%, capacity_usd $1.27M) make it a promotion blocker even if the tiny edge were real. Flat across every year, no persistent edge. Not tunable — the developer's engine-free +0.50%/trade did not survive real fees/impact and there is no positive Sharpe region to optimize toward. Failure pattern: single_name_fade_no_edge (Sharpe ~0, CI straddles zero, tiny capacity, impact-dominated).

Implementation

Long-short false-breakout (upthrust/spring) fade on BNBUSDT.BINANCE USD-M 4-HOUR bars. Each bar the strategy takes the Donchian high/low over the donchian_bars bars ending confirm_bars bars ago -- the PRE-breakout range -- and scores a trap on each side as min(pierce, reclaim) in ATR units: pierce = how far the last confirm_bars bars poked beyond the band, reclaim = how far back inside the current bar closed. signal = max(trap_down,0) - max(trap_up,0), so positive = a failed DOWNSIDE break (spring, BUY) and negative = a failed UPSIDE break (upthrust, SELL), with magnitude = conviction in ATRs. Entry fires at |signal| >= 0.5 ATR with a market order; the position targets the range midpoint, stops at the failed extreme +/- atr_stop_mult x ATR, and is force-flat after 6 bars (24h), all evaluated on bar closes. Size = equity * 1.5% / stop distance, hard-capped at 1x equity notional, leverage 1.0. Three tunables: donchian_bars, confirm_bars, atr_stop_mult.

Verification Results

Analyst/optimizer should confirm the plateau holds OOS; with t=1.69 the walk-forward OOS Sharpe and 15-day holdout are the deciding evidence.

Verification Results

Weak statistical significance. Developer discloses t=1.69 on 186 full-history trades (~29/yr); the trailing-year sandbox is essentially flat (Sharpe 0.037, total_return +1.63%, 32 trades) with 2020 (-0.64%) and 2022 (-0.22%) negative. avg_trade_return_pct 0.515% clears the 0.15% floor 3x and the edge is stable across halves, so this is not a correctness defect — but the edge is suggestive, not conclusive. Analyst's call at BACKTEST_REVIEW, not a QA blocker.

Verification Results

No code change. Note for optimizer: a flat atr_stop_mult sensitivity is not a defect.

Verification Results

Exit mix is timeout-dominated (140/186) rather than midpoint-target (33) or stop (13). Disclosed and consistent with a one-day stop-cascade premise; target and stop still exist and fire, so the mechanism is intact. atr_stop_mult reads as a flat tail-risk cap in sensitivity, which is expected, not a cliff.

Verification Results

Optional: gate the flatten on an actual open position before returning True.

Verification Results

Minor: should_exit() returns True whenever _plan is None. If an exit takes a bar to fill, the next bar re-enters with _plan cleared and returns True again, potentially stacking a second exit for the still-closing position. Base-template exit path is idempotent and fills are next-bar, so the book is not corrupted.

Verification Results

None required.

Verification Results

Static warnings on unbounded _trs/_highs/_lows growth and unguarded atr/stop_dist divisions are false positives: deques carry maxlen, atr is guarded by '<= 0.0' before /atr, and stop_dist/close are guarded before use.

Backtest Review

Clean, well-documented implementation with careful pre-breakout reference band (avoids the look-back-absorption bug) and low drawdown (6.0%)

Backtest Review

Genuinely market-neutral (beta 0.002); the pattern fires as intended (185 trades)

Backtest Review

No edge: Sharpe 0.053 with CI -0.647 to +0.67 (centered on zero), total_return 8.5% over 6.4 years (~1.3%/yr), Sortino 0.032, PSR 0.56 (coin flip)

Backtest Review

Adverse payoff: 57.8% win rate but avg_loss ($766) > avg_win ($654), expectancy $55/trade, information_ratio -0.81

Backtest Review

Untradeable capacity: impact_cost_pct 28.1% eats a quarter of gross PnL, capacity_usd only $1.27M — edge (if any) exists only at toy scale

Backtest Review

Single-name fade class (L55): re-tuning thresholds has never lifted this class, and here there is nothing to tune toward (Sharpe ~0)

Backtest Review

Flat across every year — noise netting near zero, not a persistent edge

Outcome Summary

BnbFalseBreakoutTrapReversal set out to fade a documented structural pattern — the failed multi-day breakout (upthrust/spring) — on BNB 4H bars, carefully measuring pierces against a frozen pre-breakout Donchian band to avoid the lookahead-absorption bug and targeting the range midpoint with a tight ATR stop. The implementation was clean and genuinely market-neutral (beta 0.002) with a low 6.0% drawdown, but it had no edge: Sharpe 0.053 with a CI centered on zero, just 8.5% total return over 6.4 years, an adverse payoff (avg loss > avg win), and an untradeable 28.1% impact cost with capacity of only $1.27M. The analyst abandoned it on the first iteration at the backtest_review gate, judging it the single-name fade no-edge pattern where the developer's engine-free profit did not survive real fees and impact and there was no positive Sharpe region to optimize toward. It never advanced to optimization, analysis, or risk review.

Outcome Summary

A carefully engineered structural pattern (frozen pre-breakout band, lookahead-safe) and a developer's engine-free +0.50%/trade do not survive real fees and market impact on an illiquid single name — a Sharpe near zero with a CI straddling zero and 28% impact cost means noise netting to nothing, not a tunable edge, and the single-name fade class has never been lifted by re-tuning.

Outcome Summary

It was abandoned at the pre-optimization backtest_review gate on iteration 1: the analyst issued an 'abandon' verdict because the strategy has essentially zero edge (Sharpe 0.053, CI straddling zero, PSR 0.56 — noise that deflation would push negative), an adverse payoff, and untradeable capacity dominated by 28.1% impact cost, matching the single-name fade no-edge failure pattern with no positive Sharpe region to optimize toward.

Outcome Summary

A long-short, single-instrument, pure-OHLCV reversal on BNBUSDT.BINANCE USD-M 4H bars that fades failed breakouts of a multi-day (~5-day, 30-bar) Donchian range — when price pierces the range extreme but closes back inside (trapping breakout traders), it reverses toward the range midpoint with an ATR stop just beyond the failed extreme, using a frozen pre-breakout reference band, with three parameters (Donchian length, close-back-inside confirmation window, ATR stop multiple).

Outcome Summary

The backtest showed essentially no edge: Sharpe 0.053 (CI -0.647 to +0.67, centered on zero), total_return 8.5% over 6.4 years (~1.3%/yr), Sortino 0.032, PSR 0.56, and expectancy $55/trade over 185 trades. Despite a 57.8% win rate the payoff was adverse (avg_loss $766 > avg_win $654, information_ratio -0.81), and the strategy was untradeable at scale — impact_cost_pct 28.1% and capacity_usd only $1.27M — flat across every year, though genuinely market-neutral (beta 0.002) with a low 6.0% max drawdown.
Strategy report

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