Skip to content

View translation

BtcEthSolSpotDrawdownAccumulationBasketLong

Hypotheses

BTC+ETH+SOL BINANCE_SPOT 4H Drawdown Accumulation Basket Long-Only (3-Asset Major Basket, 3-Parameter, Independent Per-Asset Entries, No Stop-Loss)

Hypotheses

A LONG-ONLY MULTI-INSTRUMENT BASKET version of the proven drawdown accumulation mechanism: each of BTCUSDT.BINANCE_SPOT, ETHUSDT.BINANCE_SPOT, and SOLUSDT.BINANCE_SPOT is monitored INDEPENDENTLY on 4H bars. When any asset's current close drops >= drawdown_threshold_pct (default 15%) below its rolling 90-bar (~15-day) high, open a long spot position in that asset. Exit when that asset recovers >= 5% above its entry price OR after a hard 240-bar (~40 day) time stop. Each asset's position is INDEPENDENT — the basket can hold 0-3 positions simultaneously depending on which assets are in drawdown. STRATEGIC RATIONALE: (1) PORTFOLIO QUOTA FILL — BINANCE_SPOT at 10.4% vs ≥15% target (large gap), and multi-instrument scope at 9.0% needs expansion. This single hypothesis addresses BOTH quotas with a 3-asset spot basket. (2) MECHANISM CLASS IS SIBLING-VALIDATED AT PAPER STAGE — the BTC Spot 30-Day Drawdown Accumulation has reached PAPER STAGE at Sharpe 3.33 per recent analyst feedback. This is the STRONGEST validation signal in the factory's 1103-experiment history. The single-asset SOL Spot Drawdown Accumulation I submitted earlier (SolSpotFourHourDrawdownAccumulationLong) is in the pipeline awaiting validation. This BASKET version diversifies across the 3 most-liquid spot majors, reducing single-asset regime-decay risk (which killed the BNB Spot sibling). (3) WHY THE BASKET STRUCTURE ANSWERS THE BNB CROSS-ASSET-TRANSFER FAILURE — the BNB Spot Drawdown Accumulation abandon notes show that single-asset cross-asset transfer of this mechanism is RISKY: BTC works, BNB failed catastrophically. The basket structure neutralizes this risk because (a) at any given time only 1-2 of 3 assets are typically in drawdown, (b) even if 1 asset has decayed (e.g., ETH 2025 regime decay), the BTC + SOL legs can carry the basket, (c) the BTC sibling's proven Sharpe 3.33 anchors the basket-level edge. (4) ASSET CHOICE: BTC (sibling validated), ETH (parallel sibling for the same mechanism class on a different asset — captures cross-asset distribution), SOL (the strongest performing major with high vol that favors drawdown-mean-reversion). EXCLUDED: BNB (post-2024 moratorium), AVAX (multiple failures including Skewness, Trend-Pullback, BNB-class regime decay), XRP (Premium MR failure), DOGE (single mechanism in pipeline already at HL). (5) DECISIVE FAILURE-MODE AVOIDANCE: NO STOP_LOSS PARAMETER — explicit fix for LINK/ETH iter-2 optimizer-reversal failure. Risk is bounded by (a) 15% drawdown entry threshold (buying meaningful weakness, not noise), (b) hard 240-bar time exit (NOT tunable), (c) 20% per-asset sizing capping single-trade impact, (d) 3-asset diversification meaning total max gross = 60% even with all 3 positions open. (6) AVOIDS ALL DEPRECATED MECHANISM CLASSES: NOT Donchian breakout (system-wide regime decay confirmed: BTC, AVAX, XRP, SOL); NOT funding/premium/OI/skewness signals (different mechanism class); NOT volume-surge daily; NOT cross-venue (single venue); NOT 1H pair MR (deprecated). (7) HOLDOUT-FAVORABLE EDGE STRUCTURE: drawdown accumulation works BEST in chop-and-recovery regimes (which is the 2024-2026 regime), unlike Donchian/breakout which DECAYS in chop. The factory's 'holdout is the strongest predictor' insight WORKS FOR this strategy. (8) FEE MATH EXPLICITLY VIABLE ON SPOT: 0.20% RT spot fees vs viability floor 0.25% per trade. Expected win = 5-15% recovery × 20% position = 1.0-3.0% gross per winning trade. Net of 0.20% fees = 0.80-2.80% per winner. At 60-70% win rate (typical drawdown-buy in established assets during normal/bull regimes): EV ≈ +0.5-1.5% per trade NET, well above 0.25% spot floor.

