Skip to content
All strategies

Strategies

Binance-vs-OKX Same-Coin Funding-Differential Carry: Dollar-Neutral Long Cheap-Funding Perp / Short Rich-Funding Perp When the Trailing 3-Day Venue Funding Gap Exceeds 0.35% (5 mid-cap alts: TRB, AXS, ZIL, API3, ETC; 1H decision bars; flat most of the time)

Outcome: Abandoned

BinanceOkxFundingDifferentialCarry

Outcome Summary

The hypothesis proposed earning the cross-venue funding spread between Binance and OKX perps on the same coin, backed by a point-in-time pre-study that found 84 qualifying episodes across five mid-cap alts. The developer coded a 10-instrument pair strategy that reads each leg's own funding series point in time. The iteration 3 fix only addressed Layer 1.5 config consistency (declaring leverage 2.0 as a parameter). The strategy then failed Layer 3 verification with zero entries over 19,993 bars and was abandoned without ever reaching backtesting, optimization or analyst review.

Hypothesis

A cross-venue, market-neutral carry trade on one coin at a time. Each coin is held on two venues at once: the Binance USD-M perpetual (<COIN>USDT.BINANCE) and the OKX USDT swap (<COIN>USDT.OKX). Both settle funding every 8h, but their crowds are different, so their funding rates diverge. On mid-cap alts the divergence is large and persistent. When the trailing 3-day sum of (OKX funding - Binance funding) is beyond the threshold, short the perp on the venue paying the higher funding and long the other venue's perp……Show moreShow less

A cross-venue, market-neutral carry trade on one coin at a time. Each coin is held on two venues at once: the Binance USD-M perpetual (<COIN>USDT.BINANCE) and the OKX USDT swap (<COIN>USDT.OKX). Both settle funding every 8h, but their crowds are different, so their funding rates diverge. On mid-cap alts the divergence is large and persistent. When the trailing 3-day sum of (OKX funding - Binance funding) is beyond the threshold, short the perp on the venue paying the higher funding and long the other venue's perp in equal notional. Price exposure cancels, because both legs are the same coin. What is collected is the funding differential, plus any convergence of the cross-venue price premium, which usually points the same way as the rich-funding venue. This is NOT a directional perp trade gated on funding (lesson L111). There is no price bet at all: the P&L source is the cash flow itself. It is also not the dead 12-name same-venue funding-carry basket, which earned the funding LEVEL on one venue. This trade earns the cross-venue funding SPREAD with both legs on the same coin. Point-in-time pre-study (funding_rates table, rows de-duplicated per (symbol, exchange, timestamp) because Binance rows are stored up to 5x; daily sums; 2022-02 to 2026-09). Across ~160 common USDT symbols, sign(trailing-3d gap) x next-10d gap rises monotonically with the size of the gap: 0.06% for |gap| < 0.1%, 0.19% for 0.1-0.2%, 0.29% for 0.2-0.3%, 0.43% for 0.3-0.4%, 0.49-0.61% above that. The gap therefore persists rather than mean-reverting immediately. Majors (BTC, ETH, SOL, XRP, DOGE) almost never reach a 0.25% 3-day gap, so the edge lives in mid-caps. Universe capped at 5 coins / 10 instruments (lesson L173). The 5 were chosen from coins that (a) fire most often and (b) have OKX 1H bars in the catalog from 2022 or earlier (ENJ/ONT/FIL OKX bars start 2024-2026, so they were excluded). This selection is in-sample, and the analyst should know that. Episode study on these 5 (first day |3d gap| crosses 0.35%): 84 episodes. Mean next-7-day captured differential 0.674%, median 0.234%, 52% of episodes capture more than 0.2%. By year: 2022 0.66% (n=28), 2023 0.43% (26), 2024 -0.36% (6), 2025 0.61% (8), 2026 1.52% (16). The distribution is right-skewed and 2024 was a bad year. Expect a modest Sharpe, not a spectacular one. Data: bars from the ParquetDataCatalog for the 10 instruments at 1-HOUR. Binance funding comes from BinanceFuturesDataCollector/FundingCollector, OKX funding from OkxCollector (API + daily CDN from 2022-01-17). Both are in PG funding_rates under exchange binance/okx. The strategy MUST read each leg's own series via the per-leg supp `funding_rates_by_instrument` (supp_collector loads it for every linear-perp leg), accessed point-in-time (supp_as_of / supp_window semantics: observations at or before the current bar only). Funding accrual on held positions is applied by funding_accrual for both BINANCE and OKX, so the backtest P&L includes the carry itself.

