EthSpotPerpFundingCarryHedgedNeutral4H
Hypotheses
ETH Spot-Perp Funding Carry Hedged Market-Neutral (BINANCE_SPOT + BINANCE Futures, 4H, Funding-Driven)
Hypotheses
Delta-neutral funding carry on ETH: hold ETH spot long on BINANCE_SPOT while shorting ETHUSDT perp on BINANCE USD-M futures whenever the trailing funding rate is sufficiently positive. Collect the funding payments paid by perp longs to perp shorts every 8 hours. Unwind both legs when funding regime flips negative or compresses below an exit threshold. Fills cross-venue quota (currently 3.0% vs ≥15% target), long_short quota (9.6% vs ≤55% allowance for long_only), and BINANCE_SPOT quota (11.0% vs ≥15% target). Uses funding_rate stream that the portfolio currently underweights. Avoids the 30-MINUTE bar data-refill failures and the low-trade-count walk-forward pathology — funding regimes shift roughly weekly, producing ~50-100 full entry/exit cycles per year, comfortably above the 100-trade walk-forward floor over a 6-year backtest.
Hypotheses
Iteration 5 is a backtest-review adjustment, not a verification-layer fix, so I kept all passing structure (two-leg matched-quantity hedge, orphan guard, funding lookup) intact and changed only what the analyst asked for while explicitly NOT optimizing. (2) Capital deployment: raised capital_frac 0.15 -> 0.20 to push per-leg exposure to the 0.20 cap, lifting avg_position_pct toward 20% so a healthy per-cycle carry is no longer diluted to ~0. (2/4) Keep the carry on whenever funding is positive: lowered funding_entry 0.0004 -> 0.0001 (still a positive gate, not a full retune) and funding_exit 0.0001 -> 0.0 so the book is held for the entire positive-funding regime and only unwound when smoothed funding flips non-positive, preserving entry/exit hysteresis to avoid churn. This scales the carry numerator without increasing the per-cycle fee count, directly targeting the profit_factor 1.076 / fee-drag problem. (1) The funding-coverage gap (1269 vs ~8,700 events) is a data-collection concern outside strategy code — my loader already reads the correct flat `funding_rates` {ns: rate} series and forward-holds the last reading via searchsorted, so it uses whatever coverage is provided. (3) The Sharpe 6.2 and the realized-PnL-vs-equity gap are engine leg-mark-timing / fee artifacts on a neutral book, not a code bug; the base class already aligns the same-4H-timeframe extra leg before signalling, so no code change is warranted there. If, after these changes and restored coverage, the book still nets ~0 with a realistic Sharpe, the analyst's stated path is to abandon.
Hypotheses
Final attempt (2 of 2): promotable metrics rest on a sensitivity cliff over a net-negative base carry, and the binding failures are structural, not tunable. Funding IS credited and the book is genuinely delta-neutral, so this is NOT an uncreditable-funding rejection — the credited ETH spot-perp carry is simply too small to clear its own costs: base profit_factor 1.021 and total_return -6.60%, with commissions ($10.7k) exceeding gross profit (~$9.8k). The optimizer's high Sharpe (OOS 4.56 / holdout 6.04) is a funding_entry CLIFF artifact: sensitivity flagged funding_entry is_cliff=true (Sharpe jumps 1.46->5.42 on a 0.0001->0.00011 nudge) and best_params parked funding_entry=0.000132 on the high side of that cliff, so live funding that differs slightly drops the book back to the money-losing side. IS Sharpes ~8.5 are implausibly high for a delta-neutral ETH carry, deflated_sharpe is null (significance unconfirmable over 225 trials), capacity is only $2.15M with 21.6% impact drag (toy scale), and the carry blew up in the 2022 basis inversion (rolling Sharpe -26.9) with decaying recent returns. FAILURE PATTERN: a same-venue ETH spot-perp funding carry earns a real but marginal credited carry that ~0.30%/cycle round-trip fees plus 21.6% impact push net-negative (PF 1.02, -6.6% total return); a passing walk-forward/holdout/PBO does not rescue it because the only high-Sharpe region is the high side of a flagged funding_entry cliff and the edge survives only at ~$2M capacity.
Implementation
Delta-neutral ETH funding carry: long ETHUSDT on BINANCE_SPOT (primary, drives the funding signal) hedged with a matched-ETH-quantity short of the ETHUSDT.BINANCE USD-M perp (extra leg). Enters the hedged book when the smoothed trailing Binance funding rate is positive above a modest entry gate (0.01%/8h), collects the 8h funding paid to perp shorts while the matched spot long neutralizes ETH price delta, and unwinds both legs when smoothed funding turns non-positive, on a max-hold backstop, or on a combined-PnL kill switch. Orphan-leg guard flattens any unhedged leg within one bar; both legs flattened on stop.
Backtest Review
Mechanism verified correct in the trade records: matched-quantity spot-long / perp-short book nets delta-neutral (e.g. 2020-01-23 cycle: SHORT price_pnl -11,471 + LONG price_pnl +11,260 = -211 basis residual), and funding IS credited as a cash flow (funding column: +2.19, +246, +969...) — the carry is real and visible, not a directional artifact.
Backtest Review
Healthy sample for walk-forward: 102 full entry/exit cycles (204 legs) over 6 years, comfortably above the 100-trade floor; delta-neutral book with modest max_drawdown 7.9%.
Backtest Review
The single most impactful lever is completely untuned: funding_entry is pinned at its least-selective value (0.0001 = 0.01%/8h), so optimization has obvious, unexplored headroom to raise entry selectivity and cut low-funding fee-drag cycles.
Backtest Review
Base config is NOT yet economically viable: profit_factor 1.021 (barely >1), total_return -6.6%, and market impact eats 21.5% of gross PnL — the carry currently does not clear fees + basis residual.
Backtest Review
Many cycles are pure fee drag: short-hold/low-funding entries (e.g. 1-day hold, funding +2.19 vs ~60 commission) net losses because the permissive gate admits marginal-funding regimes.
Backtest Review
Regime-dependent and fat-tailed: strong 2020-2021 (high-funding bull) vs negative 2022/2025, return_skew -2.28 / kurtosis 16.8 from occasional basis-residual blowouts; small capacity (capacity_usd ~2.1M) caps deployable size.
Analysis
Genuinely delta-neutral construction: matched-ETH-quantity hedge with an orphan-flatten guard so no naked leg persists; funding is credited so the carry PnL is real (not an uncreditable-funding case).
Analysis
Optimization gates are mechanically clean on paper: PBO 0.17, is_overfitted=false, holdout passed (ratio 1.324), low market beta (0.006).
Analysis
Adequate trade count (204 fills / ~102 cycles) and low base drawdown (7.9%).
Analysis
Base (default-param) config LOSES money: total_return -6.60%, profit_factor 1.021. The credited ETH spot-perp carry is real but too thin to clear ~0.30%/cycle round-trip fees — commissions ($10.7k) exceed gross profit (~$9.8k).
Analysis
The optimized high Sharpe (OOS 4.56 / holdout 6.04) is a sensitivity-CLIFF artifact: funding_entry is flagged is_cliff=true, Sharpe jumps 1.46->5.42 on a ~10% threshold nudge (0.0001->0.00011), and the optimizer parked best_params.funding_entry=0.000132 on the high side of that cliff. Live funding realizations that differ slightly drop the book back to the net-negative side.
Analysis
Implausible IS Sharpes (~8.5) for a delta-neutral ETH carry, with deflated_sharpe=null so significance over 225 trials cannot be confirmed — the optimizer cherry-picked a threshold band, not a durable edge.
Analysis
Toy-scale capacity: capacity_usd only $2.15M and impact_cost_pct 21.57% of gross PnL — the edge exists only at tiny size and is destroyed by any deployable scale.
Analysis
Regime-fragile: rolling Sharpe collapsed to -26.9 during the 2022 basis inversion and recent returns decay (2024 +0.71%, 2025 -0.16%); the carry is concentrated in the 2020-2021 rich-funding regime.
Analysis
deployable scale
Analysis
funding_entry is_cliff=true, optimizer parked on high side
Analysis
no cliff params
Analysis
Do not optimize yet — 32 cycles will make walk-forward fit noise. (1) Verify full Binance ETHUSDT funding history (2019–2026) is loaded: funding_events_available=1269 is only ~15% of the ~8,700 expected over 8 years, directly suppressing entries. (2) Increase capital deployment — avg_position_pct is only 8.6% and exposure 35%, so a healthy per-cycle carry nets ~0 over 8 years; push capital_frac toward the 0.20 cap and keep the carry on whenever funding is positive rather than only above the tightest gate. (3) Ignore the Sharpe 6.2 — it is a leg mark-timing artifact (impossible +60% single days on a neutral book); realized profit_factor is 1.076. Reconcile the ~$7.5k gap between summed realized PnL (+$5,563) and equity change (-$1,962). (4) Re-tune funding_entry only after coverage is fixed. Then re-backtest; if it still nets ~0 with a realistic Sharpe, abandon. Full detail in workspace/discussions/2c9b5c9e-6623-4769-ba36-5d11e805db2b/iteration_backtest_review_feedback.md
Outcome Summary
EthSpotPerpFundingCarryHedgedNeutral4H built a genuinely delta-neutral ETH carry — matched-quantity spot long versus perp short with an orphan-flatten guard — and correctly credited the 8-hour funding, so the carry was real rather than a directional artifact. But the base configuration lost money (profit factor 1.021, total return -6.6%) because commissions (~$10.7k) exceeded gross profit and market impact consumed 21.6% of gross PnL at a toy-scale $2.15M capacity. Optimization's headline OOS Sharpe of 4.56 turned out to be a funding_entry sensitivity-cliff artifact, with the optimizer parking on the high side of a threshold where Sharpe jumped from 1.46 to 5.42, and risk review added unmodeled cross-account liquidation on the perp leg and the absence of an effective per-leg stop. After the reviewer's 'optimize' vote, the analyst abandoned it and risk rejected it as this final attempt (2 of 2), leaving the strategy abandoned — a real but marginal carry that couldn't clear its own costs.
Outcome Summary
A real, delta-neutral carry can still be uninvestable when the harvested funding is too small to clear round-trip fees and impact — and a passing walk-forward/holdout/PBO does not rescue an edge whose only high-Sharpe region sits on the high side of a flagged sensitivity cliff.
Outcome Summary
The backtest reviewer voted 'optimize', but the analyst then voted 'abandon' and risk review rejected it: the credited carry was too thin to clear ~0.30%/cycle round-trip fees, the optimizer's high Sharpe parked on the high side of a flagged funding_entry cliff (Sharpe jumping 1.46→5.42 on a ~10% threshold nudge), and risk flagged unmodeled cross-account liquidation on the perp leg, no effective per-leg stop, and toy-scale capacity.
Outcome Summary
A delta-neutral ETH funding-carry strategy that held ETH spot long on BINANCE_SPOT while shorting the ETHUSDT perp on Binance USD-M in matched ETH quantity whenever trailing funding was positive, collecting the 8-hour funding paid to perp shorts and unwinding both legs when funding compressed or flipped negative.
Outcome Summary
The book was genuinely delta-neutral with funding credited as real cash flow across 204 legs (~102 cycles over 6 years) and a modest base max drawdown of 7.9%, but the base config lost money — profit factor 1.021 and total return -6.6%, with commissions (~$10.7k) exceeding gross profit (~$9.8k). Optimization produced high OOS/holdout Sharpes (4.56 / 6.04) that were a sensitivity-cliff artifact, capacity was only ~$2.15M, and impact cost ate 21.6% of gross PnL.
Risk Review
Risk review rejected:
- [critical] Net unprofitable. Equity 200,000 -> 169,539 (total_return -15.23%) over the live trading window. Sharpe 2.19 / PSR 0.999 are artifacts of a near-flat, sparsely-sampled series (annualized_volatility 4.56%) and must not justify capital. A net-losing strategy cannot be promoted.
- [critical] Cross-account margin/liquidation risk unmodeled. LONG ETH on BINANCE_SPOT (CASH) + SHORT ETH perp on BINANCE (isolated MARGIN) are separate accounts, but the backtest nets them into one equity pool. Perp short legs hit -120% to -200% MAE (2020-12-08 short: mae_pct -200.0). Live, the futures leg liquidates and spot gains don't post as margin to save it - the hedge breaks during ETH rallies, leaving a naked spot long. end_unrealized_pct -94.6% confirms a leg deeply underwater at end.
- [critical] No effective stop on the dangerous leg. Only exit is an 8% kill switch on COMBINED PnL; because legs offset, combined PnL stays ~0 and the switch never fires. Violates mandatory_stop_loss: true / max_stop_loss_pct: 5.0 (no per-leg stop).
- [critical] Max drawdown 31.94% with a single-step cliff on 2024-03-05 (-13.6% in one 4H bar). >2x risk_limits max_strategy_drawdown_pct (15%) and breaches circuit_breaker max_loss_pct_1h (5%). return_skew -8.49, kurtosis 119.8 = severe fat left tail.
- [warning] Sizing 45%/leg, avg_position_pct 47.5%, exposure 126% vs max_position_pct 20%. Notional also scales with self.config.leverage uncapped.
- [warning] Edge fails on costs: profit_factor 1.117, commissions 31,958 + impact 11,190; funding harvested is eaten by basis moves + fees.
- [warning] Single-asset ETH concentration; max_hold_bars ~60 days keeps the book exposed through major rallies.
- [info] Sound: no trades when funding data absent (no price fallback) - correct fail-safe.
Backtest and paper results are hypothetical. Trading involves risk of loss.