Strategies
Daily Cross-Sectional Volume Attention Reversal: Long Lowest-Volume-Z + Short Highest-Volume-Z Across 6 Major Binance Perps
Outcome: Abandoned
BinanceDailyCrossSectionalVolumeAttentionReversalLS
Outcome Summary
This was the fifth strategy in a cross-sectional mean-reversion series on the 6-major Binance basket, betting that low-volume 'neglected' assets outperform high-volume 'FOMO' assets on a 24h re-rank. The code faithfully implemented the hypothesis — 3,205 balanced dollar-neutral trades — but the mechanism proved to be a dead premise, losing money in every year 2020–2026 with Sharpe -1.71, profit factor 0.70, and a -92.7% total return. The reviewer abandoned it before optimization since the anti-edge was consistent rather than noisy, while noting that the symmetric negativity hints the opposite sign (attention momentum) could hold and would be worth testing as the next axis.
Hypothesis
Iteration 3 fixes the Layer-2 synthetic failure: `_zscore_from` (and its sibling `_symbol_of`/`_quantize_qty` helpers) were `@staticmethod`s. The Layer-2 _StrategyProxy rebinds class functions as bound instance methods, which strips the staticmethod descriptor, so `self._zscore_from(base, current)` was passing `self` as a third positional arg into a 2-arg function -> TypeError on every scenario. Converting these three helpers to plain instance methods (adding `self`, dropping `@staticmethod`) makes the bound-call arity correct in both the proxy and real backtest paths. All call sites already used `self.`, so no call-site changes were needed and the previously-passing signal/rebalance/sizing logic is unchanged.
Volume-attention-reversal premise is empirically inverted on the 6-major Binance perp basket: the strategy loses money in EVERY calendar year 2020-2026 (Sharpe -1.71, CI entirely below 0, PF 0.70, -92.7% total return, negative per-trade expectancy). The code correctly implements the hypothesis (balanced 1,572 long / 1,633 short dollar-neutral), so this is not a fixable code or parameter issue — it is a dead premise with consistent anti-edge across all regimes, which no best-of-225 optimization can rescue. NOTE FOR RESEARCH LEAD: the monotone, near-symmetric negativity (not noise) suggests the OPPOSITE effect may hold on crypto majors — attention MOMENTUM (long highest-volume-z, short lowest-volume-z) rather than reversal. If the cross-sectional series is to add a sixth axis, test the inverted-sign variant rather than re-tuning this one; abandoning here loses no validated edge.
Implementation
Dollar-neutral cross-sectional volume-attention reversal on 6 major Binance USD-M perps (BTC, ETH, SOL, BNB, AVAX, LINK), daily bars, pure OHLCV. Each day computes each asset's volume z-score vs its prior 30-day baseline, ranks all 6, goes long the 2 lowest-z (neglected) and short the 2 highest-z (FOMO/panic attention-spiked), equal-weight, ~48% gross / ~0% net, holds 24h, re-ranks.
Verification Results
Backtest Review
- Sharpe
- -1.71
- Total return
- -92.72%
- Max drawdown
- 92.72%
- Trades
- 3205
- Win rate
- 47.5%
- Profit factor
- 0.70
Code functions correctly: 3,205 trades, balanced 1,572 long / 1,633 short, dollar-neutral as designed
Trades match the stated mechanism (long lowest-volume-z, short highest-volume-z) — this is not a bug
Consistent anti-edge: Sharpe -1.71 with CI [-2.32, -1.12] entirely below zero
Loses money in EVERY calendar year 2020-2026 (-17% to -68%); no regime works
profit_factor 0.70, negative expectancy (-$29.70/trade), -92.7% total return, 92.7% max drawdown
avg_trade_return is negative — edge is below trading costs and inverted, not marginal
Uniform negativity across all years means optimization has no positive parameter region to tune toward
all 7 years negative
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL, Bars processed: 2330 Diagnostics: should_enter() returned a side 0 times over 0 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Outcome Summary
The volume-attention-reversal premise is empirically inverted on crypto majors — the monotone, near-symmetric losses suggest attention MOMENTUM (long highest-volume-z, short lowest-volume-z) may be the real edge, so a future axis should test the inverted-sign variant rather than re-tune this one.
The backtest reviewer issued an 'abandon' verdict at the pre-optimization gate: the strategy failed every criterion (Sharpe, profit factor, avg trade return, all-years-positive) with uniform negativity across all regimes, so no parameter region existed to optimize toward and it never reached optimization or analyst review.
A dollar-neutral, cross-sectional daily mean-reversion strategy on 6 major Binance USD-M perps (BTC, ETH, SOL, BNB, AVAX, LINK) that ranked assets by 30-day volume z-score and went long the 2 lowest-volume-z (neglected) names while shorting the 2 highest-volume-z (attention-spiked) names, capturing the attention anomaly.
The code worked as designed — 3,205 trades, balanced 1,572 long / 1,633 short and dollar-neutral — but the edge was a consistent anti-edge: Sharpe -1.71 (CI [-2.32, -1.12] entirely below zero), profit factor 0.70, negative expectancy of -$29.70/trade, -92.7% total return and 92.7% max drawdown, losing money in every calendar year from 2020 to 2026.
Backtest and paper results are hypothetical. Trading involves risk of loss.