BchSpotDrawdownAccumulationLongDaily
Hypotheses
BCH Spot Multi-Day Drawdown Accumulation Long (BINANCE_SPOT, Daily, OHLCV-Only)
Hypotheses
A long-only, single-instrument, single-venue, OHLCV-ONLY strategy on BCHUSDT.BINANCE_SPOT DAILY bars. Same proven drawdown-accumulation mechanism as the 5 landed siblings (BTC/DOGE/XRP/LINK/LTC spot DCA): buy when BCH has dropped meaningfully from its 30-day high AND is still above its 100-day SMA; sell when BCH recovers to within 5% of the peak, hits a stop, or times out. BCH fills a unique cycle profile: Bitcoin-fork 'store-of-value alt' with its own hard-fork events (BSV split 2018, BCHA/eCash split 2020) plus halving schedule synced with BTC (last 8/2024). Lower volatility than DOGE/SOL (~70% annualized) with stronger correlation to BTC's halving cycle but more sensitivity to alt-rotation flows. BCHUSDT.BINANCE_SPOT has been listed since 2017 — ~8 years of daily bars, tied with LTC for longest history in the book. Five parameters total. Hits BINANCE_SPOT venue quota gap (currently 8.1% vs ≥15% target).
Hypotheses
The prior code on this pipeline slot was a stale ETH 4H top-trader L/S-ratio futures strategy that had no relationship to this BCH-spot-DCA hypothesis and repeatedly produced zero trades because its supplementary-data-gated entry never fired. This iteration implements the hypothesis as specified: the proven drawdown-accumulation mechanism shared by the 5 landed BTC/DOGE/XRP/LINK/LTC spot siblings, applied to BCHUSDT.BINANCE_SPOT daily bars. It is long-only (CASH venue: SELL only closes longs), leverage 1.0, and OHLCV-only with no supplementary-data dependency — so the 'no trades' failure is structurally eliminated: over BCH's ~8 years of daily history the 15%-drawdown-above-100d-SMA condition triggers many times. Capital-relative sizing (25% equity notional per entry) and multi-day holds give per-trade returns comfortably above the ~0.20% spot round-trip fee. Fills the BINANCE_SPOT venue quota gap.
Hypotheses
failed deflated Sharpe: DSR=0.0927, expected-max=12.34 over 225 trials — the selected optimized Sharpe (6.38) sits BELOW the best-of-N luck bar and is statistically indistinguishable from noise (is_significant=false, sharpe_ci_low=-1.483 straddling 0, PBO=0.709>0.5; probabilistic_sharpe 0.9219 vs DSR 0.0927 is the textbook PSR-vs-DSR selection-inflation trap). The walk-forward is is_overfitted=TRUE: avg IS Sharpe 9.75 collapses to avg OOS 0.0 with all three OOS windows exactly [0.0, 0.0, 0.0] — the optimized config thinned entries (drawdown_entry 0.15->0.219, sma_period 100->52) until it produces NO out-of-sample trades, and the untouched time-ordered HOLDOUT FAILED (holdout_sharpe 0.0, ratio 0). Sensitivity FAILED with 5 cliff parameters (stop_pct, sma_period, recovery_pct, lookback_high, drawdown_entry). Fundamentally, the base backtest LOSES money on BCH (total_return -3.27%, profit_factor 0.948, avg_trade_return -130.8) with NEGATIVE alpha (-0.018) and information_ratio (-0.40) vs its own BCH buy-hold — the dip-buy/recovery premise has no edge on a chronically underperforming Bitcoin-fork that structurally declines rather than recovers. Not iterate (attempt 1 of 2): per the overfit->abandon rule this is high-IS/zero-OOS overfitting on a 5-cliff surface with PBO 0.709 and no robust parameter region, so a second best-of-225 sweep re-overfits and cannot manufacture trades in empty OOS/holdout windows. Not revise_hypothesis: the drawdown-accumulation DCA mechanism already has 5 landed siblings covering the coin-diversification axis, so it is not a proven edge stranded on a single dead target awaiting a reframe — the BCH expression is a no-edge + overfit failure on a valid, data-rich instrument. FAILURE PATTERN: porting the promoted spot-DCA drawdown-accumulation mechanism (BTC/DOGE/XRP/LINK/LTC) to BCH does NOT inherit promotability — BCH's persistent-decline profile makes the buy-dip/sell-recovery premise net-negative at base (PF 0.948, negative alpha/IR), and optimization overfits catastrophically (IS 9.75 -> OOS 0.0 across all three windows, holdout 0.0, DSR 0.093, PBO 0.709, 5 sensitivity cliffs, optimized Sharpe 6.38 below the 12.34 luck bar). A high probabilistic_sharpe and a flattering 14-trade in-sample optimized refit measure consistency, not significance or forward-generalization.
Implementation
Long-only spot DCA-style accumulation on BCHUSDT.BINANCE_SPOT daily bars. Buys when BCH has dropped >=15% below its 30-day high while still above its 100-day SMA (uptrend dip, not falling knife). Exits when price recovers to within 5% of the recent peak, hits a 30% stop, or a 90-bar time stop. OHLCV-only, five core parameters, leverage 1.0, never shorts.
Verification Results
Verification failed (Layer 3 — sandbox backtest): No trades produced
Bar type used: ETHUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 14016
Diagnostics: should_enter() returned a side 0 times over 14012 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds.
Ensure your strategy produces trades with the given data and parameters.
Backtest Review
Mechanism functions and matches the hypothesis: 25 long-only dip entries, ~33% exposure, ~24-day avg hold, dips bought in an uptrend (close > 100-SMA).
Backtest Review
Proven drawdown-accumulation template with 5 landed spot siblings; BCH is a valid instrument with ~8 years of daily history.
Backtest Review
Loss is marginal (profit_factor 0.948, near breakeven) rather than catastrophic - a plausible asset-specific parameter region may exist.
Backtest Review
Net loser at baseline: total_return -3.27%, expectancy -131/trade, negative in 4 of 6 years.
Backtest Review
Negative alpha (-0.018) and information_ratio (-0.40) vs BCH buy-hold - no demonstrated edge over holding the asset, with beta ~0.07 (mostly cash).
Backtest Review
Only 25 trades over 6.5 years - too thin for reliable walk-forward optimization (~3-4 trades per OOS fold); high overfitting/noise-fitting risk.
Backtest Review
max_drawdown 41.6% with a 1576-day drawdown duration.
Analysis
OHLCV-only, long-only spot mechanism is structurally sound and has 5 promoted siblings (BTC/DOGE/XRP/LINK/LTC spot DCA).
Analysis
8 years of BCH daily data — data sufficiency is not the problem; the strategy does trade (25 base trades).
Analysis
Base backtest is a net loser on BCH: total_return -3.27%, profit_factor 0.948, avg_trade_return -130.8, negative alpha (-0.018) and information_ratio (-0.40) vs its own BCH buy-hold — no edge with sibling-standard params.
Analysis
Walk-forward is_overfitted=TRUE: avg IS Sharpe 9.75 collapses to avg OOS 0.0 with all three OOS windows exactly [0.0, 0.0, 0.0] — the optimized thin config produces no out-of-sample trades.
Analysis
Failed deflated Sharpe: DSR=0.0927 (<0.95), is_significant=false, PBO=0.709 (>0.5), sharpe_ci_low=-1.483 straddles 0; optimized Sharpe 6.38 sits BELOW the 225-trial expected-max luck bar of 12.34 — indistinguishable from best-of-N noise.
Analysis
Holdout FAILED (holdout_sharpe 0.0, ratio 0).
Analysis
Sensitivity FAILED with 5 cliff parameters (stop_pct, sma_period, recovery_pct, lookback_high, drawdown_entry) — every high-Sharpe pocket is cliff-adjacent, no robust region.
Analysis
probabilistic_sharpe 0.9219 vs DSR 0.0927 is the textbook PSR-vs-DSR selection-inflation trap.
Analysis
The submitted code implements the wrong strategy. You delivered `EthTopTraderLongShortRatioContrarianFade4H` (ETH futures 4H, L/S-ratio contrarian fade, short-biased) but the hypothesis is `BCH Spot Multi-Day Drawdown Accumulation Long`. Replace it entirely with the BCH spot DCA implementation matching the 5 landed siblings (BTC/DOGE/XRP/LINK/LTC spot DCA): (1) instrument_id = BCHUSDT.BINANCE_SPOT, bar_type = BCHUSDT.BINANCE_SPOT-1-DAY-LAST-EXTERNAL; (2) long-only — NO shorts (CASH account cannot short); (3) OHLCV-only — remove all top_account_ratio / supplementary-data dependence; (4) mechanism: BUY when BCH is down a meaningful drawdown threshold from its 30-day high AND close > 100-day SMA; SELL when price recovers to within ~5% of the 30-day peak, hits a stop, or times out; (5) exactly the 5 parameters described (drawdown entry threshold, recovery exit %, stop, timeout, SMA regime filter). Reuse a landed sibling's code as the template and only swap the instrument. Then re-run the backtest over the full ~8-year BCH daily history before resubmitting.
Outcome Summary
BchSpotDrawdownAccumulationLongDaily tried to extend a proven five-sibling spot-DCA drawdown-accumulation mechanism to BCH, buying uptrend dips and selling into recovery on pure daily OHLCV. The base backtest already lacked an edge — 25 trades, -3.27% return, profit factor 0.948, and negative alpha/IR versus simply holding BCH — but the reviewer allowed optimization on the hope of an asset-specific parameter pocket. Optimization exposed the failure instead: dazzling in-sample Sharpes (9.75) collapsed to exactly 0.0 across all OOS and holdout windows, deflated Sharpe was 0.093 against a 12.34 luck bar, PBO was 0.709, and the surface had 5 sensitivity cliffs. The analyst abandoned it after 4 iterations as a no-edge-plus-overfit case, concluding the DCA premise structurally fails on a chronically declining Bitcoin fork.
Outcome Summary
A mechanism with promoted siblings does not inherit promotability on a new instrument — BCH's persistent-decline profile made the buy-dip/sell-recovery premise net-negative, and only ~25 trades gave the optimizer room to overfit into empty out-of-sample windows (the PSR-vs-DSR selection-inflation trap).
Outcome Summary
Though the reviewer sent it to optimization, the analyst then abandoned it: the strategy had no base edge and the optimizer catastrophically overfit — IS Sharpe 9.75 → OOS 0.0, holdout failed, and the optimized Sharpe (6.38) sat below the 225-trial best-of-N luck bar (12.34), so it was statistically indistinguishable from noise; risk review and promotion were never reached.
Outcome Summary
A long-only, OHLCV-only spot DCA strategy on BCHUSDT daily bars that accumulated on ≥15% drawdowns from the 30-day high while price stayed above the 100-day SMA, exiting on recovery near the peak, a stop, or a time stop — porting a mechanism with five promoted siblings (BTC/DOGE/XRP/LINK/LTC).
Outcome Summary
The base backtest was a marginal net loser over ~6.5 years: 25 trades, total return -3.27%, profit factor 0.948, expectancy -$131/trade, 56% win rate, 41.6% max drawdown, and negative alpha (-0.018) and information ratio (-0.40) versus BCH buy-hold. Optimization looked strong in-sample (Sharpe 9.75, optimized refit Sharpe 6.38) but collapsed out-of-sample: all three walk-forward OOS windows were exactly 0.0, holdout Sharpe 0.0, deflated Sharpe 0.093, PBO 0.709, and 5 sensitivity cliffs.
Iteration History
EthTopTraderLongShortRatioContrarianFade4H
Iteration History
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['tp_pct', 'max_pct', 'stop_pct', 'base_risk', 'strong_low', 'strong_high', 'strong_risk', 'min_notional', 'min_stop_pct', 'low_threshold', 'max_hold_bars', 'high_threshold', 'ls_tolerance_s']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
- price_gap: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689840000)
Backtest and paper results are hypothetical. Trading involves risk of loss.