Hypotheses

Iteration-3 fix (Layer 2 arity error): the failure was `_drawdown() takes 2 positional arguments but 3 were given`. The definition and its call sites disagreed on argument count. I removed the `lookback` parameter from `_drawdown` and made it read `self._lookback` (set in __init__) internally, then updated all three call sites to pass only `closes`. This eliminates the positional-argument mismatch with a minimal change. No imports, class structure, config, or signal/entry/exit logic were altered — everything Layer 1 already passed remains untouched. The basket structure diversifies the paper-validated (Sharpe 3.33) BTC drawdown-accumulation mechanism across the three most-liquid spot majors to neutralize single-asset regime-decay risk; spot venue is correct because the strategy is long-only, unleveraged, and non-funding-based.

Hypotheses

Failed deflated Sharpe and the forward holdout decisively on attempt 1. DSR=0.0014 (vs 0.95 bar) with the optimized WF Sharpe ~2.90 FAR below the 225-trial expected-max luck bar of 7.66 (is_significant=false, sharpe_ci_low -0.19 straddling 0, PBO 0.5952 >0.5) — after multiple-testing correction the selected config is indistinguishable from best-of-N noise, and the high probabilistic_sharpe (0.9324) is the classic PSR-vs-DSR trap. The time-ordered HOLDOUT FAILED (ratio 0.335 <0.70; holdout Sharpe 0.969 vs WF-OOS 2.90), and although is_overfitted=false the walk-forward OOS is regime-concentrated: windows [-4.47, -0.28, +13.44], two negative with the average propped by a single outlier window. Decisively, against its equal-weight BTC+ETH+SOL benchmark the basket has no edge — alpha ~0 (base -0.020), information_ratio negative (-0.66/-0.62), benchmark_correlation 0.63 — so it is long-beta dip-buying, not alpha, and the 'no stop-loss' design produces a fat left tail (88% win rate but avg_loss >> avg_win, skew -2.58, base max_drawdown 37.5%, largest loss -$18,325). Not iterate (attempt 1 of 2): sensitivity is a flat, passing plateau with 0 cliffs (optimizer already on its ~1-2 Sharpe surface) with 2-of-3 negative OOS windows and a failed holdout — there is no robust region above the luck bar to tune toward, so a second best-of-225 sweep re-selects the same sub-significant config. Not revise_hypothesis: BTC+ETH+SOL is not a dead target and the single-asset BTC sibling is the configuration where this mechanism works — this is a basket variant that dilutes into near-benchmark long exposure and fails deflation (variant-selectivity), not a proven mechanism stranded on a dead instrument. FAILURE PATTERN: wrapping the promoted single-asset BTC drawdown-accumulation mechanism into a 3-asset spot basket does NOT inherit promotability — the added ETH/SOL legs and no-stop design produce a high-win-rate, fat-left-tail long-beta portfolio with ~zero alpha over an equal-weight basket (IR negative), whose modest edge cannot clear best-of-225 deflation (DSR 0.0014, Sharpe 2.90 vs 7.66 luck bar) and whose forward holdout keeps only a third of the WF-OOS Sharpe. A clean sensitivity grid and a non-overfit walk-forward flag do not rescue a variant that fails deflated Sharpe, the holdout, and the benchmark-alpha test simultaneously; the promoted single-asset BTC instance remains where this mechanism clears the bar.

Implementation

