EthDailyBollingerLowerBounceLong
Hypotheses
ETH Daily Bollinger Band Lower-Band Bounce Long-Only with Trend Filter (BINANCE USD-M Futures, Daily, OHLCV-Only)
Hypotheses
A long-only, single-instrument, single-venue, OHLCV-ONLY mean-reversion strategy on ETHUSDT.BINANCE 1D bars. Same template as landed BtcDailyBollingerLowerBounceLong — applied to ETH. Enter long when close touches/breaks below the lower Bollinger Band (20-SMA - 2*stdev) AND close above 200-day SMA. Exit at middle band, hard stop, or time limit. Per factory directive: ETHUSDT.BINANCE 1D bars are always safe. Four parameters total.
Hypotheses
Direct ETH application of the landed BtcDailyBollingerLowerBounceLong template. calculate_signal returns the continuous Bollinger z-score (close-SMA20)/stdev, which varies every bar and whose <= -bb_std crossing IS the lower-band touch, so the verifier sees real signal variation rather than a gated-to-0.0 constant; the 'only buy in an uptrend' condition (close > 200-SMA) is stored as self._regime_ok and ANDed with the z-threshold in should_enter, which is what keeps the strategy from catching falling knives in bear markets. The exit reverts to the middle band (the mean-reversion target) with a hard stop and time stop. min_bars_required clears 200 so the trend SMA uses a full window. Venue is BINANCE USD-M futures per the hypothesis and the landed template (futures RT taker ~0.10% is cheaper than spot's ~0.20% for this multi-day hold); long-only with leverage left at 1.0 (no amplification) so the leverage_set_but_unused gate does not trigger, and the band-to-mean move on daily ETH dwarfs the round-trip fee. Four core parameters (bb_period, bb_std, trend_period, stop_loss_pct) keep the overfitting surface minimal.
Hypotheses
Structurally too sparse to validate out-of-sample — exactly the trade-count risk flagged at pre-optimization. The strategy is implemented correctly (proven sibling landed on BTC), but the base signal fires only 22 times over 6.5 years and the optimizer drove trend_period 200->100 / bb_std to 2.48, thinning the sample to just 5 trades (exposure 3.23%) so the signal does not fire at all in the walk-forward OOS windows (all three OOS Sharpes 0.0) or producibly in the holdout. Every decisive gate fails: deflated_sharpe 0.0004 (is_significant FALSE) with the optimized Sharpe 0.87 far below the expected-max luck bar 7.35 over 225 trials, PBO 0.5886, sharpe_ci_low -2.48 (CI straddles 0); walk-forward is_overfitted=TRUE (avg IS 6.23 -> avg OOS 0.0); the holdout FAILED with a NEGATIVE Sharpe -2.71; and sensitivity FAILED with 3 cliffs on the CORE signal params (bb_std, bb_period, trend_period). Not iterate (attempt 1 of 2): no parameter change can manufacture out-of-sample trades from a structurally rare signal — densifying (lower bb_std) reduces Sharpe while thinning empties the OOS/holdout, and the 3 core-param cliffs confirm there is no robust region. Not revise_hypothesis: the Bollinger lower-bounce mechanism is already landed on BTC, so the family's value is captured; ETH is simply the sparse arm of the family's asset-selectivity, not a proven mechanism stranded on a once-working, now-dead target. FAILURE PATTERN: single-asset daily Bollinger lower-band-bounce-in-uptrend on a crypto major fires too rarely (~22 trades over 6.5yr, optimizer thins to 5) to survive walk-forward/holdout — best-of-225 selection drives the config toward higher thresholds that yield zero-trade OOS windows and a negative holdout (-2.71), failing DSR (0.0004) with 3 core-param sensitivity cliffs. A proven mean-reversion template on BTC does not necessarily transplant to ETH when the signal frequency is structurally too low to validate.
Implementation
Long-only daily Bollinger Band lower-band bounce on ETHUSDT.BINANCE USD-M futures, pure OHLCV single feed. Enters long when the close touches/breaks below the lower Bollinger Band (20-SMA - 2*stdev, i.e. z-score <= -2) while the close is above the 200-day SMA (uptrend filter). Exits on reversion to the middle band (20-SMA), an 8% hard stop, or a 15-bar time stop. The signal is the continuous Bollinger z-score recomputed every bar; the 200-SMA trend filter is a separate boolean gate. Sized at 50% equity notional, capped so hard-stop risk <= 1.5% of equity. leverage 1.0.
Backtest Review
Proven template: same code as the landed BtcDailyBollingerLowerBounceLong, applied to ETH — mechanism already validated on a sibling instrument
Backtest Review
Mechanism implemented correctly: entry_diag 22 signaled -> 22 submitted, 0 dropped; all long, exposure 9.9%, exits at middle band — matches the lower-band-bounce-in-uptrend premise
Backtest Review
Healthy risk-adjusted profile: PF 1.66, win 64%, max_drawdown 6.3%, Sortino 2.06, positive in 4 of 5 years; negligible impact cost (0.93%) and enormous capacity (~$1.2B)
Backtest Review
Only 4 core params (bb_period, bb_std, trend_period, stop_loss_pct) — low overfitting surface
Backtest Review
Sparse sample: only 22 trades over 6.5 years (~3.4/yr) — walk-forward windows get ~7 trades each and the 15-day holdout may contain ZERO trades, the key forward-validation risk
Backtest Review
Sharpe CI straddles 0 (sharpe_ci_low -0.94, sharpe_ci_high 3.31) — the 1.26 point estimate is fragile on this sample
Backtest Review
Low absolute return (total +11.8% over 6.5 years) with high tail_ratio (42.7) and kurtosis (12.6) — a few trades drive results
Backtest Review
Selective gate makes the signal inherently low-frequency; densification depends on the optimizer loosening bb_std / bb_period
Analysis
Implemented correctly and trades as specified (oversold lower-band bounce in an uptrend); proven sibling template landed on BTC
Analysis
Clean low-risk profile on the base config (max_drawdown 6.3%, negligible impact 0.93%, large capacity) — but on too few trades to validate
Analysis
Structurally too sparse to validate: 22 base trades, optimizer thins to 5 (exposure 3.23%); all 3 walk-forward OOS windows produced ZERO trades (avg OOS Sharpe 0.0)
Analysis
Failed deflated Sharpe: DSR=0.0004 (bar 0.95), optimized Sharpe 0.87 far below the expected-max luck bar 7.35 over 225 trials
Analysis
is_significant FALSE; sharpe_ci_low -2.48 straddles 0; PBO 0.5886 (>0.5)
Analysis
Walk-forward is_overfitted=TRUE: avg IS 6.23 collapses to avg OOS 0.0 (zero-trade OOS windows)
Analysis
Holdout FAILED with a NEGATIVE Sharpe -2.71 (ratio 0)
Analysis
Sensitivity FAILED with 3 cliffs on the CORE signal params (bb_std, bb_period, trend_period) — no robust region
Analysis
Optimized config trades only 5 times in 6.5 years with negative recent year (2026 -5.27%) — not a deployable, validatable edge
Outcome Summary
This strategy ported the landed BTC Bollinger-lower-bounce template to ETH daily, buying oversold dips in an uptrend, and earned an 'optimize' verdict on a clean low-risk base (PF 1.66, 64% win, 6.3% drawdown) — but flagged as sparse at only 22 trades. Optimization confirmed the worry: it thinned the config to 5 trades, all three walk-forward OOS windows fired zero trades, the holdout failed with Sharpe -2.71, deflated Sharpe was 0.0004, and three core parameters were sensitivity cliffs. The analyst abandoned it at the analyzing stage on the first iteration as structurally too rare to validate — ETH is simply the sparse arm of a family already captured on BTC — so it stopped before risk review.
Outcome Summary
A proven mean-reversion template on one asset does not necessarily transplant to another when the signal frequency is structurally too low — ~22 trades in 6.5 years (thinned to 5 by the optimizer) cannot survive walk-forward/holdout, producing zero-trade OOS windows, a negative holdout, and core-parameter cliffs no matter how clean the base profile looks.
Outcome Summary
It cleared the backtest-review gate with an 'optimize' verdict, but the post-optimization analyst abandoned it as structurally too sparse to validate: deflated Sharpe 0.0004 (<0.95) with the optimized Sharpe 0.87 far below the 7.35 expected-max over 225 trials, is_significant false, PBO 0.59, walk-forward overfitted with all three OOS windows producing zero trades (avg OOS Sharpe 0.0), a holdout that failed with a negative Sharpe -2.71, and sensitivity failing with 3 cliffs on the core signal params.
Outcome Summary
A long-only daily Bollinger lower-band bounce mean-reversion strategy on ETHUSDT Binance futures (1.0x leverage, 0.5 position) — a direct port of the landed BtcDailyBollingerLowerBounceLong — buying when close touched ≤2 std below the 20-SMA while above the 200-day SMA, exiting at the middle band, a hard stop, or a 15-bar time limit.
Outcome Summary
The base backtest had a clean low-risk profile but very few trades — 22 over 6.5 years, +11.8% total, Sharpe 1.26, profit factor 1.66, 64% win rate, just a 6.3% max drawdown, negligible impact and ~$1.2B capacity, positive in 4 of 5 years — and optimization thinned it to only 5 trades (3.23% exposure).
Backtest and paper results are hypothetical. Trading involves risk of loss.