HyperliquidCrossSectionalShortHorizonReversalNeutralLS
Hypotheses
Hyperliquid Cross-Sectional Short-Horizon Reversal, Market-Neutral Basket (Long the 3-Day Biggest Losers, Short the 3-Day Biggest Winners, Inverse-Vol Weighted, Dollar-Neutral, 3-Day Rebalance)
Hypotheses
A LONG-SHORT, MARKET-NEUTRAL, MULTI-INSTRUMENT relative-value strategy on Hyperliquid perpetuals that harvests the well-documented SHORT-HORIZON cross-sectional REVERSAL anomaly in crypto (over 1-3 day windows the biggest relative losers rebound and the biggest relative winners give back, driven by overreaction to news/liquidation-driven overshoots that correct as liquidity replenishes). This is deliberately a NON-MOMENTUM, NON-FUNDING selection edge — the exact 'non-momentum-rank selection edge' L52 asks for — and it is the horizon-opposite of the one strategy that survived here (medium-term 4H/daily momentum confluence), so it is not a re-skin of that template. Every 3 days, rank a fixed universe of ~12 liquid HL perps by trailing 3-day return; go LONG the 3 biggest losers and SHORT the 3 biggest winners. Legs are INVERSE-VOL weighted (weight ~ 1/ATR%) and then scaled to EQUAL long/short notional (dollar-neutral) — this directly defuses the two ways cross-sectional baskets have died here: dollar-neutrality removes the market-beta/outlier-day return that inflated prior 'composite' Sharpes, and inverse-vol weighting stops a single volatile alt from dominating PnL. Fills three under-represented buckets at once: HYPERLIQUID venue (6.6% vs >=20% target), long_short direction (13.5% vs long_only 86.5%), and multi-instrument scope. Distinct from the pending HL funding-carry basket (different signal: price reversal, not funding). Uses 1-DAY bars over HL's full history (daily is not timeframe-limited on HL), so walk-forward OOS and the 15-day holdout are well populated, and the book always has names to trade (no no_trades risk). Small fixed parameter set (universe size, lookback=3d, names/sleeve=3, rebalance=3d) to resist overfitting.
Hypotheses
Clean restart: the previous abandonment was pipeline-caused (Layer-2 staticmethod mis-binding, QA performance verdicts on an unoptimized smoke test, sandbox slot starvation), so per the instructions I kept the hypothesis mechanism and all passing logic byte-for-byte — vol-adjusted cross-sectional ranking, entry_z outlier gate, inverse-vol weights, equal-count/equal-notional dollar neutrality (the L59 defense against neutral books reaching -100%), calendar-anchored rebalance, restart-safe side adoption, bounded deques with O(1) per-bar updates, and _param_bounds mirroring every clamp. The single edit is that calculate_signal now resets its reported z-score to 0.0 on a bar where the primary is not rankable, instead of re-emitting the last rankable bar's value; the old behaviour would report an unchanged (frozen-looking) signal for the length of any measurement gap. Trading behaviour is unaffected because entries and exits read self._targets, which is built only inside _rebalance from the measurable cross-section. The 12-name universe was re-checked against the catalog: all 12 HYPERLIQUID 1-DAY series exist, so no leg can abandon the run as data_unavailable.
Hypotheses
backtest_failed:data: the full backtest could not run 3 times — ktest_agent.py", line 424, in _ensure_funding_for_perp_legs
raise RuntimeError(
RuntimeError: Funding data unavailable for perp leg 'ETHUSD.HYPERLIQUID' — on-demand collection failed or the venue has no funding history (backtest blocked for accuracy; set SF_DISABLE_ONDEMAND_FUNDING=1 to bypass)
Pipeline/data failure, not a verdict on the strategy; revive once the cause is fixed.
Implementation
Dollar-neutral cross-sectional short-horizon reversal on 12 liquid Hyperliquid perps (1-DAY bars). Each rebalance the universe is ranked by trailing return divided by the name's own ATR% (displacement in its own sigmas); the strategy goes LONG the names that have overshot furthest down and SHORT those that have overshot furthest up, requiring an entry_z-sigma dislocation on both sides. Sleeves hold an equal number of names, are inverse-volatility weighted inside each sleeve, and are scaled to equal dollar notional so the book carries no net market beta; gross is scaled down when fewer names qualify. Rebalance timing is anchored to the bar's own calendar date, and held sides are adopted from the cache on a fresh process so restarts cost no round trip.
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Verification Results
No change required; optimizer sweeps lookback_days and rebalance_days over [1,4]. Confirm the promoted config's horizon stays within the '1-3 day' claim.
Verification Results
The hypothesis title/body repeatedly names a 3-day lookback and 3-day rebalance, but the code defaults lookback_days=1 and rebalance_days=1 (iteration-3 change). This is within the hypothesis's own stated '1-3 day' anomaly window and the param bounds [1,4] cover 3, and the STRUCTURE (rank/long-losers/short-winners/inverse-vol/dollar-neutral/calendar rebalance) is unchanged, so it is not a structural mismatch. Flagging only so the analyst knows the defaults sit at the fast edge of the stated window; the optimizer will sweep lookback_days/rebalance_days.
Verification Results
Sandbox (unoptimized smoke test) is deeply negative and repeats the signature of the two prior abandoned iterations: avg_trade_return_pct -0.155% (negative, below the ~0.09% HL round-trip floor), profit_factor 0.80, total_return -53.6%, expectancy -$25.7/trade over 2086 trades, and negative in the calm (-55.3%) and stressed (-28.6%) vol terciles. long_win_rate 0.477 vs short_win_rate 0.521 hints the long-losers sleeve is on the wrong side of continuation even at the 1-day horizon. This is the third horizon variant of the same mechanism to lose on the smoke test; the analyst should verify at the backtest that the 1-day vol-adjusted reversal actually produces per-trade moves clearing the ~0.09% HL round trip before spending optimization budget, since iterations at 2-6 day windows already failed and only the 1-day corner remains. Advisory only — not a correctness issue.
Analysis
Backtest gate:
- metrics unreliable: 2043 trades / 2207 data days is too little evidence (need >=5 trades over >=10 days) — increase signal frequency or widen the window
Iteration History
Verification failed (Layer 4 — QA review):
- Fee-viability failure (checklist #7): the mechanism produces a NEGATIVE per-trade return and cannot clear trading costs. The sandbox backtest reports avg_trade_return_pct = -0.165% over 521 trades (Sharpe -1.77, PF 0.87, total_return -14.8%) — per-trade return is below the ~0.09% HL round-trip cost, not above the 0.15% viability floor. The developer's own full-sample dry-run (2020-12 to 2026-08) confirms this is a no-edge story, not a fee-drag story: with fees set to ZERO the book is still only Sharpe 0.187 / -3.9% cumulative, so the raw cross-sectional reversal signal has essentially no predictive content on these 12 names at a 2-5 day horizon; after fees on ~7000 orders it degrades to -42.8% / 72% drawdown. The mirror book (long winners/short losers) is also negative (Sharpe -0.07), and no lookback (2/3/5d) or rebalance interval (3/5/7d) yields a positive PRE-fee Sharpe, so there is no configuration for the optimizer to reach a promotable number from a ~0.19 pre-fee ceiling. This is the pure-OHLCV cross-sectional-rank class that has never survived here (L6/L7/L16). Per my mandate to reject sub-fee edges at Layer 4 rather than let the optimization budget rediscover them, this fails.
- should_exit() returns True whenever leg.side == 0 (state lost on restart), forcing an exit-then-reenter cycle on the first bar after any restart. Harmless in backtest but adds a fee-churn round-trip per restart in live/paper, which is material given the strategy is already fee-fragile.
Iteration History
Verification failed (Layer 4 — QA review):
- Fee-viability / no-edge failure, now confirmed by a decisive second test (checklist #7, L6/L7). This is iteration 2 of the HL cross-sectional short-horizon reversal. Iteration 1 (rank on RAW trailing return) produced avg_trade_return_pct -0.165% and Sharpe -1.77; QA failed it as sub-fee/no-edge. The developer correctly diagnosed that raw-return ranking degenerates into a static short-vol-alt tilt and rebuilt the selection on VOL-ADJUSTED displacement (return/ATR%) plus an entry-z extremity gate and lower turnover — the strongest remaining version of the hypothesis. The result is WORSE: avg_trade_return_pct = -0.998% (per-trade return deeply negative, ~11x the ~0.09% HL round-trip cost in the wrong direction), Sharpe -2.45, total_return -18.0%, profit_factor 0.63, win_rate 0.45, over 151 trades. probabilistic_sharpe 0.0013 and sharpe_ci_high -0.85 (entire Sharpe CI below zero). The short-horizon cross-sectional reversal effect is absent on these 12 HL names at a 2-6 day horizon.
Iteration History
Verification failed (Layer 4 — QA review):
- Third consecutive decisive no-edge/fee-viability failure (checklist #7, L6/L7) — the horizon space of the hypothesis is now exhausted. Iteration 1 (raw return, 2-6d rank / 3-8d hold): avg_trade_return_pct -0.165%, Sharpe -1.77. Iteration 2 (vol-adjusted, gated, 2-6d): -0.998%, Sharpe -2.45. Iteration 3 (this one, vol-adjusted, gated, 1-day rank / 1-day hold — the last untested corner of the stated '1-3 day' window): total_return -7.45%, Sharpe -1.93 with the ENTIRE Sharpe CI below zero (sharpe_ci_high -0.376), profit_factor 0.90, over 522 trades. avg_trade_return_pct is +0.045% — positive but well below the 0.15% fee floor — and net per-trade expectancy is negative (avg_trade_pnl_usd -13.79), so the book still does not clear the ~0.09% HL round trip. The cross-sectional short-horizon reversal effect does not exist on these 12 HL names at any daily horizon; twice the data pointed at the mirror (continuation) sign. This is the 0/213 cross-sectional-OHLCV-rank survival class.
Backtest and paper results are hypothetical. Trading involves risk of loss.