BestOfMajorsFundingCarryRotationNeutral8H
Hypotheses
Best-Of-Majors Cross-Venue Funding Carry Rotation, Market-Neutral (Dynamically Run ONE Delta-Neutral Long-Spot/Short-Perp Carry on Whichever of BTC/ETH/SOL Has the Richest Positive Funding, Concentrate Capital in the Highest Available Carry, Basis-Stopped, 3-Parameter)
Hypotheses
A MARKET-NEUTRAL, cross-venue funding-carry strategy that extends the factory's single highest-Sharpe deployed survivor (the BTC long-spot/short-perp funding carry, Sharpe 8.6) with a capital-concentration twist that no promoted basket uses: instead of statically carrying one name or holding a flat basket, it runs exactly ONE delta-neutral carry at a time on whichever of BTC, ETH, SOL currently offers the RICHEST positive 8h funding, rotating only when funding leadership changes. This is deliberately distinct from (a) the static single-name BTC/SOL carries, (b) the long-only negative-funding basket, and (c) the dead cross-sectional dollar-neutral funding FACTOR (L12 — that ran 2N fills per weekly rebalance across 8 names; this holds one 2-leg pair with infrequent switching). It fills the two thinnest portfolio dimensions — cross_venue (7.3% vs >=15%) and market-neutral — while staying squarely inside the proven carry family and avoiding every recent death mode: it is not a pure-price signal (which overfits/no-edges), not a pairs cointegration bet (SOL-AVAX just died -82%), not options (trade-count wall), not liquidations (data wall), and not a majors relative-strength re-weighting (L24). Only 3 parameters. Concentrating capital in the single best carry raises the realized daily accrual versus a diluted equal-weight basket.
Hypotheses
Iteration 2 fixes the two Layer-4 QA findings with the smallest change that preserves all previously-passing layers. ROOT CAUSE of finding #1 (funding_events_available: 0, edge collapsed to a naked basis trade): the Layer-3 sandbox (pipeline_processor._handle_verifying, lines ~1611-1615) keeps a supplementary key ONLY if the strategy code literally contains its quoted name; the iteration-1 code ranked purely on basis and never referenced 'funding_rates', so that series was stripped and funding_series_for_instrument had nothing to credit on the held perp. The fix reads the funding feed in _funding_bps (referencing both 'funding_rates' and 'funding_rates_by_instrument'), which (a) keeps funding_rates in the sandbox supp so the engine credits the held BINANCE perp its funding via the venue fallback (funding_events > 0, real carry captured), and (b) directly answers 'the code never reads the funding feed' — the per-asset carry is now the funding rate itself (each perp's own funding in the full backtest, the true cross-section the hypothesis ranks on), with basis only as a fallback so ranking still works when a leg's funding is missing. Funding and basis are both small per-8h fractions of the same scale, so one bps threshold gates either. FIX for finding #2 (only 4 trades, not measurable): the entry gate is loosened (entry 1.5->0.5 bps, exit 0.3->0.0 bps so the book stays in a positive carry) and genuine leadership rotation is enabled via a small rotate_margin_bps hysteresis, so the strategy actively rotates among BTC/ETH/SOL as funding leadership flips instead of holding one name until the 90-day time cap — materially raising the trade count while staying low-churn and faithful to 'rotate when funding leadership changes'. Unchanged: imports stay clean (only stdlib bisect added), the multi-leg driver structure, the delta-neutral pair construction, spot-long-only safety, the alignment-barrier setup, and the 3-core-parameter surface. It remains squarely in the proven carry family and avoids the death modes named in the hypothesis (not the 2N-fills dollar-neutral factor, not pairs cointegration, not options, not liquidations, not a price signal — the carried perp is fully hedged).
Hypotheses
Fee-edge / no-edge death, decisive over 1,544 trades and 6.5 years: avg_trade_return_pct -0.003% (zero gross edge), profit_factor 0.937 (<1), Sharpe -0.035, total_return -23.9% with EVERY year negative. Funding is credited by the engine, so this is an honest result — the rotation's four-fill round-trip cost (perp+spot, entry+exit on each leadership change) consumes the thin per-8h carry. The decisive tell that carry is not being captured: 2021, the richest positive-funding year, was among the worst (-5.1%), and avg_position_pct is only 8.6% against a 0.45 per-leg allocation (book flat ~90% of the time, churning losses the rest). The static carry mechanism this extends (BTC, Sharpe 8.6) is already deployed; the rotation/concentration wrapper is the differentiator and it is exactly what destroys the edge via churn. Optimizing entry_basis_bps/exit_basis_bps/basis_stop_pct cannot manufacture carry capture absent even in extreme-funding regimes, and the fee-edge pattern has never been rescued by threshold retuning; a churn reduction large enough to matter just reproduces the existing BTC carry. Not worth 2 hours of optimization.
Implementation
Market-neutral cross-venue funding-carry ROTATION holding exactly one delta-neutral long-spot/short-perp carry at a time on whichever of BTC/ETH/SOL has the richest positive per-8h carry, concentrating all capital in the single best carry. The carry metric now READS the funding feed: each perp's own funding from supp['funding_rates_by_instrument'] in the full backtest, the primary perp's supp['funding_rates'] in the sandbox, falling back to smoothed perp basis when a leg's funding series is unavailable. Universe = three perp legs (.BINANCE) each hedged by its intra-Binance spot (.BINANCE_SPOT); all legs 8H so the base alignment barrier keeps prices contemporaneous. Enters the richest name's pair (SHORT perp + LONG spot) when its carry clears entry_basis_bps; holds with hysteresis, rotates to another name when it leads the carried name by rotate_margin_bps (leadership change), and flattens on carry decay to exit_basis_bps, a delta-neutral net-PnL basis-divergence stop (basis_stop_pct), or a time cap. All execution runs in the calculate_signal driver; single-instrument hooks are neutralised. Three core parameters.
Verification Results
Verification failed (Layer 4 — QA review):
- The strategy's entire stated edge is funding carry, but the funding cash flow is NOT captured — sandbox reports funding_events_available: 0. The code never reads the funding feed for its signal (it ranks purely on perp basis) AND relies entirely on the engine to auto-credit funding on the held perp leg. With zero funding events applied, the delta-neutral long-spot/short-perp book has ~zero price expectancy and only fees remain, collapsing it into exactly the naked basis trade (L1) the hypothesis claims not to be. Sandbox confirms no edge: total_return -0.12%, PF 0.947.
- Only 4 trades over 354 days, metrics_reliable: false. The 1.5bps smoothed-basis gate + single-name concentration + sticky rotation fires far too rarely to be measurable (L16). 4 samples cannot distinguish edge from noise.
Verification Results
No code change required; analyst should judge edge on full-backtest numbers, not the sandbox.
Verification Results
Sandbox ranking is confounded: only the primary perp (BTC) gets a real funding series in the Layer-3 sandbox, so BTC ranks on funding-bps while ETH/SOL fall back to basis-bps. Sandbox turnover (55) and the -6.9% return are therefore unrepresentative of the full backtest where all three rank on funding.
Verification Results
Confirm the per-instrument funding feed contains ETHUSDT.BINANCE and SOLUSDT.BINANCE in the full backtest.
Verification Results
Core-edge fidelity depends on funding_rates_by_instrument being populated for ETH and SOL perps in the full backtest; if absent, the cross-sectional funding ranking silently degrades to basis for the non-primary legs.
Verification Results
If full-backtest turnover stays ~40-55 and avg_trade_return_pct stays well below 0.15%, the spot-leg fee makes this uncompetitive at this churn — widen entry/rotate hysteresis to lengthen holds.
Verification Results
Two-legged round-trip cost ~0.30% (spot 0.20% + perp 0.10%). Loosened iteration-2 params drove sandbox turnover to 55 and avg_trade_return_pct to ~0.001%, so fees dominated carry. Not critical because the <0.15% rule targets price-capture strategies (not funding carry) and sandbox churn is inflated by the basis-ranking confound; full backtest with funding ranking may churn less.
Backtest Review
Mechanism family is sound and proven in a deployed sibling (static BTC long-spot/short-perp carry, Sharpe 8.6); funding is now credited by the engine so the carry is genuinely testable
Backtest Review
Well-constructed delta-neutral book (beta -0.002, benchmark_correlation -0.16) with no liquidation and modest 23.9% max drawdown
Backtest Review
Well-sampled (1,544 trades over 6.5 years), so the negative result is decisive rather than noise
Backtest Review
avg_trade_return_pct -0.003% (zero gross edge) and profit_factor 0.937 (<1) — the four-fill rotation cost exceeds the funding collected (fee-edge death)
Backtest Review
Every calendar year is negative, including 2021 (richest positive-funding bull) at -5.1% — the construction is not actually capturing carry even when funding was extreme
Backtest Review
avg_position_pct only 8.6% vs per_leg_pct 0.45 — capital sits flat ~90% of the time; the ~10% it holds churns to net losses
Backtest Review
Monotonic bleed to -23.9% total; rolling Sharpe deeply negative across the whole span
Backtest Review
The static carry it extends is already deployed, so the rotation wrapper adds churn cost without differentiated carry capture
Outcome Summary
This strategy extended the factory's highest-Sharpe deployed survivor — a static BTC long-spot/short-perp funding carry — with a twist: dynamically run one delta-neutral carry on whichever of BTC, ETH, or SOL had the richest positive funding, concentrating capital in the best carry and rotating on leadership changes. With funding correctly credited by the engine, the result was an honest but decisive no-edge failure over 1,544 trades: avg per-trade return of -0.003%, profit factor 0.937, and -23.9% total return with every year negative, including the extreme-funding 2021. The tell was that the delta-neutral book sat flat ~90% of the time and the ~10% it held churned to losses, because each leadership-change rotation paid a four-fill round-trip that swamped the thin carry. The analyst abandoned it at the backtest-review gate, concluding the rotation wrapper was exactly what destroyed the edge and that retuning thresholds could not rescue it; it never reached optimization, analysis, or risk review.
Outcome Summary
Adding a rotation/concentration wrapper to a proven static carry does not improve it — the churn of switching legs on leadership changes costs four fills each time and destroys the thin funding edge, so a churn reduction large enough to help would just reproduce the already-deployed static BTC carry.
Outcome Summary
The analyst abandoned it at the pre-optimization backtest-review gate as a fee-edge/no-edge death: with funding now correctly credited by the engine, the rotation's four-fill round-trip cost (perp + spot, entry + exit on each leadership change) consumed the thin per-8h carry, and the fact that even the extreme-funding 2021 year lost money showed carry was not being captured — so retuning the three thresholds could not manufacture it.
Outcome Summary
A market-neutral cross-venue funding-carry rotation that runs exactly one delta-neutral long-spot/short-perp carry at a time on whichever of BTC/ETH/SOL offers the richest positive 8h funding, concentrating capital in the single best carry and rotating only when funding leadership changes, with a basis stop and three parameters.
Outcome Summary
Over 6.5 years and 1,544 well-sampled trades it captured no edge: avg_trade_return_pct -0.003% (zero gross edge), profit factor 0.937, Sharpe -0.035, total return -23.9% with every calendar year negative — including 2021, the richest positive-funding year, at -5.1% — while the book was cleanly delta-neutral (beta -0.002) but sat flat ~90% of the time (avg_position_pct 8.6% vs a 0.45 per-leg allocation).
Backtest and paper results are hypothetical. Trading involves risk of loss.