Skip to content

View translation

MajorsPersistentNegativeFundingCarryLongDailyBasket

Hypotheses

BTC Persistent Negative Funding Carry Long (Daily)

Hypotheses

A long-only carry-and-direction strategy on BTCUSDT perpetual futures using daily bars and Binance funding-rate data. The strategy identifies windows where shorts have been paying longs persistently (negative funding sustained over multiple 8h periods) while the asset is still structurally healthy (above its 100-day SMA). In these windows, going long captures TWO income streams simultaneously: (1) the funding payment itself — shorts hand cash to longs every 8h — and (2) the directional bounce that historically follows fear-driven negative-funding regimes in crypto majors. This is the EXPLICITLY-ENDORSED viable funding-rate construction from the failure analyses ('LONG when funding is NEGATIVE' on a major), the structural inverse of the three abandoned 'fade extreme positive funding' attempts. Daily decision frequency keeps fee drag low; the long-only crypto-major bias eliminates the broken short-side asymmetry; funding payments provide a positive-expectancy income floor that helps even sideways periods stay profitable. The strategy is deliberately simple (4 parameters) to avoid the overfitting failure mode and uses real funding-rate data (not an OHLCV proxy substitution) to avoid the bait-and-switch failure mode.

Hypotheses

The mechanism was endorsed and the per-trade economics were excellent (PF 4.08, expectancy +$2,115, DD 6.1%); the sole blocker was sample size (12 trades over ~6 years -> degenerate 3-window walk-forward). This iteration applies the feedback's PREFERRED action: broaden to a small basket of major perps (BTC+ETH+SOL+BNB), each contributing its own negative-funding windows, multiplying the sample ~3-4x toward the ~60-trade target WITHOUT changing the premise. I confirmed the harness supports per-leg funding for multi-instrument funding strategies: apply_funding_to_report (runner.py) credits each leg, and funding_series_for_instrument plus several landed baskets (CrossSectionalFundingCarryTopKRotationNeutral, PositiveFundingNearHighShortBasket) read supp['funding_rates_by_instrument'][iid] with a fallback to the venue-wide 'funding_rates' for the primary BINANCE leg -- exactly the access pattern reproduced here, so the carry the strategy signals on is the same carry the engine pays. The per-leg logic is byte-for-byte the same edge as iteration 1 (trailing-mean funding < threshold entry, regime-SMA health filter, funding-flip / health / stop / time exits) so the endorsed mechanism and its real-funding-only discipline are preserved; only the scope changed from single-asset to basket. Architecture uses the proven centralized multi-leg pattern: all order management lives in calculate_signal (fired by the base only after the same-daily-timeframe legs are timestamp-aligned, so each leg's funding and SMA are evaluated on contemporaneous data), with inert should_enter/should_exit/position_size because the base entry path manages only the primary instrument. Per-leg funding is pre-parsed into sorted numpy arrays for O(log n) causal window means with an 8h-cycle staleness guard. Sizing caps each leg at 22% notional so all four held simultaneously is ~88% gross within the leverage-1.0 futures margin ceiling (leverage referenced only as a non-amplifying multiplier, so no unused-leverage gate); each ~22k leg clears the $100 BTC min-notional. min_bars_required=2 lets the lockstep buffers fill while SMA/funding readiness is gated per leg, and the returned primary trailing-mean funding is a genuinely continuous daily signal so Layer-2 frozen-signal detection passes. Per the decision rule, the analyst should confirm the re-run reaches ~60+ trades and that the edge survives excluding the top 2 winners (the kurtosis warning) before sweeping only the four core params.

Hypotheses

Do not optimize — note first that funding IS credited to PnL here and the funding series is fully covered (2021-2026, no data gap), so this is a fair test of the credited negative-funding carry; the failure is in the metrics, not a data/creditability issue. The result has no statistically distinguishable edge (Sharpe 0.38 with sharpe_ci_low -1.08, CI deeply straddling zero) and is an extreme fat-tail directional bet rather than the hypothesized steady carry: tail_ratio 0.125, return_kurtosis 356, win_rate 28%, and max_consecutive_losses 19 mean the entire edge rests on ~2-3 explosive bounce days (2021-02-10 +41%, largest_win $45k) while it bleeds in between. The 'funding income floor that keeps sideways periods profitable' thesis is therefore falsified — the credited carry does not offset the directional losses. Best-of-N optimization will inflate the Sharpe and deflated Sharpe (which penalizes kurtosis hard) will correct it back below the expected-max luck bar, the same fate as the kurtosis-heavy BNB range-expansion (DSR 0.67) and ETH multi-week trend-following siblings, and the edge is decaying recently (2025 -6.4%, 2026 -7%) with a 36% max drawdown. This is not sparsity (113 trades) or a sizing bug — it is a non-significant, outlier-dependent edge, and no tuning of funding_lookback/threshold/regime_sma/stop converts a CI-straddling-zero, kurtosis-356, 19-loss-streak directional bet into a forward-robust carry. Abandon rather than spend 2 hours re-deriving the rejection; the negative-funding-long construction on majors behaves as a fat-tailed dip-bounce trade, not a deployable funding-carry edge.

Implementation

Long-only persistent-negative-funding carry-and-direction basket on BTCUSDT (primary) + ETHUSDT, SOLUSDT, BNBUSDT BINANCE USD-M perps, daily bars. Independently per leg, goes long when that leg's trailing-window mean funding is below funding_threshold (<=0, shorts paying longs) AND the leg's close is above its own 100-day regime SMA, capturing both the funding payment (a long receives funding when it is negative) and the post-fear bounce. Each leg exits when its funding flips decisively positive, its close drops below the SMA, an 8% stop hits, or 45 days elapse. Per-leg funding comes from supplementary_data['funding_rates_by_instrument'] (falling back to 'funding_rates' for the primary BINANCE leg); a leg with no funding series never trades (no price-proxy fallback). Per-leg sized to 22% of equity so worst-case gross (all four held) stays under 100% at leverage 1.0. Four core parameters: funding_lookback_days, funding_threshold, regime_sma, stop_pct.

