Skip to main content

What Are Funding Rates?

Perpetual futures contracts have no expiry date. To keep the futures price anchored to the spot price, exchanges charge or pay funding rates every 8 hours. Holders of the majority side pay the minority side:
  • Positive funding rate: Longs pay shorts (futures trading above spot)
  • Negative funding rate: Shorts pay longs (futures trading below spot)
Funding rates typically range from -0.1% to +0.3% per 8-hour period. Over time, this represents a significant cost — or income — that most backtesting frameworks ignore entirely.

Why It Matters

A strategy that holds a long BTC position for 30 days during a high-funding period:
A backtest that ignores this reports 4.5% higher returns than reality. For leveraged positions, the distortion is proportionally larger.

How ClyptQ Simulates Funding

Auto-Injection

When you create a TradingSpec with a futures account, ClyptQ automatically injects a FundingRateSpec for that venue. You don’t need to configure anything:
The auto-injection logic in TradingDriver.from_spec():
  1. Scans all AccountSpecs for futures accounts
  2. Checks if the exchange supports historical funding rates
  3. If no FundingRateSpec exists for that venue, injects one automatically
  4. Logs: "Auto-injecting FundingRateSpec for binance:futures"

Settlement Timing

Funding is applied at the standard 8-hour intervals:
This matches the settlement schedule of Binance, Bybit, and Gateio. Each exchange has its own FUNDING_SETTLEMENT_HOURS — Kraken uses 4h intervals (6× per day) and Coinbase uses 1h intervals. See Exchange Specifics for details.

Payment Calculation

At each settlement, for every open position:
The payment is sign-aware:

Cumulative Tracking

Total funding paid is tracked per account for post-backtest analysis:

Exchange Support

Not all exchanges provide full historical funding rate data: For exchanges with has_funding_rate=False, ClyptQ logs an info message and skips auto-injection. The backtest will run without funding simulation for that venue.
Coinbase: Funding costs are not simulated in backtest (has_funding_rate=False). Coinbase historical funding API is limited to ~42 days and the live API is unsupported. Live P&L will differ from backtest due to unmodeled funding payments.

Missing Rate Handling

If funding rate data is missing for a symbol with an open position, ClyptQ logs a warning:
This can happen when:
  • The symbol was recently listed (no historical funding data)
  • Data collection has gaps
  • The symbol uses a non-standard funding schedule
The position is not affected by the missing rate — it simply skips that settlement. This is conservative: in reality, funding would have been charged.

Impact on Strategy Design

High-Frequency Strategies

Strategies that open and close positions within a single 8-hour window are unaffected by funding — they never hold through a settlement. This is one reason why short-term momentum strategies often work better with perpetual futures than long-term holds.

Funding Rate Arbitrage

Some strategies specifically target funding rate income:
ClyptQ’s funding simulation makes these strategies backtestable with realistic P&L.

Long-Hold Strategies

Strategies that hold positions for weeks or months must account for cumulative funding. A common pattern:

Cost Models

Fee structures and slippage — the other half of cost modeling

Exchange Specifics

Per-exchange funding intervals, market types, and supported features