Skip to content

View original

HlMajorsCrossSectionalMomentumRotationLS

Hypotheses

Hyperliquid Majors Cross-Sectional Momentum Rotation Long/Short (Daily Rank, Weekly Rebalance, Dollar-Neutral Basket)

Hypotheses

A market-neutral (dollar-neutral) CROSS-SECTIONAL MOMENTUM rotation across a fixed basket of the most liquid, longest-listed Hyperliquid perpetuals (target universe: BTC, ETH, SOL, BNB, AVAX, LINK, ARB, DOGE, LTC, APT on HYPERLIQUID; any symbol lacking full daily history over the test window is excluded at runtime, not substituted). Mechanism: this is a relative-strength rotation, NOT a single-asset trend or a VWAP/threshold mean-reversion (explicitly disjoint from the abandoned VWAP-excursion-MR class and the premium-index/funding classes). At each weekly rebalance, rank every universe member by its trailing N-day total return; go LONG the top-k strongest and SHORT the bottom-k weakest, equal-weighted within each leg and sized so the long notional equals the short notional (delta/dollar-neutral). Hold for one week, then re-rank and re-form the book. Uses ONLY daily OHLCV bars — no funding, options, premium-index, or tick data, so it is immune to the Jan-2023 funding-catalog data gap and the options multi-leg tooling gap that sank recent hypotheses. Targets the three most under-represented portfolio buckets simultaneously: HYPERLIQUID venue (5.1% vs >=20% target), long_short direction (12.6% vs <=55% long-only cap), and multi-instrument scope (9.3%). Daily bars are chosen deliberately to maximize Hyperliquid's usable history (the ~5,000-candle per-interval cap yields full coverage at 1d, ~2.5 years given HL's launch, vs the ~7-month 1H / ~58-day 15m caps that data-blocked prior HL hypotheses).

Hypotheses

The reported failure was Layer 1 CONFIG only: instrument_id and bar_type came through as None, so the strategy itself was never evaluated. The fix is the config — BTCUSD.HYPERLIQUID as the primary leg on 1-DAY bars plus the other nine majors as extra_instruments/extra_bar_types. I verified in the catalog that all ten HYPERLIQUID 1-DAY series exist (BTCUSD, ETHUSD, SOLUSD, BNBUSD, AVAXUSD, LINKUSD, ARBUSD, DOGEUSD, LTCUSD, APTUSD), so no leg can abandon the run as data_unavailable, and _param_bounds now declares the ranges for the three searched parameters. leverage stays 1.0: gross is 60% of equity split evenly long/short, so no margin multiplier is used. The trading logic that already passed is untouched — calendar-anchored rotation grid derived from the bar's own timestamp, runtime exclusion of short-history members, equal-notional dollar-neutral construction, boundary-crossing turnover — apart from one small bounded-work fix that also keeps the code hash distinct: _closes now slices only the lookback+2 tail each member's ranking actually needs, so per-bar work stays constant across the ten legs instead of walking every member's whole growing buffer, and an early non-positive close can no longer shift the lookback index used for the ranking.

Hypotheses

L45 dollar-neutral cross-sectional momentum major-perp basket (0/84 survivors) on the HYPERLIQUID venue (~0/128) with no significant edge — not worth 2 hours of optimization. Over 358 trades: Sharpe 0.343 with bootstrap CI [-0.51, 1.15] straddling zero, PSR 0.738, profit_factor 1.13, and the entire +45% return is carried by 2024 (+53%, driven by Jan +34% and Dec) while 2023 (-4.8%), 2025 (+4.1%) and 2026 (-8.8%) are flat-to-negative and the stressed vol tercile is negative — with rolling Sharpe negative through most of 2025-2026, placing the 20% holdout in the losing regime. It is also capacity-constrained (impact_cost_pct 10.55% of gross, capacity_usd ~$8.98M), so the edge exists only at toy scale. The base Sharpe is the ceiling the ~225-trial deflation only lowers, so it will not clear the deflated-Sharpe gate. The book is cleanly built and genuinely market-neutral (benchmark_meaningful correctly false) — not a code defect — but the class prior (beta-neutral cross-sectional momentum basket) has no survivors and this instance is a one-year wonder indistinguishable from zero. Failure pattern: no_edge/capacity dollar-neutral cross-sectional momentum basket, edge concentrated in one year, recent regime negative (L45/L82).

