跳转到内容

展期收益(Carry)

持有期货多头,除了价格变动还有一项展期收益:当远月合约价格低于近月(贴水 / backwardation)时,多头移仓到更便宜的远月,随时间自然获得正收益;升水(contango)时反之。一般化的 carry 定义:

Carryt=Ft,T1−StSt⋅252T1−t,\mathrm{Carry}_t = \frac{F_{t,T_1} - S_t}{S_t} \cdot \frac{252}{T_1 - t},

即年化的基差(或外汇利差、债券票息与融资成本之差)。多头信号取 +sign(Carry)+\mathrm{sign}(\mathrm{Carry}),做空反向。

资产Carry 来源直觉
商品曲线斜率(基差)现货紧张 → 贴水 → 多头赚展期
外汇两国利差高息货币正 carry(但有崩盘风险)
债券期限溢价 − 融资成本陡峭曲线下做多长端
股指期货分红 − 融资成本通常小幅且可预测
加密资金费率见加密市场

商品与外汇是 carry 信号的主战场;注意外汇 carry 的收益分布负偏——平稳期小赚,危机时套息交易平仓造成大亏。

  1. 相关性低:趋势看价格变动的方向,carry 看曲线的静态形态,两者信息源不同;
  2. 时间尺度不同:趋势在月度级别,carry 在移仓周期级别;
  3. 组合效果:Koijen–Moskowitz–Pedersen 的实证显示,跨资产 carry 与时序动量等权组合的夏普显著高于任一单独信号。
carry.py
import numpy as np
import pandas as pd
def commodity_carry(front: pd.Series, second: pd.Series, days_to_expiry: pd.Series) -> pd.Series:
"""商品 carry:年化基差。front/second: 近月与次近月合约价格"""
roll_yield = (front / second) ** (252 / days_to_expiry) - 1
return roll_yield
  • 危机中与风险资产同跌:贴水加深往往对应现货暴跌,carry 多头在此时双重受损;
  • 移仓成本:实际展期有价差与冲击成本,曲线上"理论 carry"与可实现收益有差距,见最优执行与交易成本;
  • 信号衰减:carry 因子被广泛使用后,商品市场的贴水溢价已被压缩。
  • carry 与趋势等权组合为 CTA 的默认双支柱,组合前先测两者收益相关性;
  • 外汇 carry 单独使用时必须配尾部控制(见回撤、VaR 与止损);
  • 展期收益要按实际移仓日与成交价计算,不用理论基差。
  • 商品 carry 来自曲线斜率,外汇 carry 来自利差,债券 carry 来自期限溢价
  • Carry 与趋势的组合显著提高夏普
  • Carry(尤其外汇套息)在危机中容易与风险资产同跌,需尾部控制