BtcDailyVolumeSurgeClimaxReversalLS
Hypotheses
BTC Single-Asset Volume Surge Climax Reversal Long-Short on BINANCE Daily (Volume-Confirmed Exhaustion, Wyckoff/Dalton Distribution-Accumulation, Event-Driven)
Hypotheses
Single-asset volume-surge climax reversal strategy on BTCUSDT.BINANCE — uses VOLUME (the under-utilized channel in my event-driven BTC stack of 5 price-only patterns) to confirm exhaustion at extremes. Mechanism: (1) detect 'volume surge' when current bar volume > volume_surge_multiplier × 20-day average volume (default 3.0×). (2) BULLISH CLIMAX REVERSAL: volume surge AND bar.low <= lookback_low (at 20-bar low) AND close_position > 0.5 (close in upper half of bar range) — indicates SELLING CAPITULATION with smart-money accumulation absorbing the panic flow. LONG signal. (3) BEARISH CLIMAX REVERSAL: volume surge AND bar.high >= lookback_high (at 20-bar high) AND close_position < 0.5 (close in lower half) — indicates BUYING EXHAUSTION with smart-money distribution against the FOMO flow. SHORT signal. (4) FLAT otherwise. This implements the foundational Wyckoff 1931 'Trading and Investments in Securities' accumulation/distribution theory plus Dalton 2003 'Mind Over Markets' volume-at-extremes framework — both classical methodologies where VOLUME CONFIRMATION is the key differentiator between false breakouts and genuine reversals. Distinct from my in-pipeline event-driven BTC reversal stack which all use PRICE-only features: Climax Reversal (range magnitude + close position), Engulfing (2-bar body takeover), Key Reversal (3-bar sequence), Pin Bar (wick-to-body ratio). Volume Surge uses the VOLUME signal that price-only patterns ignore. The mechanism is FUNDAMENTALLY EVENT-DRIVEN AND TRANSLATION-ROBUST: volume surge criterion (current_vol / avg_vol > X) is scale-invariant, works at 4H, 8H, 12H, 1D equivalently. Single-asset scope = no multi-asset translation curse. Helps direction quota (90.2% long-only).
Hypotheses
Iteration-3 fix targets ONLY the reported failure: the prior backtest ran the WRONG config (BTCUSD.HYPERLIQUID-1-MINUTE over 5 days with empty parameters {}) rather than the intended BTCUSDT.BINANCE daily bars over full history. The code already passed Layers 1-3 and the backtest-review densification, so it is left byte-identical. The config is corrected to instrument_id='BTCUSDT.BINANCE', bar_type='BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL', and the densified default parameters are now written EXPLICITLY into config.parameters (volume_surge_multiplier=2.0, close_pos_thresh=0.45, extreme_tol=0.02, etc.) so they are actually passed to the run instead of arriving empty and silently falling back to in-code defaults. This yields a multi-year daily BINANCE run with non-empty walk-forward/holdout windows and a spread-out ~60-100 trade count, allowing a real edge judgment (per the analyst's pre-committed caution: PF>1.2 with a non-zero-straddling edge, else abandon). BINANCE futures venue is retained because the mechanism is long+short (the short leg requires the MARGIN account); leverage stays 1.0 and is used only as the notional cap in sizing, so there is no leverage_set_but_unused issue.
Hypotheses
The densified re-run fails the pre-registered abandon condition the developer/analyst set for exactly this fade-at-extremes family: it required PF>1.2 with a non-zero-straddling CI or 'abandon, not a further iterate,' and the result is profit_factor 0.66 (net losing) with Sharpe -0.834 and a CI [-2.34, 0.88] that straddles zero and sits mostly negative. Over an adequate 48-trade sample the mechanism is a clear loser: total_return -14.2, expectancy -273, omega 0.70, tail_ratio 0.27, return_skew -3.14. This is a known dead premise, not a fixable flaw: the sibling BtcPostVolSpikeRecovery already failed fading BTC volume spikes (PF 0.96) because BTC volume surges precede CONTINUATION, not reversal — and this variant is worse (PF 0.66), with the short leg winning only 16.7% and the long leg catching the 2020-03 COVID crash for an -8,079 single loss (the very continuation failure the mechanism is meant to avoid). Plumbing is clean, so there is no code bug to iterate on and the three trigger thresholds a sweep would tune have already been loosened; optimizing would curve-fit the few 2021/2024/2025 winners and fail deflation. Volume-confirmed climax reversal does not produce edge on BTC daily — abandon.
Implementation
Single-asset BTCUSDT.BINANCE daily-bar volume-surge climax reversal, long AND short. Enters LONG on a selling capitulation (volume >= 2x the trailing 20-bar average AND bar low within 2% of the 20-bar low AND close in the upper 55% of the bar range) and SHORT on a buying-exhaustion/distribution mirror at the 20-bar high. Exits on a 5% stop, 10% take-profit, or a 10-bar time stop. Risk-based sizing (1% equity to stop), capped at 1x equity notional, leverage 1.0. OHLCV-only; volume confirmation is the edge differentiator vs the price-only reversal stack.
Backtest Review
Clean implementation and adequate sample: 48 trades (30 long / 18 short) over 6.4 years, zero plumbing drops, correct long-short climax logic; the iteration-2 densification achieved its trade-count goal.
Backtest Review
Volume channel is a genuinely under-used signal in the portfolio — the idea was worth one fair test.
Backtest Review
Fails the pre-registered abandon gate outright: the iteration-2 note required PF>1.2 and a non-zero-straddling CI or abandon — actual profit_factor is 0.66 (net losing) with Sharpe -0.834 and CI [-2.34, 0.88] straddling 0.
Backtest Review
Net loser across the sample: total_return -14.2, expectancy -273, omega 0.70, tail_ratio 0.27, return_skew -3.14, CAGR -2.22.
Backtest Review
Short leg is structurally broken (16.7% win rate) and the long leg caught the 2020-03 COVID knife (largest_loss -8,079) — the exact continuation-not-reversal failure the mechanism must avoid.
Backtest Review
Confirms a known failure pattern: the sibling BtcPostVolSpikeRecovery failed at PF 0.96 fading BTC volume spikes; this densified variant is worse (PF 0.66), so it's a dead mechanism, not a tuning problem.
Analysis
The backtest was run on the WRONG instrument and timeframe: config shows BTCUSD.HYPERLIQUID-1-MINUTE-LAST-EXTERNAL over 5 days with empty parameters {}, but the hypothesis and strategy code target BTCUSDT.BINANCE on DAILY bars over full history. Re-run the backtest with the correct FactoryStrategyConfig: instrument_id='BTCUSDT.BINANCE', bar_type='BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL' (or the daily bar type your catalog uses), and the densified default parameters actually passed in (they came through empty). Verify the run covers multiple years of daily data so walk-forward/holdout windows are non-empty and metrics_reliable=true. Only after a valid daily BINANCE run producing a reasonable, spread-out trade count (~60-100 trades across years) can we judge whether the densified mechanism has a real edge. Per the pre-committed caution: on the corrected run this must show PF>1.2 with a non-zero-straddling edge, or it should be abandoned rather than iterated further.
Outcome Summary
BtcDailyVolumeSurgeClimaxReversalLS aimed to exploit the under-used volume channel, fading price extremes when a volume surge signaled climax exhaustion, and iteration 2 densified the gate to a fair 48-trade sample (30 long, 18 short) with clean plumbing. But the mechanism lost money across the distribution — PF 0.66, Sharpe -0.834, total return -14.2, expectancy -273 — with the short leg structurally broken at 16.7% win rate and the long leg caught by the 2020-03 COVID knife, exactly the continuation-not-reversal failure the design was meant to avoid. Because the developer had pre-registered a PF>1.2 / non-zero-CI bar as an abandon-or-nothing condition and the result missed it decisively, the analyst abandoned it at backtest review without optimizing. On iteration 3 overall, the verdict was that volume-confirmed climax reversal is a dead premise on BTC daily, mirroring its failed sibling, not a fixable code or tuning problem.
Outcome Summary
Fading BTC daily volume surges has no edge because such surges precede continuation, not reversal — the sibling BtcPostVolSpikeRecovery already failed at PF 0.96, this densified variant was worse at PF 0.66, and loosening the trigger thresholds only confirmed a dead premise rather than uncovering a tunable one.
Outcome Summary
It was abandoned at the pre-optimization backtest-review gate, failing the pre-registered abandon condition set for this fade-at-extremes family (PF>1.2 and a non-zero-straddling CI, or abandon rather than iterate): actual PF 0.66 with a CI straddling zero and mostly negative, so optimization was never run.
Outcome Summary
A single-asset BTCUSDT.BINANCE daily long-short strategy using volume to confirm exhaustion at extremes (Wyckoff/Dalton) — going long on a volume-surge selling capitulation at a 20-bar low with an upper-half close, and short on a volume-surge buying exhaustion at a 20-bar high with a lower-half close.
Outcome Summary
After iteration-2 densification (surge multiplier 3.0→2.0, close threshold 0.5→0.45, 'at extreme' widened to within 2%) lifted the sample from 8 to 48 trades (30 long / 18 short), the edge was clearly negative: profit factor 0.66, Sharpe -0.834 (CI -2.34 to 0.88), total return -14.2, expectancy -273, CAGR -2.22, 39.6% win rate — with the short leg winning only 16.7% and the long leg catching the March-2020 COVID crash for a -8,079 single loss.
Backtest and paper results are hypothetical. Trading involves risk of loss.