Long-only 3-asset spot drawdown-accumulation basket on BINANCE_SPOT 4H bars (BTC, ETH, SOL). Each asset is monitored independently: enters a long when its close falls >= 15% below its rolling 90-bar high, exits on +5% recovery above entry or after a hard 240-bar (~40 day) time stop. Holds 0-3 independent longs at once, capping max gross exposure near 60% equity. No stop-loss parameter by design.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['min_notional', 'per_asset_pct', 'drawdown_threshold_pct', 'rolling_high_lookback_bars'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000) - steady_downtrend: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000) - flat_ranging: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000) - volatility_spike: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000) - zero_volume: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000) - price_gap: TypeError: BtcEthSolSpotDrawdownAccumulationBasketLong._drawdown() takes 2 positional arguments but 3 were given (bar timestamp: 1735695060000)

Backtest Review

218 long trades over an 8-year span — ample sample for meaningful parameter optimization, not noise-fitting

Backtest Review

Trade pattern faithfully implements the hypothesis: long-only dip-buying, 82.6% win rate, +5% recovery exits with rare deep losses (no stop by design)

Backtest Review

Clean, low-dimensional tuning surface (only 3 tunable params) minimizes overfitting risk during the sweep

Backtest Review

Mechanism is sibling-validated (BTC spot drawdown accumulation at paper stage); basket structure diversifies single-asset regime-decay risk

Backtest Review

Fee math is sound on spot (commission 3.9% of gross); strategy is functioning and non-degenerate

Backtest Review

profit_factor only 1.15 — thin edge; avg_loss ($6,108) is ~4x avg_win ($1,485), classic no-stop asymmetric tail (skew -2.3, tail_ratio 0.38)

Backtest Review

max_drawdown 37.5% (CI high ~61%) is large for a spot long-only basket

Backtest Review

Negative alpha (-0.02) and information_ratio (-0.66) — lags its own equal-weight basket benchmark; much of the return is just market beta on dips

Backtest Review

impact_cost_pct 6.6% eats a meaningful share of gross edge

Backtest Review

Sharpe CI straddles 0 (ci_low -1.08) — significance is far from established, will need to clear deflated-Sharpe gates post-optimization

Analysis

Clean, low-parameter (3 tunable) long-only spot basket with a sensible mechanism and a genuinely validated single-asset BTC sibling; code is correct (independent per-asset legs, cross-leg alignment, no shorts on CASH account).

Analysis

Sensitivity passed with 0 cliffs — parameter surface is stable/flat, so the failure is significance, not fragility.

Analysis

High headline win rate (83-88%) and positive raw returns in bull years (2021 +85%, 2024 +14%).

Analysis

Fails deflated Sharpe decisively: DSR 0.0014, optimized WF Sharpe ~2.90 far below the 225-trial expected-max luck bar of 7.66; is_significant=false, sharpe_ci_low -0.19 (CI through 0), PBO 0.5952 (>0.5).

Analysis

Holdout FAILED: ratio 0.335 (<0.70), holdout Sharpe 0.969 vs WF-OOS 2.90 — the untouched recent window retains only a third of the edge.

Analysis

Walk-forward OOS is regime-concentrated: windows [-4.47, -0.28, +13.44], two negative, the 2.90 average carried entirely by one outlier window.

Analysis

No alpha over the equal-weight BTC+ETH+SOL benchmark: alpha ~0 (base -0.020), information_ratio negative (-0.66/-0.62), benchmark_correlation 0.63 — this is long-beta dip-buying, not an edge over holding the assets.

Analysis

The 'no stop-loss' design produces a fat left tail: 88% win rate but avg_loss ($4,080-$6,108) >> avg_win ($806-$1,485), skew -2.58, kurtosis ~10, tail_ratio 0.45, base max_drawdown 37.5%, largest loss -$18,325.

Analysis

