Crypto carry factor

Crypto
Carry
Factor
Carry factor research on Binance perpetual futures, with return decomposition and portfolio integration.
Published

December 28, 2025

Overview

This project studies carry in cryptocurrency perpetual futures using the cross sectional carry framework of Koijen et al. (2018). Using Binance USDT margined perpetual futures from 2021 to 2025, it finds that the strategy’s average performance is driven mainly by funding payments rather than by forecasting price moves. This points to a practical interpretation: the signal is best viewed as identifying where funding compensation is highest, and a more investable way to target it would be to test an explicit delta hedged construction that isolates funding carry, rather than relying on an unhedged factor portfolio to deliver the effect.

Key ideas:

  • Perpetual futures funding is the analog of carry in crypto.
  • When funding is strongly positive, shorts earn carry; when negative, longs earn carry.
  • A long short portfolio formed on funding differentials shows weak price predictability but strong carry income, which suggests the premium is primarily in funding.

Data and Universe

  • Exchange: Binance Futures (USDT-margined perps)
  • Horizon: Jan 2021 – Nov 2025 (59 months)
  • Universe: each month, the top 30 contracts by trailing 30 day volume.

This liquidity filter removes coins that are thinly traded, likely to be delisted, or effectively uninvestable at size.

Survivorship bias caveat: The dataset is subject to survivorship bias. The universe is constructed from contracts currently listed on Binance, meaning delisted perpetual futures (e.g., LUNAUSDT, FTTUSDT, SRMUSDT) are excluded from the backtest even though they were actively traded, and often highly liquid, before their removal. Unfortunately, Binance does not provide a reliable historical record of delisted contracts through its API. While this limitation may overstate performance (delisted coins often experienced extreme losses prior to removal), the analysis proceeds with the available data. Future work could incorporate third-party archival sources to address this gap.

Signal Construction

The carry signal is based on recent funding rates:

\[ \text{carry\_signal} = \text{avg funding rate} \times (-1) \times 3 \times 365 \]

The average funding rate over the prior month is annualized by multiplying by 3 (funding is paid every 8 hours, i.e., 3 times per day) and 365 (days per year), making the signal easily interpretable as an annualized carry.

  • Negative funding → high signal → attractive to go long.
  • Positive funding → low signal → attractive to go short.

A long short factor goes long the top 10 by signal and short the bottom 10 (of top 30 liquid perps), equal weighted and rebalanced monthly.

Results and Return Decomposition

Component Ann. Return Ann. Vol Sharpe
Price Only 3.9% 92.6% 0.04
Carry Only 25.2% 7.1% 3.55
Total 29.1% 94.0% 0.31

The carry component alone delivers a Sharpe of 3.55.

The total factor return is decomposed into price and carry components:

\[ \text{Total Return} = \text{Price Return} + \text{Carry Return}. \]

Where:

  • Price Return: change in futures prices over the month.
  • Carry Return: cumulative funding received or paid during the holding period.

Return Decomposition

Over the full sample (2021–2025), the price component has a low Sharpe and dominates volatility, while the carry component is smoother and strongly positive. This indicates that the factor’s average return is primarily driven by funding payments rather than by forecasting price moves.

Note: Sharpe uses the arithmetic average return, while cumulative performance reflects compounded growth. With high volatility, compounded growth can be lower and even negative despite a positive arithmetic average. For example, a two-month path of (+60%) followed by (-50%) has an average monthly return of ( = 0.05 = 5%), but the compounded two-month return is ((1+0.60)(1-0.50) - 1 = 1.6 - 1 = 0.8 - 1 = -0.2 = -20%).

Diversification Properties

Correlation Heatmap

The carry factor has near-zero correlation with BTC; modest with an equal weight crypto basket. Additionally, it has low correlations with traditional macro assets (equities, bonds, gold, dollar index, VIX). This suggests that the premium is tied to crypto specific market structure rather than standard macro risk factors.

Portfolio construction with BTC

The analysis also tests adding the carry factor to a BTC portfolio via:

  1. 100% BTC.
  2. Static 80% BTC / 20% Carry.
  3. Risk parity between BTC and the carry factor (weights ∝ 1 / volatility).

Portfolio Comparison

Risk parity allocations improve risk adjusted performance relative to holding BTC alone, by using the lower volatility carry leg to balance BTC’s large price swings.

Strategy Ann. Return Ann. Vol Sharpe Max DD
100% BTC 51.2% 66.7% 0.77 -72.6%
Naive (80/20) 48.7% 54.5% 0.89 -63.1%
Risk Parity 31.1% 25.0% 1.24 -26.3%

The risk parity approach approximately doubles the Sharpe ratio and cuts drawdowns by two thirds, at the cost of lower absolute returns.

Transaction Costs

Portfolio Turnover

The strategy turns over about 121% of the portfolio each month on average. Positions shift around quite a bit as funding rate rankings reshuffle. Assuming 2bps trading costs, that works out to roughly 2.4bps monthly drag (about 29bps annualized). In practice, this barely moves the needle: the cumulative fee drag over the backtest is just 1.03%, and the Sharpe ratio stays flat at 0.31 both gross and net.

Metric Value
Avg Monthly Turnover 121%
Turnover Range 68% – 167%
Fee Assumption 2bps per unit traded
Monthly Fee Drag ~2.4bps
Annualized Fee Drag ~29bps
Cumulative PnL Impact 1.03%
Gross Sharpe 0.31
Net Sharpe 0.31

When integrating the carry factor into a BTC portfolio, turnover depends on the allocation strategy. The naive 80/20 strategy has low turnover (approximately 7% monthly) since weights only drift slightly due to differential returns before rebalancing back to target. The risk parity strategy has higher turnover (approximately 24% monthly) because weights adjust dynamically with rolling volatility. These translate to fee drags of roughly 0.15 bps and 0.48 bps per month respectively, which are small relative to the carry premium.

Strategy Gross Ann. Return Net Ann. Return Ann. Vol Gross Sharpe Net Sharpe Fee Impact
100% BTC 25.8% 25.8% 58.7% 0.44 0.44 None (no rebalancing)
Naive 80/20 19.6% 19.6% 49.1% 0.40 0.40 Negligible
Risk Parity 14.3% 14.3% 58.4% 0.25 0.24 ~0.01 Sharpe

In practice, the 2 bps fee could be reduced significantly by moving to higher fee tiers available to larger accounts on Binance. However, deploying larger capital would introduce market impact, the cost of moving prices against yourself when trading illiquid perps in size. The two effects partially offset: lower explicit fees but higher implicit execution costs.

Notebook

The full implementation, including data processing, universe construction, and all plots used above, is available in the Jupyter notebook:

View the full notebook (carry_project.ipynb)

Note: Sections 1 and 2 of the notebook replicate the original carry factor methodology from Koijen et al. (2018) on traditional asset classes. The remaining sections extend the framework to crypto perpetual futures.

Appendix: Out of Sample Performance of Traditional Carry

The notebook also extends the original Koijen et al. dataset through July 2021 to test out of sample performance:

Strategy In Sample Sharpe Out of Sample Sharpe Change
Global 1.46 0.50 -0.96
Equities 0.91 0.47 -0.44
FX 0.68 0.12 -0.56
Commodities 0.60 -0.41 -1.01
FI-Level 0.52 0.61 +0.09
FI-Slope 1.03 0.79 -0.23

Traditional carry strategies showed meaningful performance decay out of sample, with Sharpe ratios generally lower than in sample. Most strategies still had a positive oos Sharpe, but the results were mixed, with commodities and FX delivering negative returns oos.