Skip to content

View original

BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily

Hypotheses

Daily Cross-Sectional Low-Volatility Anomaly: Long Bottom-2 Lowest-Vol + Short Top-2 Highest-Vol Across 6 Major Binance Perps

Hypotheses

A dollar-neutral, cross-sectional anomaly strategy on a fixed universe of 6 major Binance USD-M perpetuals (BTC, ETH, SOL, BNB, AVAX, LINK — all confirmed clean data) that captures the most-documented cross-sectional risk anomaly in finance: the LOW-VOLATILITY ANOMALY. Every 24 hours, the strategy ranks the 6 assets by their trailing 30-day realized volatility, goes LONG the 2 LOWEST-vol assets and SHORT the 2 HIGHEST-vol assets, equal-weighted within each leg, dollar-neutral. Hold 24 hours, then re-rank. The middle 2 assets are excluded. This is the third in a cross-sectional series (after CrossSectionalMeanReversion3Major using HL funding and DailyCrossSectional7DReturnReversal using Binance returns) — same major-basket universe, COMPLETELY DIFFERENT signal axis. Volatility ranking is structurally orthogonal to return ranking and funding ranking, so this strategy will take positions UNCORRELATED with the prior two cross-sectional strategies, providing genuine portfolio diversification rather than mechanism overlap. The Low-Vol Anomaly is documented in: Black (1972), Frazzini-Pedersen (2014) 'Betting Against Beta', Baker-Bradley-Wurgler (2011) 'Benchmarks as Limits to Arbitrage', and crypto-specific Liu-Tsyvinski-Wu (2022) 'Common Risk Factors in Cryptocurrency'. The mechanism: high-vol crypto assets attract speculative 'lottery-ticket' flow that systematically underperforms their realized volatility (retail FOMO + periodic liquidation cascades); low-vol assets attract institutional / long-horizon capital that provides structural bid support and steady risk-adjusted returns. Directly responds to the analyst's repeated recommendation: 'prioritize cross-sectional mechanisms for the current regime'. Fills FIVE under-represented buckets: long-short direction (14.0% → toward 45%), multi-instrument scope (7.2% → grow), cross-sectional class (the confirmed-winning mechanism), portfolio diversifier vs directional strategies, and BINANCE-USD-M-only (clean data). Position sizing: 12% of equity per leg × 2 + 12% × 2 = 48% gross exposure, dollar-neutral. Risk per trade: ~1% from daily vol-dispersion volatility.

Hypotheses

ITER-3 fixes the reported Layer-2 failure ('_vol_from_closes() takes 2 positional arguments but 3 were given') at its root: the Layer-2 _StrategyProxy re-binds every INSTANCE callable via types.MethodType and injects `self`, which corrupts a helper's argument count. Moving `_vol_from_closes` to a MODULE-LEVEL function makes it not an instance attribute, so the proxy never rebinds it and `self` is never injected — the call is identical under both the real engine and the proxy. This is the smallest possible change: only the helper's location and its two call sites (_compute_realized_vol, _latest_vol_and_price) changed; all signal logic, the multi-instrument event loop, and the rebalance ranking are byte-for-byte unchanged. Verified locally: Layer-1 static passes with no errors, and all 6 Layer-2 synthetic scenarios run through the real _StrategyProxy with no exception, producing 469/469 unique, finite, bar-to-bar-varying signals (no frozen-signal, no NaN/inf). The strategy implements the well-documented Low-Volatility / Betting-Against-Beta anomaly cross-sectionally, orthogonal to the prior return- and funding-ranked cross-sectional strategies for genuine portfolio diversification.

Hypotheses

No edge and not tunable, so optimization would be wasted. The crypto low-volatility anomaly implemented as long-low-vol/short-high-vol on 6 majors is effectively a short-beta/short-momentum bet: it profits only in bear regimes (2022 annual +128%) and loses catastrophically in bull regimes (2021 -80%, 2024 -78%), netting total_return -78.7%, max_drawdown 95.97%, profit_factor 0.577, and negative Sharpe/Sortino/expectancy/information-ratio over the full sample. The 3 tunable parameters (vol_lookback_days, rebalance_days, leg_capital_pct) change magnitude and cadence but cannot flip the negative sign of the factor, so no walk-forward sweep can rescue it — it would just curve-fit to the 2022 bear window and fail forward. The implausible late-sample daily swings (+94%, -65%, kurtosis 304) are the arithmetic of percentage returns on a 96%-decimated account, not a fixable sizing bug, so this is not a developer 'iterate' either. FAILURE PATTERN: a dollar-neutral crypto low-vol anomaly (long bottom-2 / short top-2 realized-vol majors) is a disguised short-high-vol/short-momentum bet whose sign is negative over an up-trending crypto cycle; regime-dependent bear-only profitability does not survive a full sample and is not reachable by parameter tuning.

Implementation

Dollar-neutral cross-sectional Low-Volatility Anomaly on 6 Binance USD-M perps (BTC, ETH, SOL, BNB, AVAX, LINK), daily bars. Every rebalance_days (default 1), ranks the 6 assets by trailing 30-day annualized realized vol, goes LONG the 2 lowest-vol and SHORT the 2 highest-vol (equal-weighted, middle 2 excluded). Each leg = 12% equity notional -> ~48% gross, ~0% net. Pure OHLCV, no supplementary data. Trades are routed by _rebalance() in on_bar/on_extra_bar; calculate_signal returns a continuous close-driven diagnostic value.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['min_notional', 'rebalance_days', 'leg_capital_pct', 'vol_lookback_days'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000) - steady_downtrend: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000) - flat_ranging: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000) - volatility_spike: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000) - zero_volume: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000) - price_gap: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() takes 2 positional arguments but 3 were given (bar timestamp: 1735693260000)