Implementation

Dollar-neutral cross-sectional momentum rotation across ten liquid HYPERLIQUID perpetual majors (BTC, ETH, SOL, BNB, AVAX, LINK, ARB, DOGE, LTC, APT) on 1-DAY bars. On each calendar-anchored weekly grid day (epoch day index divisible by rebalance_days, each grid day acted on at most once, so the schedule is identical across restarts and replays) every member's trailing 30-day return is computed, members without enough history are dropped rather than substituted, and the strategy holds the top-k strongest LONG and the bottom-k weakest SHORT, equal-weighted within each leg with long notional equal to short notional at 60% gross exposure. Effective k shrinks to min(top_k, available // 2) so the book can never become one-sided. Legs turn over only when a name crosses the long/short boundary. Daily OHLCV only — no funding, premium-index, options or tick data.

Verification Results

Verification failed (Layer 1 — config): config.instrument_id and config.bar_type are REQUIRED (got instrument_id=None, bar_type=None). Set both to the hypothesis's instrument, e.g. instrument_id='BTCUSDT.BINANCE', bar_type='BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL'.

Verification Results

Optional: on each grid day, resize held legs toward the current per_leg_notional beyond a drift band. Not required — the low-churn tradeoff is legitimate.

Verification Results

A leg already held on the CORRECT side is never resized — only boundary-crossing legs trade. This is the intended low-churn behavior, but per-leg notional drifts from the exact dollar-neutral target as equity moves between rotations (a held leg keeps its old dollar size while new legs size off current equity). Small and self-correcting when a name crosses the boundary; a minor deviation from strict continuous dollar-neutrality, not a defect.

Backtest Review

Clean, genuinely dollar-neutral cross-sectional momentum construction (calendar-anchored, runtime history exclusion); adequate sample (358 trades), avg_trade_return_pct 1.43% clears the HL fee floor, modest 13.7% drawdown

Backtest Review

Fills the under-represented HL / market-neutral / multi-instrument buckets

Backtest Review

No significance: Sharpe 0.343 with bootstrap CI [-0.51, 1.15] straddling zero, PSR 0.738, profit_factor 1.13

Backtest Review

Edge concentrated in a single year: 2024 +53% (driven by Jan +34% and Dec) while 2023 -4.8%, 2025 +4.1%, 2026 -8.8%; rolling Sharpe negative through much of 2025-2026, so the holdout sits in the flat/negative regime

Backtest Review

Capacity-constrained: impact_cost_pct 10.55% of gross, capacity_usd only ~$8.98M — the edge is real only at toy scale

Backtest Review

L45 dollar-neutral cross-sectional momentum major-perp basket (0/84 survivors) on the HYPERLIQUID venue (~0/128) — the class prior is decisively negative; stressed vol tercile is negative (Sharpe -0.07)

Iteration History

Verification failed (Layer 4 — QA review) [class=code_defect]: - [edge_concern] Secondary to the blocking defect: the sandbox is positive (+56%, Sharpe 0.34, alpha 0.049, 356 trades, avg_trade_return_pct +1.64%) and genuinely market-neutral (beta 0.012), encouraging for the mechanism — but the specific rotation dates that produced it are an artifact of the uptime-anchored rebalance schedule, so it must be re-judged after the schedule is calendar-anchored. Sharpe CI still dips below zero (-0.35..0.94). - The weekly rebalance is driven by a PROCESS-RELATIVE BAR COUNTER, not the bar's calendar timestamp — the item-18 anti-pattern. _maybe_rebalance does `self._bars_since_rebalance += 1` and rebalances at self._rebalance_days, resetting to 0, with the counter init to rebalance_days in __init__. No -(10**9) sentinel, but functionally identical to the DeFi-vs-L1 rotation failed earlier this session: (1) init to rebalance_days, it fires a full rebalance on the first eligible bar after every restart; (2) the weekly grid is anchored to when processing began, not the calendar, so rotation dates drift off any fixed grid and replay/parity can never reproduce them. In live a crash-restart loop churns the whole 10-leg book. For a strategy whose only edge is WHEN it rotates, disqualifying.
Strategy report

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