Strategies
ETH Cross-Venue Positive-Funding Carry, Delta-Neutral (Long ETHUSDT.BINANCE_SPOT + Short Equal-Notional ETHUSDT.BINANCE Perp WHEN 8h Funding > +0.04% — Harvest the Perp-Short Funding Stream, Hold Days-to-Weeks Until Funding Normalizes, 2-Parameter, ASSET-DIVERSIFIES the Deployed BTC Carry Winner)
Outcome: Abandoned
EthCrossVenuePositiveFundingCarryDeltaNeutral
Code↔hypothesis misalignment found by the semantic auditor — the code does NOT implement the hypothesis. Re-code the strategy to implement the hypothesis EXACTLY (instrument, timeframe, direction, the named…
Hypothesis
Implementation
Delta-neutral ETH positive-funding carry across venues: SHORT ETHUSDT.BINANCE USD-M perp (to receive funding) against an equal-ETH-quantity LONG in ETHUSDT.BINANCE_SPOT (the price hedge), on 8-HOUR bars aligned to the funding cycle. The book arms when the 8h funding rate is at or above +0.01%/8h and is held days-to-weeks while the carry persists, disarming when funding normalizes below +0.003%/8h — but only after a 24-hour (three-cycle) minimum hold so accrued funding clears the ~0.30% four-fill round trip, and immediately if funding turns negative (the short leg would then be paying). Matched ETH quantities make net delta exactly zero at entry; an orphan guard flattens any leg left open alone within one bar. Two edge tunables (arm/disarm hysteresis band), leverage 1.0, funding read point-in-time via bisect on a precomputed sorted timestamp array.
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.
Sweep arm_threshold upward (>=0.0004 region); abandon as fee_edge only if no threshold produces positive net carry over full history. Structure is correct.
arm_threshold 0.0001 is well below the hypothesis's +0.04%/8h gate and the ~15bps/day accrual needed to clear the four-leg round-trip; as shipped the backtest is likely fee-negative.
Cross-check against the deployed BTC sibling; confirm gross exposure and hedge neutrality on full backtest.
Perp (MARGIN) and spot (CASH) legs sit on separate venue accounts but sizing reads a single equity; with exposure 208% and extreme tail PnL, verify two-account accounting and that neutrality holds through basis dislocations.
Backtest Review
- Sharpe
- -0.02
- Total return
- -0.92%
- Max drawdown
- 0.92%
- Trades
- 38
- Win rate
- 47.4%
- Profit factor
- 1.43
Correct delta-neutral construction (matched-ETH-quantity spot hedge, orphan guard, min-accrual hold); funding is credited by the engine so the result is economically real; clean 2-parameter design
avg_trade_return_pct 0.007% — ~20x below the 0.15% floor and below the strategy's own ~0.30% four-fill round-trip cost (L22 below-floor funding-carry signature, even thinner than the prior ETH carry)
Premise falsified: arm_threshold had to be dropped to the funding baseline (0.0001) to get any fills (0.0004/0.0002 never fired) — real ETH funding rarely reached the claimed +0.04%, so arming at baseline harvests ~0 net of fees
Suspected artifact: a delta-neutral book showing +20.19% on 2021-05-20 (skew -25.4, kurtosis 680); legs end on different dates (spot 2026-06-09 vs perp 2026-06-25) — cross-venue leg misalignment, not carry
Fired only 2020-2021 (annual_returns {2020,2021}); 2260/2279 signals dropped size-zero; 19 pairs in one early regime; end_unrealized_pct -26 (large un-exited open position); Sharpe CI straddles zero, PSR 0.49
Analysis
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: ETHUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 2182 Diagnostics: should_enter() returned a side 0 times over 1994 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Backtest and paper results are hypothetical. Trading involves risk of loss.