Backtest Review

Strategy is mechanically functional: 306 trades over 2082 days, dollar-neutral long-short executes, clean 6-major Binance universe, pure OHLCV (no supplementary-data fragility)

Backtest Review

Genuinely low benchmark correlation (-0.06, beta -0.09) confirms it is orthogonal to directional strategies as intended

Backtest Review

Catastrophic net performance: total_return -78.7%, max_drawdown 95.97%, profit_factor 0.577, negative Sharpe/Sortino (-0.12), negative expectancy (-299/trade), IR -0.34

Backtest Review

Structural sign problem: long-low-vol/short-high-vol on crypto majors is a short-beta/short-momentum bet — wins only in bear regimes (2022 +128%) and bleeds hard in bull regimes (2021 -80%, 2024 -78%); net negative over the full up-trending cycle

Backtest Review

Failure is not tunable: the 3 parameters (vol_lookback, rebalance_days, leg_capital_pct) cannot flip the anomaly's direction, so optimization would only curve-fit the 2022 bear window

Backtest Review

Extreme daily returns (+94%, -65%) and kurtosis 304 are artifacts of a ~zero account after 96% drawdown, not a recoverable edge

Analysis

Do NOT optimize yet — the book is not running dollar-neutral as the hypothesis specifies (48% gross, ~1% risk/trade). Evidence: exposure_pct=400% (8x the intended 48%), single-day returns reaching +94.3%/-65.3%/-61.6%, and return_kurtosis=304. (1) Verify that at every rebalance the four legs net to ~dollar-neutral and that gross stays near 48% — instrument the actual gross/net notional per bar and assert it. (2) The deferred side-flip logic ('flip completes on next rebalance', and the 'skip any currently short/long' guards) can leave an asset unhedged or a stale position open for extra bars — confirm undesired positions are actually exited AND filled before/at the same rebalance, and that _submit_exit_position fills are reflected before new legs size. (3) avg_holding_period 27d vs rebalance_days=1 implies positions are not rotating; check that exits execute each rebalance rather than only when an asset leaves the bottom-2/top-2 bucket. (4) The huge kurtosis/single-day swings suggest per-instrument qty precision or notional sizing may be mis-scaled for one leg (e.g., SOL/AVAX/LINK) — validate that each leg's notional ≈ leg_capital_pct*equity. Re-run and confirm net exposure ≈ 0 and no >~15% single-day swings before resubmitting. Note: if the book is confirmed neutral and it still loses heavily, the premise (shorting highest-vol crypto = shorting the highest-beta winners in bull regimes) is likely the real problem and should go to revise_hypothesis.

Outcome Summary

This was the third strategy in a cross-sectional series, applying the low-volatility / Betting-Against-Beta anomaly as a dollar-neutral long-2-lowest / short-2-highest-vol book over 6 Binance majors, intended to be uncorrelated with the prior return- and funding-ranked strategies. After three iterations resolving verification plumbing (notably a Layer-2 proxy issue fixed by making the vol helper module-level), it produced a working, genuinely market-neutral backtest — but one that lost 78.7% with a 95.97% drawdown because long-low-vol/short-high-vol is effectively a short-beta/short-momentum bet that only profits in bear regimes. The analyst abandoned it at backtest review, judging the failure structural rather than tunable: the three parameters change magnitude and cadence but cannot flip the factor's negative sign over an up-trending cycle, and the late-sample +94%/-65% swings were just percentage arithmetic on a decimated account. It never reached optimization, the post-optimization analyst decision, risk review, paper, or live.

Outcome Summary

A well-documented factor like the low-vol anomaly can still net negative when implemented long-low-vol/short-high-vol on a persistently up-trending crypto universe — regime-dependent bear-only profitability is not a tunable edge, since no parameter can reverse the factor's directional sign.

Outcome Summary

The backtest-review gate returned 'abandon' before any optimization: long-low-vol/short-high-vol on crypto majors is a disguised short-beta/short-momentum bet whose sign is negative over the full up-trending cycle, and its 3 parameters cannot flip that sign, so a walk-forward sweep would only curve-fit the 2022 bear window.

Outcome Summary

A dollar-neutral cross-sectional low-volatility anomaly (Betting-Against-Beta) on 6 major Binance USD-M perps (BTC, ETH, SOL, BNB, AVAX, LINK) that daily ranks assets by trailing 30-day realized vol, goes long the 2 lowest-vol and short the 2 highest-vol assets equal-weighted at ~48% gross exposure.

Outcome Summary

Over 306 trades across ~2,082 days it was mechanically functional and genuinely orthogonal to directional strategies (beta -0.09, benchmark correlation -0.06), but net performance was catastrophic: total return -78.7%, max drawdown 95.97%, profit factor 0.577, negative Sharpe/Sortino (-0.12), negative expectancy (-299/trade), and IR -0.34, with the edge appearing only in the 2022 bear regime (+128%) while bleeding in bull regimes (2021 -80%, 2024 -78%).
Strategy report

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