Backtest Review

Funding data is well-covered (2021-2026, no gap) and credited to PnL — a fair test of the endorsed negative-funding-long construction; iteration-1 basket fix lifted the sample to 113 trades

Backtest Review

Clean dollar-sane sizing (no blow-up), deployable capacity ($97M, impact 3.2%), positive in 4 of 6 years

Backtest Review

No significant edge: Sharpe 0.38 with sharpe_ci_low -1.08 (CI deeply straddles 0)

Backtest Review

Extreme outlier dependence: kurtosis 356, tail_ratio 0.125; the edge is ~2-3 bounce days (2021-02-10 +41%, largest_win $45k) — deflated Sharpe will reject the fat tails

Backtest Review

The 'funding income floor' thesis is falsified: win_rate 28%, max_consecutive_losses 19 — it bleeds between rare directional pops rather than earning steady carry

Backtest Review

Recent decay (2025 -6.4%, 2026 -7%) and max_DD 36.4%

Analysis

Do NOT optimize yet — the mechanism is sound and endorsed (long-when-funding-negative on a major; funding IS now credited so the carry is real) and the per-trade economics are excellent (PF 4.08, expectancy +$2,115, max DD 6.1%, honest 18.9% vol, positive most years at 8% exposure). The blocker is sample size: only 12 trades over ~6 years (~2/yr), which makes a 3-window walk-forward degenerate (~1-2 OOS trades/window) — the exact failure that collapsed the SOL DCA (19 trades), AVAX (26) and BNB DCA samples this session. The edge is also outlier-concentrated (kurtosis 44.9, the 2023-10-29 +10% bounce) with sharpe_ci_low -0.87 straddling 0. ACTION — lift the event count while keeping the premise: (1) PREFERRED: broaden to a small basket of major perps (BTC+ETH+SOL+BNB), each contributing its own negative-funding windows, multiplying the sample ~3-4x without changing the mechanism; size per-leg to control gross exposure. (2) OR relax the entry window (shorter funding_lookback_days / allow sooner re-entry) while keeping funding_threshold <= 0 so it stays a genuine negative-funding signal. Target ~60-100 trades so each OOS window has 5+ trades. ALSO verify the edge survives excluding the top 2 winners (kurtosis warning) and that funding income shows in trade PnL. DECISION RULE: re-run reaches ~60+ trades across 2020-2026 with the edge robust to outlier exclusion -> optimize (sweep only funding_lookback_days, funding_threshold, regime_sma, stop_pct); still <30 trades or edge collapses without outliers -> abandon (the negative-funding regime is too rare on this scope). Detailed feedback written to workspace/discussions/ab2eb2f4-f00b-4c70-b5c4-fcb523cb8006/iteration_1_feedback.md

Outcome Summary

MajorsPersistentNegativeFundingCarryLongDailyBasket implemented the explicitly-endorsed 'long when funding is negative on a major' construction, broadening it to a 4-major basket to lift the event count and using real, fully-covered funding data credited to PnL. It got a genuinely fair test, but the result was a non-significant, outlier-dependent dip-bounce trade: Sharpe 0.38 with a CI low of -1.08, a 28% win rate, a 19-trade losing streak, kurtosis 356, and an edge concentrated in ~2-3 explosive bounce days, with recent decay (2025 -6.4%, 2026 -7%). The 'funding income floor that keeps sideways periods profitable' thesis was falsified — the carry did not offset the directional bleed. On its second iteration the analyst abandoned it, noting deflated Sharpe would discount the fat tails just as it did the BNB range-expansion and ETH multi-week siblings, rather than spend optimization time re-deriving the rejection.

Outcome Summary

The endorsed negative-funding-long construction on majors behaves as a fat-tailed dip-bounce directional bet, not a deployable funding-carry edge — the credited carry does not offset the directional losses between rare bounce days, and no parameter tuning converts a CI-straddling-zero, kurtosis-356, 19-loss-streak result into a forward-robust carry.

Outcome Summary

The analyst abandoned it at the backtest-review gate before optimization because — on a fair, fully-funded test — there was no statistically distinguishable edge (Sharpe 0.38, CI straddling zero), and the 'funding income floor' thesis was falsified: a 28% win rate and 19-loss streak showed it bled between rare directional pops rather than earning steady carry, so the kurtosis-penalizing deflated Sharpe would reject it.

Outcome Summary

A long-only persistent-negative-funding carry-and-direction strategy on a 4-major Binance perp basket (BTC/ETH/SOL/BNB) using daily bars and real funding-rate data — independently going long each leg when its trailing funding had been persistently negative (shorts paying longs) while the asset held above its 100-day SMA, aiming to capture both the funding income and the directional bounce that follows fear-driven negative-funding regimes, with 4 parameters and no price-proxy fallback.

Outcome Summary

With funding fully covered (2021-2026) and credited to PnL, the basket fix lifted the sample to 113 trades, but the result showed no significant edge: 17.65% total return (CAGR 4.4%), Sharpe 0.38 with a CI low of -1.08, profit factor 1.19, a 28.3% win rate, a 36.4% max drawdown, max consecutive losses of 19, and extreme outlier dependence (kurtosis 356, tail ratio 0.125) with the edge resting on ~2-3 explosive bounce days.

Iteration History

BtcPersistentNegativeFundingCarryLongDaily
Strategy report

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