Do NOT optimize yet — the dominant flaw is in LOCKED constants the optimizer can't touch. Fix the exit design first: (1) UNLOCK and redesign the recovery exit. The flat RECOVERY_EXIT_PCT=5% caps every winner at a tiny gain (avg_win $1,485) while the no-stop, 240-bar time exit lets losers run from a -15%+ entry to large losses (avg_loss $6,108), giving return_skew -2.30 / tail_ratio 0.38 / PF 1.15 despite an 83% win rate. Make the recovery target SCALE WITH ENTRY DRAWDOWN DEPTH — if you bought 15% below the rolling high, target a recovery toward that prior high (e.g. exit at +half-the-drawdown or at the rolling-high level), so winners capture the full mean-reversion bounce instead of being truncated at 5%. Expose it as a tunable (recovery_target_frac of drawdown depth) rather than a locked 5%. (2) ADD downside protection: the 40-day time stop is the only thing bounding losses — consider a catastrophic stop or a depth-proportional max-loss so a leg that keeps falling doesn't dominate the tail. (3) DIAGNOSE the negative alpha: the basket currently underperforms buy-and-hold of BTC/ETH/SOL (alpha -0.02, IR -0.66) while the BTC single-asset sibling reached Sharpe 3.33 — check whether the ETH/SOL legs drag (their larger bounces may be exactly what the flat 5% target truncates). Re-backtest after fixing the exit; if the redesigned version shows positive alpha vs the basket, a positive Sharpe CI lower bound, and tail_ratio >1, it's worth optimizing.

Outcome Summary

This strategy tried to fill portfolio quotas by generalizing the factory's promoted single-asset BTC drawdown-accumulation mechanism into a diversified 3-asset spot basket, deliberately omitting a stop-loss to avoid a prior optimizer-reversal failure and relying on a 15% dip threshold, time stop, and per-asset sizing for risk. It produced eye-catching win rates (83-88%) and an optimized Sharpe of 2.55, and it passed sensitivity cleanly with zero cliffs, but the edge was hollow: deflated Sharpe of 0.0014 against a 7.66 luck bar, a failed holdout keeping only a third of the walk-forward edge, two of three negative out-of-sample windows, and no alpha over an equal-weight BTC+ETH+SOL benchmark. The no-stop design also left a fat left tail — an 88% win rate masking losses far larger than wins (skew -2.58, largest loss -$18,325). The analyst abandoned it on attempt 1 as a basket variant that dilutes into near-benchmark long-beta and fails deflation, the holdout, and the alpha test at once, concluding the promoted single-asset BTC instance remains the only configuration where this mechanism clears the bar.

Outcome Summary

Wrapping a promoted single-asset mechanism into a multi-asset basket does not inherit its promotability — the added legs diluted it into near-benchmark long-beta exposure with roughly zero alpha, so future variants must be tested for alpha over a like-for-like basket benchmark, and a no-stop-loss design should be scrutinized for the fat left tail (high win rate but avg loss ≫ avg win) it hides.

Outcome Summary

The analyst abandoned it after optimization on attempt 1: it failed the deflated Sharpe test (DSR 0.0014, WF Sharpe ~2.90 far below the 225-trial luck bar of 7.66, PBO 0.595, CI straddling zero), failed the time-ordered holdout (ratio 0.335, holdout Sharpe 0.969 vs WF-OOS 2.90) with two of three OOS windows negative ([-4.47, -0.28, +13.44]), and showed no alpha over its equal-weight BTC+ETH+SOL benchmark (alpha ~0, information ratio -0.62, correlation 0.63) — i.e. long-beta dip-buying, not edge — despite passing sensitivity with zero cliffs.

Outcome Summary

A long-only 3-asset spot basket (BTC, ETH, SOL on BINANCE_SPOT, 4H) that independently dip-bought each asset when it fell ≥15% below its rolling 90-bar high, exiting at a +5% recovery or a hard 240-bar time stop with no stop-loss, aiming to generalize the factory's promoted single-asset BTC drawdown-accumulation mechanism (paper stage, Sharpe 3.33) into a diversified basket.

Outcome Summary

The base backtest showed a thin edge: Sharpe 1.09, +35.1% return, an 82.6% win rate but profit factor only 1.15 with avg loss ($6,108) roughly 4× avg win ($1,485), 37.5% max drawdown, and negative alpha (-0.02). Optimization lifted the headline to Sharpe 2.55 (WF OOS 2.90) with a 13.3% drawdown and 88% win rate, but the underlying edge stayed weak.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.