Skip to content

View original

BtcSpotPerpFundingCarryNeutralBinance8H

Hypotheses

BTC Spot-Perp Funding Carry Market-Neutral (BINANCE_SPOT Long + BINANCE Perp Short, Funding-Rate-Threshold Trigger, Cross-Venue Hedged)

Hypotheses

Market-neutral spot-perp funding carry on BTC: simultaneously long BTCUSDT.BINANCE_SPOT and short BTCUSDT.BINANCE USD-M perp in equal notional when 8-hour funding rate exceeds a positive threshold. The strategy collects funding payments from perp shorts (paid by longs every 8 hours) while delta-neutral. This deliberately violates ZERO portfolio quotas and SIMULTANEOUSLY fills THREE severely under-represented buckets: (a) cross_venue (3.1% → contributes to ≥15% target), (b) market-neutral direction (8.9% long_short → contributes to reducing 91.1% long-only), (c) BINANCE_SPOT (9.6% → contributes to ≥15% target). Mechanism class is COMPLETELY DISTINCT from the entire batch of failed breakout/pullback/structure-pattern strategies — funding-rate carry is mechanically driven by a real cash flow (perp longs paying shorts) rather than directional price prediction. The analyst has NOT refuted this class because it's barely been tried (DERIBIT 0.2%, cross_venue 3.1%, market-neutral 8.9% — all near zero). This avoids the BTC 4H over-arbitrage failure pattern entirely because the edge is NOT directional price prediction on BTC; the edge is structural premium in the perp curve.

Hypotheses

Implements the cross-venue, market-neutral, funding-carry hypothesis. Iteration-2 feedback fixes: (1) Risk gap — added max_hold_days=30 (caps the ~195-day holds) and basis_stop_pct=0.012 that flattens both legs on a spot-perp basis blowout (>1.2%), the two code-level safeguards the optimizer cannot add. should_exit now triggers on basis dislocation, max-hold, OR funding normalization, and _submit_exit flattens perp + spot together. (2) Raised funding_entry from 0.00005 to 0.0002 (4x) so the strategy only carries when funding materially compensates for basis risk, while staying below the 0.0005 sibling to remain the distinct, denser-trading variant. (3) Accounting: both legs are always opened and closed together (equal dollar notional), and the new basis/max-hold stops force closure so positions cannot end the window open with large unrealized MTM — addressing the end_unrealized reconciliation concern. Edge unchanged (funding cash flow), only risk bounding added per instruction not to optimize.

Hypotheses

Negative-expectancy funding carry with edge below fee costs (fee_edge). With funding already credited by the engine, avg_trade_return_pct is -0.0124% (negative, below the 0.15% floor), total_return -1.81, Sharpe -0.117 (CI straddles zero). Only 24 entries in 6.6 years and outlier-driven (skew -7.8, kurtosis 137). The collected BTC funding does not cover the two-leg round-trip fees + impact + spot-perp basis tracking error, so each hedged episode is a net loss. Raising the entry threshold only thins the sample further and cannot flip a negative per-trade edge positive. Mechanism is correctly implemented (not a bug) but the carry edge is absent net of costs — not worth 2 hours of optimization.

Implementation

Market-neutral BTC spot-perp funding carry: short BTCUSDT.BINANCE USD-M perp (receive funding) hedged by an equal-notional long of BTCUSDT.BINANCE_SPOT when 8h funding exceeds a positive threshold. PnL source is the mechanical 8h funding cash flow while delta-neutral. New in iteration 2: a max-hold cap forces turnover instead of riding a book for months, and a spot-perp basis-dislocation stop flattens BOTH legs when the hedge decouples — bounding the open-ended basis-blowout exposure that drove the prior interim drawdowns.

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

None.

Verification Results

Static analyzer flags divisions by atr / stop_dist / price. All three are guarded upstream: _atr returns >0 only, _manage_asset returns early on atr<=0, stop_dist<=0, price<=0, and equity<=0. False positives — no fix needed.

Verification Results

Analyst to check return correlation vs the promoted LS trend basket during backtest review.

Verification Results

Novelty/crowding is a research/analyst concern, not a correctness defect: the hypothesis positions this inside the validated LS-trend-basket envelope while differentiating from MA-momentum and the single-asset SOL Donchian. That claim is reasonable but should be validated by the analyst against portfolio correlation, not blocked here.

Backtest Review

Clean market-neutral implementation: both legs hedged, funding credited by the engine, no code/data bug (24 signals -> 24 entries submitted, 0 dropped)

Backtest Review

Same-asset BTC spot-perp basis is legitimate (no stale-leg/cross-venue artifact); capacity healthy ($243M)

Backtest Review

avg_trade_return_pct = -0.0124% — NEGATIVE and below the 0.15% Binance USD-M fee floor; each carry episode is a net loser after two-leg fees + impact + basis tracking error

Backtest Review

total_return -1.81, Sharpe -0.117 (CI straddles zero), Sortino -0.052 — no risk-adjusted edge with funding already credited

Backtest Review

Only 24 entries over 6.6 years — too thin to optimize; result is outlier-driven (skew -7.8, kurtosis 137)

Backtest Review

Classic funding-carry fee_edge/no_edge signature (L22/L73): collected funding does not cover the hedge's round-trip costs and basis divergence
Strategy report

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