Strategies
BTC Single-Asset Consecutive Streak Exhaustion Reversal Long-Short on BINANCE Daily (Williams 1979 Streak-Fade Pattern, Raw-Bar Color Sequence, Event-Driven)
Outcome: Abandoned
BtcDailyConsecutiveStreakExhaustionReversalLongShort
Outcome Summary
This strategy cleanly implemented the academically-documented streak-fade pattern, fading 5+ consecutive same-color BTC daily bars near 20-bar extremes both long and short, and the cited reversal frequency was even visible in the data (56% win rate, 65% on longs). But it lost money structurally: average losses were roughly twice average wins, giving profit factor 0.65, Sharpe -1.02, a -27.3% total return and a 45.8% drawdown, negative in four of seven years. The analyst abandoned it at the backtest-review gate on its second iteration, concluding the negative payoff asymmetry is intrinsic to counter-trend fading on a trending asset — not fixable by tuning — and that the thin 50-trade sample would only overfit, so it never reached optimization or risk review.
Hypothesis
The streak-fade is correctly implemented and the academically-cited reversal frequency is even present (win_rate 0.56), but the strategy loses money structurally: avg_loss is ~2x avg_win (tail_ratio 0.51, profit_factor 0.65, Sharpe -1.02, -27% total, negative in 4 of 7 years). Fading 5+ consecutive-bar streaks near 20-bar extremes is counter-trend on an asset that trends hard out of those extremes — the frequent small reversal wins are dwarfed by the trend-continuation tail losses (largest -15,868, 45.8% DD), and daily-bar 5% stops cannot contain the -16% gap days that fade-failures produce. This negative payoff asymmetry is intrinsic to the mechanism, not a tunable parameter, and the thin 50-trade / 6.5-year sample (2.57% exposure) means optimization would only curve-fit noise. Not worth 2 hours of optimization; no specific code fix exists because the implementation is faithful to a premise that does not pay after costs.
Implementation
Single-asset long-and-short consecutive same-color-bar streak exhaustion fade on BTCUSDT.BINANCE USD-M futures daily bars, OHLCV-only (Larry Williams 1979 streak-reversal). It counts consecutive raw-candle streaks ending at the prior bar: a 5+ green streak with that bar near the 20-bar high and a current red candle arms a SHORT; a 5+ red streak with that bar near the 20-bar low and a current green candle arms a LONG. Exits on a 5% stop-loss, 10% take-profit, a fresh opposite-side fade, or an 8-bar time stop. calculate_signal returns a continuous streak score (down_streak - up_streak) every bar so the signal varies; the discrete entry pattern is captured in an _armed_side flag checked by should_enter, and the opposite-side exit also reads _armed_side. Sizes 0.60 x leverage(2.0) = ~1.2x equity notional, genuinely consuming the configured leverage.
Verification Results
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['min_notional', 'position_pct', 'max_hold_bars', 'proximity_pct', 'stop_loss_pct', 'take_profit_pct', 'extreme_lookback', 'streak_threshold'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Frozen signal: all 473 signals are identical (value=0.0). calculate_signal() likely has a bug — the signal never varies. - steady_downtrend: Frozen signal: all 473 signals are identical (value=0.0). calculate_signal() likely has a bug — the signal never varies.
Backtest Review
- Sharpe
- -1.02
- Total return
- -27.30%
- Max drawdown
- 45.77%
- Trades
- 50
- Win rate
- 56.0%
- Profit factor
- 0.65
Code faithfully implements the hypothesis: raw-candle streak counting, 20-bar extreme proximity gate, long+short fades — trades match the described mechanism (20 long / 30 short).
The academic premise is even visible in the data: win_rate 0.56 (long 0.65) confirms the ~58% post-streak reversal frequency.
Clean execution: 50 entries signaled and submitted, 0 dropped for size/min-notional, metrics_reliable=true, no engine artifacts.
Net loser: Sharpe -1.02, total_return -27.3%, profit_factor 0.65, expectancy -449/trade, negative in 4 of 7 years.
Payoff structure is inverted: avg_loss (2,930) ~2x avg_win (1,501), tail_ratio 0.51, return_skew -1.82 — the reversal wins are small but trend-continuation losses are huge (largest -15,868, 45.8% max DD).
Counter-trend fading near extremes on a trending asset (BTC) is structurally adverse; daily-bar 5% stops give no intraday protection against the -16% gap days that fade-failures produce.
Only 50 trades over 6.5 years (exposure 2.57%) — far too thin for meaningful parameter optimization; a sweep would overfit to noise.
No code fix to hand back — the failure is in the premise, not the implementation.
Outcome Summary
A statistically real edge (the ~58% post-streak reversal frequency) is worthless when payoff asymmetry is inverted — counter-trend fading near extremes on a trending asset like BTC produces small wins and catastrophic tail losses that daily-bar percentage stops cannot contain, and this is intrinsic to the mechanism, not a tunable parameter.
The backtest-review analyst issued an 'abandon' verdict: the implementation was faithful but the premise loses money structurally — fading streaks near extremes is counter-trend on an asset that trends hard out of those extremes, so frequent small reversal wins are dwarfed by trend-continuation tail losses (largest -15,868), and the thin 50-trade/2.57%-exposure sample would only curve-fit noise under optimization.
A single-asset long-and-short streak-exhaustion fade on BTCUSDT daily Binance futures (2.0x leverage), implementing the Williams 1979 / Conrad-Hameed-Niden pattern: after 5+ consecutive same-color bars near a 20-bar extreme, fade the streak — short the reversal candle after an up-streak near highs, long it after a down-streak near lows.
Across 50 trades (20 long, 30 short) over ~6.5 years it returned -27.3% with Sharpe -1.02, profit factor 0.65, expectancy -449/trade and a 45.8% max drawdown; the cited reversal frequency did show up (win rate 0.56, long 0.65), but the payoff was inverted — avg loss 2,930 was ~2x avg win 1,501 (tail ratio 0.51, return skew -1.82).
Backtest and paper results are hypothetical. Trading involves risk of loss.