Strategies
BTC 4H Keltner Channel Mean Reversion (Symmetric)
Outcome: Abandoned
BtcFourHourKeltnerMeanReversionSymmetric
Outcome Summary
BtcFourHourKeltnerMeanReversionSymmetric was a clean, minimal 4-parameter fade — buy the lower Keltner band, sell the upper, exit at the midline, with an ATR stop intended to survive the ~30% trending time the hypothesis explicitly worried about. The code did precisely that across 425 trades, but the premise failed: a 56.9% win rate masked an inverted payoff (avg_win $370 vs avg_loss $746), yielding profit_factor 0.655, Sharpe −1.53, a −51.3% return, and losses in all 7 years and both legs. The ATR stop didn't save it — it merely metered the trend-break losses into a continuous bleed, and with the Sharpe CI entirely negative (probabilistic_sharpe 0.0002) the edge was near-certainly negative. The analyst abandoned it at backtest review without optimizing: this is the third confirmation in the session that channel/oscillator mean-reversion fades have no edge on crypto majors — excursions continue rather than revert, and a stop converts the tail into steady losses rather than an edge.
Hypothesis
A simple, symmetric mean-reversion strategy on BTCUSDT perpetual futures using 4-hour bars and Keltner Channels (EMA midline +/- ATR multiple). The hypothesis: BTC 4H bars spend roughly 60-70% of calendar time in horizontal/range regimes punctuated by short trending bursts. During range regimes, price excursions beyond an EMA +/- 2*ATR envelope are statistically followed by reversion toward the midline within 1-3 bars. The strategy enters long when close pierces the lower channel and short when close pierces the upper channel, exits on a touch of the midline or the opposite channel, and uses an ATR-based hard stop to cap losses on the ~30% of the time when the range breaks (trending regime). Deliberately kept extremely simple (4 parameters total) to avoid the verification timeouts and overfitting issues seen in recent pipeline failures. Single instrument, single timeframe, no supplementary data, no multi-instrument coordination.
Implementation
Symmetric Keltner-channel mean-reversion on BTCUSDT.BINANCE 4H (pure OHLCV, single instrument). The channel is EMA(20) ± 2×ATR(10); a close piercing the lower band enters LONG and a close piercing the upper band enters SHORT (fade back to the mean). Exits when price reverts to the EMA midline or an ATR hard stop (3×ATR from entry) triggers when the range breaks into a trend. Risk-based sizing (1% of equity to the ATR stop, capped at 1x equity notional). Four core parameters; leverage 1.0.
Backtest Review
- Sharpe
- -1.53
- Total return
- -51.31%
- Max drawdown
- 54.08%
- Trades
- 425
- Win rate
- 56.9%
- Profit factor
- 0.66
Implemented correctly and trades as specified: 425 symmetric Keltner fades (180 long / 245 short), ATR stop + midline target, entry_diag clean (425 signaled = 425 submitted, 0 dropped), metrics_reliable=true, ample sample
No edge: profit_factor 0.655, Sharpe -1.53, Sortino -1.35, total_return -51.3%, expectancy -110.8 (negative)
Inverted mean-reversion payoff: win_rate 0.569 but avg_win $370 << avg_loss $746 -- small reversions captured, big losses on trend breaks (skew -1.49, tail_ratio 0.60); the ATR stop does not save it
Negative in ALL 7 years and BOTH legs (long_win 0.61 / short_win 0.54 yet net-negative); Sharpe CI entirely negative (-2.38 to -0.68), probabilistic_sharpe 0.0002; max_drawdown 54%, commission 7.54% of gross
ample
0 of 7
majority
negative (-110.8)
Outcome Summary
Symmetric channel/oscillator mean-reversion fades on crypto majors (Keltner here, like the DOGE Keltner and ETH RSI(2) siblings) reliably produce a high win rate with avg_win << avg_loss and sub-1 profit factor — excursions continue rather than revert often enough that the fade is net-negative across every regime, and an ATR stop turns the tail losses into a bleed, so a high win rate is a warning sign, not evidence of edge.
The analyst issued an abandon verdict at backtest review on a dead-premise basis: the Sharpe CI was entirely negative (−2.38 to −0.68) with probabilistic_sharpe 0.0002, the inverted win/loss geometry meant the ATR stop converted trend-break tail losses into a steady bleed rather than containing them, and with both directions net-negative in every year the 4 parameters could only fit noise — nothing to fix in code since the premise itself is the flaw.
A deliberately simple symmetric Keltner-channel mean-reversion on BTCUSDT.BINANCE 4H bars (4 parameters): fade excursions beyond an EMA ± 2×ATR envelope — long when price pierces the lower channel, short when it pierces the upper — exiting on a touch of the midline or opposite channel, with an ATR-based hard stop meant to cap losses during the ~30% of time the range breaks into a trend.
It traded exactly as specified with an ample sample — 425 fades (180 long / 245 short), clean entry diagnostics, metrics_reliable=true — but had no edge: profit_factor 0.655, Sharpe −1.53, Sortino −1.35, total_return −51.3%, expectancy −110.8, max drawdown 54%, commission 7.54% of gross. Despite a 56.9% win rate the payoff was inverted — avg_win $370 vs avg_loss $746 (skew −1.49, tail_ratio 0.60) — and it lost in all 7 years and both legs.
Backtest and paper results are hypothetical. Trading involves risk of loss.