halo 的技术博客

返回

外汇交易员常挂在嘴边的一句话是:利差就是方向。美元利率 5%,日元 0.5%,直觉上资金该从日元涌入美元,推高 USDJPY。可假如把这句话推向极端——「只要买高息货币、卖低息货币就能躺赚」——它就成了著名的 Carry Trade。

Carry Trade 有没有超额收益?教科书里的**无抛补利率平价(Uncovered Interest Rate Parity, UIP)**说:没有。远期汇率已经把这些利差「定价完毕」,高息货币未来的预期贬值恰好抵消利差。可过去四十年的实证数据反复打脸:UIP 不仅失效,而且失效得非常稳定。这篇文章从机制、实证、Python 模拟与风险管理四个维度,把远期汇率偏差拆清楚。

远期汇率偏差:高息货币的实际贬值幅度小于 UIP 预测

一、UIP 在说什么?一个简洁的零超额收益命题#

UIP 的核心公式只有一行:

E[Δs] = i_d − i_f
plaintext
  • E[Δs]:本币计价下,外币的预期即期汇率变动(升值为正)。
  • i_di_f:本币与外币的无风险利率。

如果美元利率 5%、日元 0.5%,以美元为本币、日元为外币,i_d − i_f = 4.5%,UIP 预测日元相对美元每年贬值 4.5%。反过来看,若一个美国投资者借入日元买入美元资产,他拿到 4.5% 的利差,但日元会贬值 4.5%——换成美元后正好抵消,超额收益为零。

这个命题在逻辑上很完美:如果存在确定性的正超额收益,套利资金会把它抹平。但它忽略了一个关键前提:汇率风险被充分定价,且投资者风险中性。现实中,这两个条件都不成立。

import numpy as np

# 简例:USD 利率 5%,JPY 利率 0.5%
i_usd = 0.05
i_jpy = 0.005
uip_predicted_jpy_depreciation = i_usd - i_jpy
print(f"UIP 预测日元对美元年贬值: {uip_predicted_jpy_depreciation:.2%}")

# 若实际只贬值 2%,则美元投资者的多头 carry 净赚
actual_depreciation = 0.02
carry_excess = (i_usd - i_jpy) - actual_depreciation
print(f"实际贬值 2% 时,Carry 超额收益: {carry_excess:.2%}")
python

二、远期汇率偏差:数据到底怎么说?#

Fama(1984)的经典回归把 UIP 可检验化:

Δs_{t+1} = α + β(f_t − s_t) + ε_{t+1}
plaintext
  • f_t − s_t:远期升贴水,等于利差(抛补利率平价 CIP 成立时)。
  • UIP 要求 β = 1:远期升水 1%,下一年外币即期汇率升值 1%。

实证结果令人惊讶:绝大多数 G10 货币对的 β 显著为负。也就是说,远期市场「预测」高息货币会贬值,实际上高息货币却往往升值或贬得不够。这就是远期汇率偏差(Forward Rate Bias),也是 Carry Trade 收益的来源。

这组模拟虽然简化,但抓住了主要 stylized fact:现实中 β 经常在 −1 到 0 之间,与 UIP 的 +1 相去甚远。

Carry Trade 累积收益与 UIP 公平定价基准对比

三、为什么 UIP 会失效?三个互补的解释#

1. 风险溢价:你在赚的是「承担 Crash Risk 的保险费」#

高息货币通常对应高增长、高风险、高杠杆的经济体。当全球风险偏好下降(Risk-Off),资金涌向低息避险货币,高息货币可能瞬间崩盘。Carry Trade 的正收益,可以被理解为持续收取的保险费,偶尔被一次性巨亏冲销。

学术上,这对应「外汇风险溢价」。远期汇率不预测未来即期,而是即期加风险溢价。高息货币「应该」贬值,但风险溢价让它升值或贬得少。

2. 非抛补套利者的资金约束与缓慢资本流动#

即便存在偏离,套利者也受限于:

  • 杠杆约束:不能无限借钱。
  • 止损与追加保证金:短期波动会强制平仓。
  • 机构授权:很多资金不能裸空货币。

这意味着偏离可以长期存在,甚至数十年不衰减。

3. 央行干预与干预预期#

高息国家央行有时通过升息或外汇干预阻止本币过度贬值,低息国家央行则可能乐见本币贬值。这种非对称干预会让「利差→贬值」的传导受阻。

四、用 Python 搭一个简化 Carry Trade 回测#

下面演示一个经典的「分位组合」Carry Trade:每期按利差排序,做多前 30% 高息货币,做空后 30% 低息货币,等权重,月度再平衡。

这个简化模型显示:Carry Trade 的收益分布是正偏但肥左尾的。大部分时间小赚,偶尔大亏。这也解释了为什么 2008 年 9 月 AUDJPY 单月跌幅可以超过 20%。

Carry Trade 收益分布:中位数为正,但左侧存在厚尾崩溃

五、实务中的风险管理:不是不做,而是怎么做#

Carry Trade 不是「买高息躺平」。实务中常见的风控手段包括:

  1. 波动率缩放(Volatility Scaling):高波动时减仓。Carry Trade 崩溃往往伴随波动率飙升,动态降杠杆可以显著降低最大回撤。
  2. 相关性约束:避免同时重仓同一风险因子(如商品货币 AUD/CAD/NOK)。
  3. 尾部对冲:买入低delta的避险货币看涨期权,对冲极端风险。
  4. 宏观过滤器:只在风险偏好扩张期(如 VIX 低于中枢、信用利差收窄)建仓。

六、结语#

远期汇率偏差是外汇市场最持久的「异象」之一。UIP 的失效不是模型错了,而是它的假设——风险中性、无摩擦套利、风险被充分定价——在现实中不成立。

Carry Trade 赚的不是「免费午餐」,而是承担崩溃风险的风险溢价。它像卖保险:平时收保费,出事时赔付。真正的问题不是「有没有 alpha」,而是:

  • 保费是否足以覆盖潜在的巨额赔付?
  • 你的杠杆和止损机制是否会让你在赔付来临前先被清盘?
  • 你的组合是否在单一风险事件上过度暴露?

理解了这些,Carry Trade 就不再是一个简单的「高息做多」信号,而是一个需要持续风险预算和动态调整的因子策略。

本文代码均在 Python 3 环境下可直接运行,数据为模拟生成,仅用于教学演示,不构成任何投资建议。

远期汇率偏差与 Carry Trade:UIP 失效的持久性
https://blog.halo26812.eu.org/blog/forward-rate-bias-carry-trade
Author halo
Published at 2026年8月27日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