Fills the most under-represented quota buckets at once: cross-venue (7.1% vs >=15% target), OKX venue (1.4% vs >=5%), long+short / market-neutral (15.5% vs long-only <=55%). It avoids BTC entirely and the corpus-concentrated BINANCE-only single-symbol setup. The mechanism is a measured cash-flow spread, not a price-pattern, calendar, grid, options or gated-directional trade (L102, L111, L171, L179). Both venues have completed backtests in the corpus and OKX funding has been backfilled from 2022 (L103, L181).

verification_loop: Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: TRBUSDT.BINANCE-1-HOUR-LAST-EXTERNAL, Bars processed: 19993 Diagnostics: should_enter() returned a side 0 times over 19993 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.

Implementation

A dollar-neutral funding-differential carry trade across Binance and OKX on TRB, AXS, ZIL, API3 and ETC. When the trailing 3-day sum of OKX funding minus Binance funding is beyond entry_gap, it shorts the perpetual on the venue paying the higher funding and buys the same quantity of the other venue's perpetual. A pair is closed when the gap converges, when the basis stop is hit, or at the maximum holding time.

Iteration 3 changes only what caused the Layer-1.5 failure. The research plan fixes leverage at 2.0 as a parameter, so parameters.leverage is now set to 2.0, matching config.leverage. Each leg is sized from it as equity x 0.12 x 2.0, and with at most 3 pairs gross exposure is 1.44x equity. Every fixed plan value is declared with its exact type. The starting values of the tunable parameters (entry_gap 0.0035, exit_gap 0.0005, max_hold_days 7) are inside their allowed ranges. The plan validator passes locally. Signal, entry and exit logic are unchanged.

Verification Results

Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: TRBUSDT.BINANCE-1-HOUR-LAST-EXTERNAL, Bars processed: 19993 Diagnostics: should_enter() returned a side 0 times over 19993 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.

Iteration History

Verification failed (leverage_set_but_unused): config sets leverage=2.0 but the strategy never references leverage in sizing. Size positions on it — notional = equity * fraction * leverage / price (read self.config.leverage) — or set leverage=1.0. As written the leverage is inert and the backtest is identical to 1x.

Verification failed (Layer 1.5 — hypothesis/config consistency) [class=hypothesis_mismatch]: - optimization_plan fixes leverage at 2.0

Outcome Summary

Before iterating on other fixes, confirm in the sandbox that the per-leg funding_rates_by_instrument series for both venues is loaded and gives non-zero 3-day gaps. The hypothesis's own episode study expected 84 entries, so zero signals over ~20k bars points to a data-access or gating failure (missing or under-covered leg funding, coverage or premium guards), not a rare signal.

After 3 iterations it was abandoned in a verification loop: the Layer 3 sandbox backtest produced no trades because the entry condition never triggered. Backtest review, optimization, analyst and risk stages were never reached.

A dollar-neutral cross-venue carry on five mid-cap alts (TRB, AXS, ZIL, API3, ETC): short the perp on whichever of Binance or OKX pays richer funding and long the other venue's perp when the trailing 3-day funding gap exceeds 0.35%, collecting the funding differential with no price exposure.

No performance metrics exist: the strategy never produced a trade, so there was no backtest or optimization report. In the Layer 3 sandbox backtest, should_enter() returned a side 0 times over 19,993 evaluated 1H bars on TRBUSDT.BINANCE.

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