Skip to content
All strategies

Strategies

ATOM Hyperliquid–Bybit Persistent Funding Carry with Adverse-Basis Veto

Outcome: Abandoned

AtomPersistentCrossVenueFundingCarry

Outcome Summary

AtomPersistentCrossVenueFundingCarry tested whether a lasting funding-rate gap between Hyperliquid and Bybit ATOM perpetuals could be earned with a dollar-neutral long/short pair, using a basis veto to block bad entries. The code indexed settled funding events with prefix sums and bisect lookups. Even so, after 3 iterations the strategy still failed Layer 3 sandbox verification by going over the 300s time limit on a 2,400-day 4-hour window. It was abandoned with no backtest metrics, so the funding-carry hypothesis was never measured.

Hypothesis

Test equal-dollar opposing ATOM perpetual positions on synchronized 4-hour bars, earning a persistent funding differential rather than predicting directional returns or small price-spread convergence. Primary: ATOMUSD.HYPERLIQUID; hedge: ATOMUSDT.BYBIT. Local parquet filenames indicate overlapping bar coverage from 2024-02-12 through 2026-10-01; row-level continuity and instrument-specific funding coverage must be audited before development. HyperliquidCollector and BybitCollector support the required perpetual bars and funding histories. Funding cadence must follow actual settlement timestamps, including interval changes. Official mechanism references: [Hyperliquid funding](https://hyperliquid.gitbook.io/hyperliquid-docs/trading/funding) and [Bybit funding history](https://bybit-exchange.github.io/docs/v5/market/history-fund-rate). This is an unmeasured hypothesis, not an established arbitrage.

Hyperliquid is the largest venue shortfall, at 7.1% against a 20% target. This proposal also adds cross-venue scope and opposing positions to a predominantly single-venue, long-only corpus. Instrument concentration was not supplied, so ATOM's recent share cannot be verified. Unlike the failed DOGE price-dislocation trade, profits must come from sustained realized funding cash flows. Unlike the failed five-alt funding basket, this uses one verified bar pair, daily-normalized funding, a persistence requirement and an adverse-basis veto. The supplied library excerpts offer no applicable mechanism.

verification_loop: sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (2400 days of ATOMUSD.HYPERLIQUID-4-HOUR-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).

Implementation

Equal-dollar opposing ATOM perpetual positions on synchronized Hyperliquid and Bybit 4-hour bars, using actual settlement sums, persistent daily funding differentials and an adverse-basis veto. Missing funding disables entries and requests paired liquidation through the existing exit logic.

The minimal Layer-2 correction replaces the missing-funding exception with a false availability result, invalidates cached funding indexes and returns a neutral signal after resetting readiness and updating the bar timestamp. Available-data signal, sizing, synchronization and research parameters remain unchanged. The Tier-1 specification says funding cash flows are not credited by the backtest engine; if that limitation still applies, this implementation cannot establish the proposed carry economics. Pipeline verification was not run. The required outbox file could not be written because this workspace permits only reads; this JSON carries the exact task call_id.

Verification Results

sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (2400 days of ATOMUSD.HYPERLIQUID-4-HOUR-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).

Iteration History

Verification failed (Layer 1.5 — hypothesis/config consistency) [class=hypothesis_mismatch]: - optimization_plan fixes leverage at 1.0

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['leverage', 'risk_pct', 'warmup_bars', 'min_notional', 'cooldown_bars', 'max_hold_days', 'reversal_days', 'basis_stop_pct', 'min_daily_gap_pct', '_optimization_plan', 'exit_daily_gap_pct', 'max_concurrent_pairs', 'persistence_fraction', 'funding_lookback_days', 'max_adverse_basis_pct', 'max_leg_equity_fraction', 'basis_veto_lookback_bars', 'max_gross_equity_fraction', 'exit_funding_lookback_days', 'funding_lag_tolerance_seconds'] Check that……Show moreShow less

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['leverage', 'risk_pct', 'warmup_bars', 'min_notional', 'cooldown_bars', 'max_hold_days', 'reversal_days', 'basis_stop_pct', 'min_daily_gap_pct', '_optimization_plan', 'exit_daily_gap_pct', 'max_concurrent_pairs', 'persistence_fraction', 'funding_lookback_days', 'max_adverse_basis_pct', 'max_leg_equity_fraction', 'basis_veto_lookback_bars', 'max_gross_equity_fraction', 'exit_funding_lookback_days', 'funding_lag_tolerance_seconds'] Check that __init__ sets all attributes from self.parameters.get(). - missing_supplementary_data: strategy crashes when supplementary data is absent (ValueError: data_unavailable: missing instrument-specific funding settlements for ATOMUSD.HYPERLIQUID; keys absent: funding_rates, hl_funding_rates, funding_rates_by_instrument; bar timestamp: 1735693500000). Supplementary series are best-effort — in the real backtest, paper and live a referenced key can be missing or empty, and the strategy must go flat, not crash. Fix: read series through self.supp_as_of(key, default=None) / self.supp_window(key, n) (or self.parameters.get('supplementary_data', {}).get(key)), check for None / empty, and return a neutral signal (0.0) when the data is unavailable.

Outcome Summary

Multi-venue funding strategies must keep per-bar work O(log n) with precomputed, cached indexes (including coverage and lag checks) so they finish the ~20k-bar sandbox smoke test within 300s before the edge can be measured.

After 3 iterations it was abandoned in the verification loop: the Layer 3 sandbox backtest went over the 300s wall-clock limit on a ~20,000-bar (2,400-day) ATOMUSD.HYPERLIQUID 4-hour window (sandbox_timeout). Backtest review, analyst and risk review were never reached.

Hold equal-dollar opposing ATOM perpetual positions on Hyperliquid (ATOMUSD.HYPERLIQUID) and Bybit (ATOMUSDT.BYBIT) on 4-hour bars to earn a persistent cross-venue funding differential, with a veto when the basis moves against the position.

No performance metrics exist: the backtest report is empty and optimization did not run, so there are no return, Sharpe or trade-count figures.

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