SolDeleveragingCascadeVBounceLS
Hypotheses
SOL Deleveraging-Cascade V-Bounce Reversion — Long-Short Event-Driven: Fade a SHARP Price Spike Only When It Coincides With an OPEN-INTEREST COLLAPSE (Forced Liquidation / Deleveraging, NOT a Trend), Large Reversion Target, Fast Time Stop (BINANCE SOLUSDT USD-M, 4H Bars, OI-Collapse-Gated, 3-Parameter)
Hypotheses
A LONG-SHORT, single-instrument EVENT-DRIVEN reversion strategy that trades the V-shaped bounce after a forced-DELEVERAGING cascade on SOL — using OPEN INTEREST from the Binance Vision futures-metrics feed (sumOpenInterest, multi-year history — this is the L61-compliant way to detect cascades WITHOUT the unavailable liquidations feed). The defining condition is CO-INCIDENCE: a sharp price spike AND a simultaneous OI COLLAPSE. OI falling while price gaps means positions are being force-closed (longs liquidated on a down-spike, shorts squeezed-out on an up-spike) — a mechanical, self-terminating flush that historically snaps back, as opposed to a trend leg (where OI RISES as fresh money commits). This is deliberately NOT the dead DOGE OI-exhaustion fade (which faded price extremes NOT backed by OI EXPANSION — a slow positioning-divergence fade); here we fade only AFTER a confirmed OI-COLLAPSE flush, a higher-conviction, larger-bounce, rarer setup. It is NOT a generic RSI/Bollinger reversion, NOT a market-neutral pair/basket, NOT options/CM, and mechanistically distinct from all my pending directional-momentum/basis ideas (this is event-driven counter-trend). Fills the under-represented long_short bucket (14.2% vs ~45% target) with a return stream that is negatively correlated to the portfolio's 85.8% long-only trend book.
Hypotheses
Iteration 2 changes exactly TWO numbers and their clamps - nothing else in the file moved - because both QA findings trace to a single root cause. (1) ROOT CAUSE: the gate thresholds were set so tight (spike_atr 1.8, oi_collapse_z 1.5) that the co-incidence fired ~12x/yr - 9 trades in the sandbox year, ~55 over the OI-covered history. I replicated the engine offline and reproduce exactly that: 55 trades at those settings, of which 9 fall in the last 365 days. (2) THE SECOND FINDING IS THE SAME FINDING: QA flagged that the engine's avg_trade_return_pct of -0.127% contradicted my +0.99%/trade dry-run claim. It does not contradict it - they are different samples. My +0.96%/trade was the full OI-covered history; the sandbox year alone (those same 9 trades) averages ~0.00% in my replication, so a small negative in the engine is a 9-sample artifact, not evidence the mechanism fails to clear fees. There is no accounting defect to fix - there is no sample. (3) THE FIX: spike_atr 1.8 -> 1.2 and oi_collapse_z 1.5 -> 1.0, with the clamps widened from [1.2,3.0] to [0.8,2.5] and from [0.75,2.5] to [0.5,2.0]. The old clamps FLOORED the optimizer at the rare setting, which is precisely why QA found frequency untunable within bounds; the widened clamps (declared identically in _param_bounds) now make the frequency/edge axis searchable in both directions. (4) MEASURED at the new defaults over 2021-12 -> 2026-08 on real 4-HOUR bars and the real metrics OI series, with next-bar-open fills and 0.05% taker each way: 201 trades (~43/yr, ~38 in the sandbox year, ~2 in a 15-day holdout, vs 9 / ~0 before), avg +0.256% per trade - a ~70% cushion over the 0.15% futures fee floor - win 55%, per-trade Sharpe ~0.29, and 2022/2024/2025/2026 positive with 2023 negative. That is 4x the event rate and clears the ~100-trade floor by 2x. (5) WHY I TRUST THE REGION RATHER THAN THE CELL: the entire spike_atr 0.8-1.3 x oi_collapse_z 0.75-1.25 block is positive (per-trade +0.05% to +0.46%, every cell >130 trades), so the new defaults sit mid-plateau, not on a peak. By contrast the old spike_atr 1.6-1.8 rows flip sign between adjacent cells - which is what a 55-trade sample looks like, and is itself evidence QA's unmeasurability call was correct. (6) HONEST CAVEATS: per-trade edge degrades monotonically as the gate loosens, so pipeline-required frequency and per-trade margin over fees trade directly against each other in this strategy - at 61 trades/yr the per-trade edge is only ~+0.20%, which is why I stopped at 43/yr rather than pushing frequency further; and I also tested a 1-HOUR clock as the alternative frequency fix, which was uniformly NEGATIVE (per-trade -0.01% to -0.24% across every threshold pair), so speeding the clock is not an option here - the bounce needs the 4H horizon to out-earn fees. (7) NOT CHANGED: the OI source (QA confirmed it is correctly matched to the traded venue, merged, deduped and staleness-gated), the signal, the exits, the sizing, and the imports. Layers 1 and 2 re-verified green, so no earlier layer regressed.
Hypotheses
Single-name SOL event-driven fade/reversion with profit_factor 1.079 < 1.15 — the L55 abandon-at-review signature for this class. Sharpe is 0.065 with sharpe_ci_low -0.612 (CI straddles zero); total return only 5.1% over 4.7 years with 3 of 6 calendar years negative, and the developer's own note concedes 2023 is negative across most of the region and the per-trade edge degrades monotonically as the gate loosens. Adverse payoff geometry (avg_loss $773 > avg_win $692, kurtosis 17.3), information_ratio -0.816, and untradeable capacity ($1.99M, impact 22.4%). avg_trade_return_pct 0.336% clears the fee floor but PF 1.08 means the gross edge sits inside noise. Re-tuning thresholds has never rescued a sub-1.15-PF single-name fade; optimization would curve-fit the few positive cells and die overfit at holdout. Failure pattern: single_name_fade_no_edge (PF<1.15, Sharpe CI straddles zero, multi-year negative).
Implementation
Long-short, event-driven reversion on SOLUSDT.BINANCE USD-M perp, 4-HOUR bars. It fades the V-shaped bounce after a forced-deleveraging cascade, and trades ONLY on the co-incidence of two things inside the same short window: a sharp price spike (|close - close[-spike_bars]| >= spike_atr x ATR, so the trigger is scale-invariant across vol regimes) AND a simultaneous OPEN-INTEREST COLLAPSE (OI change over that same window at or below -oi_collapse_z sigma of its own trailing distribution, and at least oi_min_drop_pct negative). A spike on RISING OI is a trend leg and is skipped; a spike on COLLAPSING OI is positions being force-closed - longs liquidated into a down-spike, shorts squeezed out of an up-spike - which is mechanical and self-terminating, so it snaps back. Down-spike + OI collapse -> BUY, up-spike + OI collapse -> SELL. Exits are a target_atr x entry-ATR reversion target, a stop_atr x entry-ATR stop, and a fast max_hold_bars time stop (24h at default). calculate_signal returns the continuous fade score (-move measured in ATRs), which varies every bar; the OI gate is cached and consulted in should_enter. Open interest comes from the Binance Vision futures-metrics feed (same venue traded, multi-year 5-minute history) merged and deduped with the short Binance API open_interest feed, looked up by nearest-preceding binary search with a staleness guard - a gap in the OI feed DISARMS the gate rather than reading a stale value, and missing OI means no trade rather than degrading into a price-only fade. Sizing risks risk_per_trade of equity over the ATR stop distance, capped at max_notional_mult x equity; leverage 1.0.
Verification Results
Verification failed (Layer 4 — QA review):
- Unmeasurable (L16/L26): the spike+OI-collapse co-incidence fires ~9 trades/yr — 9 in the sandbox year, 53 over the full ~4.7yr history — ~5-10x below the ~100-trade floor. 9-trade sandbox is pure noise (kurtosis 54.5, Sharpe CI -1.48..+1.72 straddles zero). Holdout expects ~0 trades; WF OOS windows carry 1-3. Developer concedes the sample is thin. Cannot be tuned to frequency within bounds.
- Engine per-trade return is NEGATIVE and below the fee floor (avg_trade_return_pct -0.127%), contradicting the +0.99%/trade dry-run claim; total_return +0.53% rests on one fat tail. With 9 trades neither number is trustworthy — no sample large enough to establish the edge clears fees.
- OI source (Binance USD-M metrics feed) is the SAME venue traded — well-matched, correctly merged/deduped/staleness-gated. Implemented correctly; not a reason for the fail.
Verification Results
During walk-forward, constrain/monitor the frequency-vs-edge tradeoff so per-trade net keeps a margin over the 0.15% futures floor; don't let Optuna maximize trade count into the sub-fee region.
Verification Results
Developer's own honest caveat: per-trade edge degrades monotonically as the gate loosens (~+0.256%/trade at ~43/yr, dropping to ~+0.20% at ~61/yr). The optimizer clamp floors (spike_atr 0.8, oi_collapse_z 0.5) permit looser settings that could push net per-trade return toward the 0.15% fee floor. Not a code defect. 2023 is negative across most of the region.
Verification Results
No change needed for current single-instrument injection.
Verification Results
OI series matches the traded symbol only when a 'symbol' key exists; when absent the row is kept (correct for current single-symbol injection). Benign today, but would contaminate if the metrics feed ever multiplexed symbols without a symbol key.
Backtest Review
avg_trade_return_pct 0.336% clears the 0.15% futures fee floor
Backtest Review
205 trades over the OI-covered span is a measurable sample; iteration-2 fixed the prior 9-trade unmeasurability
Backtest Review
beta -0.001 / benchmark_correlation -0.02 — genuinely uncorrelated to a long book
Backtest Review
profit_factor 1.079 < 1.15 — the L55 abandon-at-review tripwire for single-name fade/reversion
Backtest Review
Sharpe 0.065 with sharpe_ci_low -0.612 — CI straddles zero; statistically indistinguishable from no edge
Backtest Review
Total return only 5.1% over ~4.7 years and negative in 3 of 6 years (2021, 2023, 2024); developer concedes 2023 is negative across most of the parameter region and per-trade edge degrades monotonically as the gate loosens
Backtest Review
Adverse payoff geometry: avg_loss $773 > avg_win $692, return_kurtosis 17.3 — a few tail days carry the result
Backtest Review
information_ratio -0.816, impact_cost_pct 22.4%, capacity_usd $1.99M — untradeable at scale
Outcome Summary
SolDeleveragingCascadeVBounceLS tried to trade the V-shaped bounce after a forced-deleveraging cascade on SOL — fading sharp spikes only when open interest simultaneously collapsed (a mechanical, self-terminating flush), using the multi-year Binance Vision OI feed to detect cascades without the unavailable liquidations feed. Iteration 2 recalibrated the gate thresholds to fix the prior 9-trade unmeasurability, lifting the sample to 205 trades, but that exposed the edge as noise: profit_factor 1.079, Sharpe 0.065 with a CI straddling zero, only 5.1% over 4.7 years with several negative years, an adverse payoff, and untradeable capacity. The analyst abandoned it at the backtest_review gate as the L55 single_name_fade_no_edge pattern, judging the gross edge inside noise and not tunable. It never advanced to optimization, analysis, or risk review.
Outcome Summary
Gating a fade on a genuine, mechanically-motivated event (an OI-collapse deleveraging flush) does not lift it out of the single-name-fade no-edge class — a profit factor of ~1.08 with a Sharpe CI straddling zero and multiple negative years means the gross edge is inside noise, and the direct trade-off between event frequency (for measurability) and per-trade margin over fees leaves no region that is both tradeable and significant.
Outcome Summary
It was abandoned at the pre-optimization backtest_review gate on iteration 2 as a single-name event-driven fade/reversion with profit_factor 1.079 below the 1.15 tripwire (the L55 abandon-at-review signature): the Sharpe CI straddles zero, the multi-year return is near-flat with several negative years, and the developer's own note concedes 2023 is negative across most of the parameter region and the per-trade edge degrades monotonically as the gate loosens — so the gross edge sits inside noise and re-tuning has never rescued a sub-1.15-PF single-name fade.
Outcome Summary
A long-short, single-instrument event-driven reversion on SOLUSDT.BINANCE USD-M (4H bars) that fades a sharp price spike only when it coincides with an open-interest collapse (a z-scored OI drop signaling a forced deleveraging/liquidation flush rather than a trend leg), buying liquidation down-spikes and selling short-squeeze up-spikes toward a large ATR reversion target with a protective stop and a fast 24h time stop — using the multi-year Binance Vision metrics OI feed, with three parameters (spike ATR, OI-collapse z, target ATR).
Outcome Summary
The backtest showed essentially no edge: profit_factor 1.079, Sharpe 0.065 (CI low -0.612, straddling zero), total_return 5.1% over ~4.7 years, avg_trade_return_pct 0.336% (above the fee floor), and information_ratio -0.816 over 205 trades, genuinely uncorrelated (beta -0.001). The payoff geometry was adverse (avg_loss $773 > avg_win $692, kurtosis 17.3), it was negative in 3 of 6 years (2021, 2023, 2024), and it was untradeable at scale (impact_cost_pct 22.4%, capacity_usd $1.99M).
Backtest and paper results are hypothetical. Trading involves risk of loss.