Strategies
BTC Spot-Perp Funding Carry Market-Neutral (BINANCE_SPOT Long + BINANCE Perp Short, Funding-Rate-Threshold Trigger, Cross-Venue Hedged)
Outcome: Abandoned
BtcSpotPerpFundingCarryNeutralBinance8H
Clean market-neutral implementation: both legs hedged, funding credited by the engine, no code/data bug (24 signals -> 24 entries submitted, 0 dropped)
Hypothesis
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.
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.
None.
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.
Analyst to check return correlation vs the promoted LS trend basket during backtest review.
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
- Sharpe
- -0.12
- Total return
- -1.81%
- Max drawdown
- 1.81%
- Trades
- 48
- Win rate
- 52.1%
- Profit factor
- 1.19
Clean market-neutral implementation: both legs hedged, funding credited by the engine, no code/data bug (24 signals -> 24 entries submitted, 0 dropped)
Same-asset BTC spot-perp basis is legitimate (no stale-leg/cross-venue artifact); capacity healthy ($243M)
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
total_return -1.81, Sharpe -0.117 (CI straddles zero), Sortino -0.052 — no risk-adjusted edge with funding already credited
Only 24 entries over 6.6 years — too thin to optimize; result is outlier-driven (skew -7.8, kurtosis 137)
Classic funding-carry fee_edge/no_edge signature (L22/L73): collected funding does not cover the hedge's round-trip costs and basis divergence
Backtest and paper results are hypothetical. Trading involves risk of loss.