Strategies
COIN-M BTC Negative-Funding Carry, Long-Only Single-Leg (BINANCE_CM Inverse Perp BTCUSD_PERP, Collect Funding Paid-To-Longs During Backwardation Episodes, Multi-Day Hold, BTC-Denominated Returns, 3-Parameter)
Outcome: Abandoned
BtcCoinMNegativeFundingCarryLong
COIN-M BTC Negative-Funding Carry, Long-Only Single-Leg (BINANCE_CM Inverse Perp BTCUSD_PERP, Collect Funding Paid-To-Longs During Backwardation Episodes, Multi-Day Hold, BTC-Denominated Returns, 3-Parameter)
Hypothesis
data_unavailable: backtest data for BTCUSD_PERP.BINANCE_CM could not be collected after 5 retries: data collection for BTCUSD_PERP.BINANCE_CM exceeded the 600s per-cycle budget; resuming next cycle The data layer (not the strategy) is the blocker — re-evaluate this hypothesis once collection is fixed / the symbol is backfilled.
Implementation
Long-only negative-funding carry on the BTC COIN-M inverse perpetual (BTCUSD_PERP.BINANCE_CM, 8-hour bars aligned 1:1 with the funding cycle). On an inverse perp a NEGATIVE funding rate means shorts pay longs, so a long is paid to hold. Each bar the strategy computes a carry score - minus the mean of the last 3 funding prints, in bps per 8h - and goes LONG while that score is at least 0.25 bps (a genuine backwardation episode), holding through the episode to collect every settlement. It exits when the carry is exhausted (score back to zero), when the funding view is lost or stale, or on a 3x ATR directional stop that bounds the single-name long exposure. Funding is used strictly as a cashflow to collect, never as a direction predictor. Sizing budgets the ATR stop at 1.5% of equity, caps gross notional at 0.75x equity, and floors to WHOLE $100-face inverse contracts via contracts_for_notional.
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.
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSD_PERP.BINANCE_CM-8-HOUR-LAST-EXTERNAL, Bars processed: 6384 Diagnostics: should_enter() returned a side 0 times over 6365 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.