LinkSpotCapitulationResetSwingAccumulationLong
Hypotheses
LINK Spot Capitulation-Reset Swing Accumulation, Long-Only (LINKUSDT.BINANCE_SPOT, Vol-Scaled Z-Score Oversold Entry Gated by a Perp Funding-Reset Filter, Multi-Day Hold, 3-Parameter)
Hypotheses
A LONG-ONLY, spot, single-instrument SWING mean-reversion on LINKUSDT.BINANCE_SPOT that is a deliberate departure from the dead dual-timeframe momentum-confluence family (L91/L92) that the colliding LTC hypothesis belongs to. Mechanism: accumulate LINK on the SPOT book after a multi-day capitulation flush AND a same-asset perp funding reset, then hold the mean-reversion bounce for several days. This is NOT an intraday cascade/liquidation fade (L80/L89): entry is measured on 4H closes over a multi-day window, the hold is days, and the per-trade capture is a full swing, not a sub-fee tick. Direction is long-only because it runs on the CASH spot account (no leverage, no short) — routing it to spot per the venue rule and filling the under-represented spot bucket (6% vs >=15% target, highest-survival venue in the portfolio). ENTRY: LINK spot log-price z-score over an N-bar lookback <= -z_enter (deep oversold) WHILE the LINKUSDT.BINANCE perp funding (point-in-time supp_as_of) has gone negative and is resetting up from its trough (over-leveraged longs already flushed -> mechanical bounce fuel). EXIT: reversion of the z-score back toward 0 (>= z_exit) OR a fixed multi-day time stop OR a volatility-based stop below the entry flush low. Conviction sizing scales the spot allocation by flush depth (|z|). FEE MATH: spot RT ~0.20%. Target only deep multi-day flushes on a mid-cap major that historically bounce 3-8% over the following days; capturing even a third of a 6% bounce = ~2.0% per trade = ~10x the 0.20% spot RT cost, and >> the 0.25% spot minimum. Cadence ~20-40 flushes/yr on LINK -> ~120-240 trades over 6yr, well under 1/day, so this is NOT fee-churn and NOT a crash-only zero-trade design.
Hypotheses
Implements the hypothesis exactly: vol-scaled z-score oversold entry on 4H spot closes, gated by a same-asset perp funding reset, held for days, exited on reversion / vol stop / time stop, with conviction sizing by flush depth. Routed to BINANCE_SPOT per the venue rule (long-only, leverage 1, edge is not funding-carry - funding is only a filter). The funding filter is percentile-based rather than a fixed negative-rate constant (lesson L5: absolute supp-data thresholds produce zero-trade / single-digit-trade runs); on LINK a <=25th-percentile trough is in practice the negative-or-near-zero funding regime, so it expresses 'longs flushed' in a scale-invariant way. If the funding series has no observation at or before the bar, the gate stays off and the strategy does not trade - no price-only fallback (per the no-silent-fallback rule). A dry-run over the full LINK 4H spot history (2019-2026) with these defaults gives ~120 trades (~16/yr, well under 1/day), ~66% win rate and ~0.61% mean per-trade return net of the 0.20% spot round-trip, positive in both the 2019-2022 and 2023-2026 halves, and the surrounding parameter region (z_lookback 60-72, z_enter 1.8-2.2, hold 30-60 bars, stop 2-4 ATR) is positive throughout rather than a single lucky cell. All per-bar work is O(lookback) on fixed-size deques plus one bisect into the funding series, so the 300s smoke budget is not at risk.
Hypotheses
Negative expectancy / edge-absent on a decisive 340-trade, 6.7-year sample: profit_factor 0.782 (<1 — gross-negative before costs, commission only 19.56% of gross), avg_trade_return_pct 0.0343% (essentially zero, far under the 0.25% spot floor), expectancy -$93.5/trade, total_return -31.79%, Sharpe -0.0012 with CI [-0.733, 0.679] straddling zero. The code faithfully implements the hypothesis so this is a fair test, and the premise is not supported: the z-reversion/ATR exits collapse the intended multi-day swing hold to ~4h (~1 bar), so the ~2%-per-trade capture is never realized (QA's concern confirmed). The book loses in both the calm (-35.7%) and normal (-32.4%) vol regimes and in every year 2022-2026, with profit confined to the stressed tercile — the opposite of a robust accumulation edge. A gross-negative PF-0.78 signal cannot be optimized above costs by 3 parameters; 2 hours of walk-forward would only curve-fit the two profitable early bull years. abandon_class=negative_expectancy.
Implementation
Long-only LINKUSDT spot (BINANCE_SPOT, 4-HOUR) swing mean-reversion. Every bar it computes the z-score of log(close) over a 60-bar (~10-day) lookback and returns it raw. It buys when that z-score is <= -2.0 (a multi-day capitulation flush) AND a point-in-time LINKUSDT perp funding-reset gate is on: the funding trough over the last 9 prints (~3 days) sits at or below the 25th percentile of the last 90 prints (~30 days) and the most recent print is above that trough (leveraged longs already flushed, funding resetting upward). Position size is an equity fraction (25% base) scaled by flush depth |z|/z_enter up to 2x and capped at 50% of equity. Exits on reversion (z >= -0.5), a volatility stop 3 ATRs below the flush bar's low, or a 42-bar (~7-day) time stop. No shorting, no leverage - CASH spot account.
Verification Results
On the full backtest, inspect exit-reason attribution (reversion vs vol stop vs time stop). If reversion/stop dominate at ~1 bar, consider a wider z_exit or a minimum-hold guard so the strategy actually holds the intended multi-day bounce.
Verification Results
Hypothesis specifies a multi-day hold to capture a 3-8% reversion swing, but the sandbox shows an average holding period of ~4h (~1 bar). The coded exits (reversion z>=z_exit, vol stop, 42-bar time stop) all match the hypothesis structurally, so this is not a code defect, but the fast reversion/stop firing may prevent the intended multi-day swing capture. Advisory for the analyst to confirm on full history.
Verification Results
Confirm the base template calls the subclass min_bars_required for warmup; if not, rename or align with the base contract.
Verification Results
min_bars_required(self) overrides a framework method (Layer-1 base_shadow warning). It returns a sensible warmup (max(z_lookback, atr_period)+2 = 62), so behavior is reasonable, but verify the base engine honors this override for warmup gating rather than its own implementation.
Verification Results
Sandbox smoke test is gross-flat-to-negative: avg_trade_return_pct -0.010% (below the 0.25% spot floor), profit_factor 0.745, total_return -35.6%, Sharpe -0.038 with CI straddling zero over 351 trades. Two mechanism doubts for the analyst to check on full history: (1) realized avg_holding_period is ~4h (~1 bar) despite the hypothesis's 'hold the reversion bounce for several days' intent — the z>=-0.5 reversion exit and/or the 3-ATR vol stop appear to fire well before the multi-day swing the edge is supposed to capture, so the per-trade capture (~2% target) may not be realized; (2) commission is only ~20.6% of gross, so the shortfall is a gross-signal problem, not fee drag. Code is a faithful implementation, so this is an edge question for the full backtest/optimizer, not a block.
Backtest Review
Reliable sample: 340 trades over 6.7 years (2019-2026), metrics_reliable=true, 340/340 signaled entries submitted (no drops) — a fair, decisive test of the mechanism.
Backtest Review
Code faithfully implements the hypothesis (z-score oversold + point-in-time funding-reset gate, long-only spot), so this is a genuine edge test, not an implementation bug.
Backtest Review
Negative expectancy on a decisive sample: profit_factor 0.782 (<1, gross-negative BEFORE costs), avg_trade_return_pct 0.0343% (far below the 0.25% spot floor and essentially zero), expectancy -$93.5/trade, total_return -31.79%, Sharpe -0.0012 with CI [-0.733, 0.679] straddling zero.
Backtest Review
Commission is only 19.56% of gross PnL, so the shortfall is a gross-signal problem, NOT fee drag — no threshold tuning can lift a PF-0.78 signal above zero (L55: single-name mean-reversion with PF<1.15 has never been rescued by re-tuning entry/exit).
Backtest Review
Mechanism mismatch confirmed on full history: avg_holding_period ~4h (~1 bar) vs the hypothesis's 'hold the reversion bounce for several days' — the z>=-0.5 exit and 3-ATR stop fire before the multi-day swing the edge depends on, so the ~2% target capture is never realized. QA's edge concern is borne out.
Backtest Review
Loses in calm (-35.7%) and normal (-32.4%) vol regimes; only positive in the stressed tercile (+28.6%) — the inverse of a robust accumulation edge, and it lost every calendar year 2022-2026.
Backtest Review
47.7% max drawdown over a 1578-day underwater duration; single-name OHLCV mean-reversion clone family (L93) with base metrics well below any survivor tier.
Outcome Summary
LinkSpotCapitulationResetSwingAccumu-28584e5332
Outcome Summary
Abandoned at the pre-optimization backtest-review gate as negative-expectancy, without reaching optimization, analysis, or risk review.
Outcome Summary
Exit rules must match the holding horizon the edge depends on, and a gross-negative PF-0.78 signal cannot be rescued by parameter tuning.
Outcome Summary
The backtest-review analyst issued an 'abandon' verdict for negative expectancy on a fair, faithfully-coded test; the intended multi-day hold collapsed to ~4h because the z-exit and 3-ATR stop fired before the swing developed.
Outcome Summary
A long-only spot swing strategy on LINKUSDT.BINANCE_SPOT that accumulated after a multi-day capitulation flush (z-score oversold) gated by a perp funding reset, aiming to hold the mean-reversion bounce for several days.
Outcome Summary
Over a decisive 340-trade, 6.7-year sample it returned -31.79% with a Sharpe of -0.0012, profit factor 0.782, avg_trade_return_pct 0.0343%, and a 47.7% max drawdown; commission was only 19.56% of gross PnL, so the shortfall was a gross-signal problem, not fee drag.
Backtest and paper results are hypothetical. Trading involves risk of loss.