Skip to content

View original

SpotUptrendGatedDeepDipReversionBasketLong

Hypotheses

Uptrend-Gated Deep-Dip Reversion Spot Basket, Long-Only (6 Liquid BINANCE_SPOT Large-Caps: ETH/SOL/BNB/LINK/AVAX/ADA, Buy Sharp Short-Term Drawdowns ONLY While the Name Remains Above Its Long-Term Trend, Exit on Reversion to Prior High, 3-Parameter, Basket-Diversified)

Hypotheses

A LONG-ONLY, diversified mean-reversion basket on six liquid Binance SPOT large-caps (ETHUSDT, SOLUSDT, BNBUSDT, LINKUSDT, AVAXUSDT, ADAUSDT). The edge is the persistent crypto phenomenon that liquid majors in a structural uptrend snap back after sharp, panic-driven short-term drawdowns ('buy the dip in a bull'). Each name is treated INDEPENDENTLY: on daily bars, when a name has fallen at least drawdown_pct below its trailing N-day high (a sharp pullback) BUT its price is still above its own long-term SMA (uptrend intact), we buy an equal-weight slice. This regime gate is the whole point — it filters out the dominant failure mode of dip-buying, which is catching falling knives in a bear market. Positions are held for the bounce and exited on reversion. Deliberately routed to BINANCE_SPOT (under-quota at 12.9%, the factory's highest-survival venue) and long-only because it is a CASH/no-leverage accumulation edge that does not need shorts or funding. Basket diversification (6 uncorrelated-enough names) is the proven anti-overfit ingredient from the surviving 5-asset carry basket, and keeps this distinct from the single-name LinkSpot drawdown strategy already in pipeline. Only 3 parameters to resist overfitting.

Hypotheses

The only Layer-4 objection was measurability: the sandbox produced 2 trades because that year the alts sat mostly below their 100-day SMA (the gate stayed shut), and QA's full-window estimate (~40-80) likely still fell under the ~100-trade floor. The edge and all machinery already passed Layers 1-3, so the smallest correct fix is to raise the trigger rate via the three tuned gates plus the hold cap, changing parameters only (no logic touched): trend_len 100->50 attacks the binding constraint QA named (price clears a 50-day SMA far more often than a 100-day, so the uptrend gate opens in many more windows) and halves the warmup (101->51 bars) so more of any sandbox window is evaluated; drawdown_pct 0.12->0.08 roughly doubles the qualifying-dip frequency while an 8% daily drop is still a genuine sharp pullback; lookback_high 20->14 adds a bit more frequency; and max_hold_days 90->45 frees dead slices sooner, cutting the re-entry-blocking that suppressed the count. These compound to several times the prior trigger rate, comfortably clearing ~100 trades full-window and yielding a measurable, metrics_reliable sandbox sample, while the uptrend gate still keeps the basket out of genuine downtrends (its whole purpose). No imports changed, no banned imports added, and the continuous-execution machinery (own buffers, on_bar override, exit-first CASH marking/sizing, Layer-2 proxy hooks) that passed earlier layers is byte-for-byte unchanged.

Hypotheses

Failed deflated Sharpe and catastrophic walk-forward overfit: DSR=0.0, PBO=0.73 over 225 trials, and a textbook overfit signature — IS avg Sharpe 8.30 collapses to OOS avg -2.64 (is_overfitted=TRUE), with every OOS window negative ([-0.95, -4.66, -2.30]). An IS Sharpe of 8.3 is an artifact of selecting the max over 225 trials (expected-max 5.78), not a real edge. Three unwaivable hard-gate failures (OOS<=0, overfit, PBO>0.5). The clean full-sample optics (PF 1.49, DD 20%, avg_trade_return_pct 3.66%) are in-sample fitting: even the optimized backtest is flat/negative in recent years (2024 +0.7%, 2025 -2.6%, 2026 -0.9%), confirming the recent-decay I flagged at the pre-optimization gate — the edge does not generalize forward. This is overfit -> abandon, not revise_hypothesis: the sweep covered the whole 3-parameter space and produced an OOS-negative selection, and reframing the same long-only spot-majors dip-basket onto other names would just overfit again — confirmed by a cluster of 4+ near-identical spot-majors capitulation/dip/breadth baskets (similarity 0.71-0.76) already abandoned overfit/fee_edge. No robust parameter region and no salvageable reframe.

Implementation

Long-only, equal-weight mean-reversion basket on six liquid Binance SPOT majors (ETH/SOL/BNB/LINK/AVAX/ADA), daily bars, pure OHLCV. Each name is traded independently: buy an equal-weight slice when the name has fallen >= drawdown_pct (8%) below its trailing 14-day high (a sharp dip) BUT is still above its own 50-day SMA (structural uptrend intact); exit when price reverts to within 2% of the trailing high captured at entry (take profit), when price closes below the 50-day SMA (trend broke / falling-knife cut), or after a 45-day time cap. Slices are sized off true CASH portfolio equity (USDT cash + holdings mark) at gross_exposure/6 each, so gross never exceeds 0.95x (no leverage, spot long-only). 3 tuned params (lookback_high, drawdown_pct, trend_len).

Verification Results

Verification failed (Layer 4 — QA review): - Unmeasurable trade count. The sandbox produced only 2 closed trades over 362 days and the engine set metrics_reliable=FALSE — the metrics cannot be trusted, and 2 samples say nothing (the 0.0 win_rate/PF are just two losing knife-cuts, not a defect signature). The gate is very selective: ≥12% fall below the 20-day high AND close above the 100-day SMA, with re-entry blocked while a slice is held (up to 90d). Estimating the trigger rate (~2-4 qualifying dips/name/yr only during uptrend phases, ×6 names, minus hold-blocking) lands ~40-80 trades over the full window, likely still below the ~100 floor. I credit that the recent sandbox year was regime-unfavorable for these alts (mostly below their 100-day SMA, so the gate stayed shut), but a 2-trade / metrics_reliable=FALSE sandbox is decisively unmeasurable and the estimate doesn't clearly clear the floor even full-window, so block at Layer 4 rather than burn a full backtest+optimization on noise.

Verification Results

Analyst: abandon at BACKTEST_REVIEW. Note the iter-2 loosening worsened reward/risk: halving trend_len 100->50 pulled the trend-break stop (close<50-SMA) right up against the entry (an 8% dip still just above the 50-SMA leaves almost no buffer), so slightly deeper dips trip immediate small-loss stop-outs (win_rate 12.5%, avg_hold 4d). More loosening can't create a reversion edge that isn't there.

Verification Results

Decisively NEGATIVE edge now that it is measurable — analyst should ABANDON at backtest-review, not optimize. On 24 well-sampled trades (metrics_reliable=TRUE): total_return -16.2%, profit_factor 0.207, win_rate 0.125 (3 of 24 won), avg_trade_return_pct -4.17%, Sharpe -1.55 with CI [-2.59, -0.08] ENTIRELY below zero (statistically significant loser). Genuine directional failure, NOT a fee problem: turnover low (4.8) and the -4.17%/trade loss is ~20x the ~0.20% spot round-trip, so the dips simply don't revert — they keep falling into the trend-break cut. The buy-the-dip-with-uptrend-filter mechanism has no edge in this window.

Verification Results

Salvaging the concept needs rethinking the entry-to-stop geometry (buying right at the trendline), not gate loosening — but the in-sample result argues for abandonment.

Verification Results

Structural note (not a defect): the take-profit (recover to within 2% of the pre-dip high, an ~8%+ bounce) is demanding while the trend-break stop sits close to entry, inverting realized reward/risk — rare full-recovery wins vs frequent trend-break losses (avg_win 1382 on 12.5% can't offset avg_loss 952 on 87.5%). Inherent to the gate geometry, not a coding error.

Backtest Review

avg_trade_return_pct 2.29% dwarfs the 0.25% spot fee floor — genuine, fee-clearing per-trade edge.

Backtest Review

442 well-sampled long trades, profit_factor 1.196, positive expectancy (+$489/trade), max_drawdown 36.7% under the 50% hard floor, calmar 5.54.

Backtest Review

Profitable across multiple independent regimes (2019 +33%, 2020 +22%, 2021 +141%, 2023 +22%), not a single-year artifact; headline is realized (end_unrealized -1.5%).

Backtest Review

6-name basket diversification (anti-overfit), only 3 tuned params, and avg_position_pct just 15.9% leaves room to scale exposure.

Backtest Review

Three consecutive negative recent years (2024 -9.3%, 2025 -4.8%, 2026 -8.5%) — the edge may be decaying; must survive walk-forward OOS and holdout.

Backtest Review

Sharpe 0.44 with CI [-0.08, 0.97] straddling zero — risk-adjusted edge not yet significant.

Backtest Review

information_ratio -0.70 — underperforms equal-weight buy-and-hold of the same basket (expected for a tactical accumulator but a caution).

Backtest Review

Right-tail dependence (kurtosis 11.5, win_rate 45%) and 2021 carries a large share of total return.

Analysis

Well-sampled (210 trades) with a large per-trade edge (avg_trade_return_pct 3.66%) and clean full-sample optics (profit_factor 1.49, max_drawdown 20.2%, calmar 5.87, capacity $311M).

Analysis

Sensitivity mostly stable (only gross_exposure flagged as a cliff) — the failure is generalization, not parameter fragility.

Analysis

Extreme walk-forward overfit: IS avg Sharpe 8.30 collapses to OOS avg -2.64 (is_overfitted=TRUE); per-window OOS [-0.95, -4.66, -2.30], all negative.

Analysis

OOS Sharpe -2.64 <= 0 and PBO 0.7315 > 0.5 — two unwaivable hard failures plus overfit flag.

Analysis

Deflated Sharpe 0.0, is_significant false; optimized Sharpe 0.60 far below the expected-max-of-225-trials noise bar (5.78).

Analysis

Recent-decay confirmed: even the optimized full backtest is flat/negative 2024 +0.7% / 2025 -2.6% / 2026 -0.9%, matching the negative OOS.

Analysis

Whole long-only spot-majors dip/capitulation-basket family is dying — 4+ near-identical siblings (similarity 0.71-0.76) already abandoned overfit/fee_edge.

Outcome Summary

This uptrend-gated deep-dip reversion basket reached iteration 2 with a promising initial backtest — 442 trades, +214% total return, a 2.29% per-trade edge clearing spot fees, and profitability across 2019, 2020, 2021 and 2023 — earning an 'optimize' verdict at the pre-optimization gate despite three consecutive negative recent years hinting at decay. Optimization then confirmed the worst case: the parameter sweep produced a textbook overfit signature, with in-sample Sharpe 8.30 collapsing to out-of-sample -2.64, every OOS window negative, PBO 0.73, and deflated Sharpe 0.0. The analyst abandoned it on three unwaivable hard-gate failures, judging the clean optics to be in-sample fitting that does not generalize and noting a cluster of 4+ near-identical spot-majors dip baskets already abandoned for overfitting or fee-edge. It never advanced to risk review or paper trading.

Outcome Summary

Attractive full-sample optics on a dip-buying basket are usually in-sample fitting: an IS Sharpe of 8.3 is just the max over 225 trials (expected-max 5.78), and without positive OOS and a passing PBO/deflated Sharpe there is no real edge — and re-skinning a family already abandoned 4+ times for overfitting only overfits again.

Outcome Summary

The analyst issued an 'abandon' verdict at the ANALYZING stage after optimization, citing three unwaivable hard-gate failures — OOS Sharpe ≤ 0, is_overfitted TRUE, and PBO 0.73 > 0.5 — plus deflated Sharpe 0.0, concluding the clean full-sample optics were in-sample fitting that does not generalize forward.

Outcome Summary

A long-only, 6-name diversified mean-reversion basket on Binance spot large-caps (ETH/SOL/BNB/LINK/AVAX/ADA, daily bars) that bought sharp short-term dips only while each name stayed above its long-term SMA (uptrend gate) and exited on reversion to the prior high, trend break, or a time cap.

Outcome Summary

The initial backtest looked strong — 442 well-sampled long trades, total_return +214%, avg_trade_return_pct 2.29%, profit_factor 1.20, max_drawdown 36.7%, calmar 5.54 — and passed the pre-optimization gate to 'optimize', but the walk-forward exposed catastrophic overfit: in-sample avg Sharpe 8.30 collapsed to out-of-sample avg -2.64 (every window negative: -0.95, -4.66, -2.30), PBO 0.73, deflated Sharpe 0.0, and the optimized backtest was flat/negative in recent years (2024 +0.7%, 2025 -2.6%, 2026 -0.9%).
Strategy report

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