Strategies
LINK BINANCE Futures 4H Range-Bound Mean-Reversion Long-Only with Volatility-Compression Regime Filter (3-Parameter, Chop-Optimized, Explicit Anti-Breakout Mechanism Class)
Outcome: Abandoned
LinkRangeBoundMeanReversionLowVolLong
Outcome Summary
LinkRangeBoundMeanReversionLowVolLong was deliberately designed as the anti-breakout counter-position to the session's abandoned Donchian family, buying the low end of an established range only under a volatility-compression regime gate, betting the 2024-2026 chop that killed breakouts would favor range mean-reversion. But the backtest falsified the premise: it lost 32.2% with a profit factor of 0.77 and negative returns in every year since 2021 — including the very chop window it targeted — because the 4% range-break stop cut losers ($2,767 avg) below the midpoint-target wins ($1,750 avg), netting negative despite a 54.9% win rate. The low-vol filter created no edge, and with locked risk constants and a falsified thesis there was nothing to optimize. The analyst abandoned it at the backtest-review gate, calling it the mean-reversion mirror of the abandoned breakout family — failing in the same regime from the opposite side.
Hypothesis
Iteration 2 fixes the Layer-2 (synthetic) failure 'LinkRangeBoundMeanReversionLowVolLong._true_ranges() takes 1 positional argument but 2 were given'. Root cause: _true_ranges was declared @staticmethod, but the Layer-2 verification proxy rebinds strategy helpers as instance methods and passes self, so the 1-arg staticmethod received 2 args. The minimal fix converts _true_ranges from a staticmethod to an instance method (drop @staticmethod, add self); the call site already invokes it as self._true_ranges(bars), so no other change is needed. Every other line -- the volatility-compression regime gate, range construction, continuous signal, entry threshold, deterministic exits, and capital-relative sizing -- is byte-identical to the previous iteration, preserving all Layer-1 checks (clean imports, subclass, methods) that already passed. This mirrors a known recurring gotcha where @staticmethod helpers invoked as self._helper(...) break only under the synthetic proxy.
Implementation
Long-only LINKUSDT.BINANCE 4H range-bound mean-reversion with a volatility-compression regime gate. Each bar it checks a chop filter (ATR(20) <= mean true range over 200 bars), builds the rolling 50-bar high/low range excluding the current bar, and enters long when the close is within 15% of the range low AND the low-vol regime holds. It exits deterministically at the range midpoint, on a 4% range-break below the low, or after a 48-bar time cap. Three tunable parameters (range_lookback, entry_position_pct, position_pct); all risk/exit constants are hard-coded. Long-only, leverage 1.0, OHLCV-only.
Verification Results
Backtest Review
- Sharpe
- -0.72
- Total return
- -32.18%
- Max drawdown
- 42.59%
- Trades
- 122
- Win rate
- 54.9%
- Profit factor
- 0.77
Clean OHLCV-only implementation; signal fires a reasonable number of times (122 trades); no sizing/min-notional drops
Thoughtful anti-breakout design with a low-vol regime gate — a genuinely distinct mechanism class
Net-losing with no edge: total_return -32.2%, Sharpe -0.72 (ci_low -1.91), PF 0.77, expectancy -$286/trade, PSR 0.14
Thesis falsified: negative in EVERY year since 2021 (2024 -3.3%, 2025 -10.6%, 2026 -9.8%) — it loses in the exact 2024-2026 chop regime it claimed to profit from
Asymmetric exits bleed it: 54.9% win rate but avg_loss $2,767 > avg_win $1,750 (range-break stops cut losers below wins)
Severe risk: max_drawdown 42.6% (ci_high 70%), drawdown duration 2,219 days; long-only range-buying = catching falling knives
Outcome Summary
The chop-favors-mean-reversion thesis does not hold on a single-asset long-only book: in crypto a 'range low' in a low-vol window more often precedes a continued breakdown than a reversion, so the range-break stop realizes losses larger than the midpoint-reversion wins — making long-only range-buying a falling-knife catch with negative expectancy across regimes.
The analyst abandoned it at the backtest-review gate before optimization because its central thesis was falsified by its own data — it lost throughout the exact 2024-2026 chop regime it claimed to profit from — and it had negative expectancy with no edge for optimization to surface, the asymmetric exits being locked constants rather than tunable parameters.
A long-only, OHLCV-only range-bound mean-reversion strategy on LINKUSDT 4H futures — the structural opposite of a breakout — buying within 15% of a 50-bar range low only when a volatility-compression filter (20-bar ATR ≤ 200-bar mean true range) confirmed a low-vol chop regime, exiting at the range midpoint, a 4% range-break stop, or a 48-bar time cap, with 3 parameters and no tunable risk knobs.
Over 122 long trades the strategy was net-losing with no edge: -32.2% total return (CAGR -6.6%), Sharpe -0.72 (CI low -1.91), profit factor 0.77, per-trade expectancy -$286, a 42.6% max drawdown, and negative returns in 6 of 7 years — including every year since 2021 (2024 -3.3%, 2025 -10.6%, 2026 -9.8%). Its 54.9% win rate was undone by asymmetric exits, with avg loss ($2,767) larger than avg win ($1,750).
Backtest and paper results are hypothetical. Trading involves risk of loss.