互换利差为负:无风险利率反而高于国债收益率的十年异象
30 年互换利差常年为负,教科书说这是套利——买国债 + 支付固定端,锁定正 carry 持有到期。受控模拟把均衡利差拆成四项可加成本(重构误差 8.67e-19):回购利差 −5.00bp、杠杆率资本占用 −50.00bp(独占 74.6%)、利差 VaR −8.03bp、库存惩罚 −4.00bp,合计 −67.03bp。决定性对照是安慰剂 A:关掉全部资本约束后利差精确回到 −5.00bp(误差 0.000e+00),恰好等于回购利差——超出部分全是资产负债表租金,不是错价。自洽性检验在 Q=0 下 ROE 精确等于 10% 门槛(偏差 1.39e-17)。监管旋钮斜率精确等于 −ROE 门槛:杠杆率每加 1pp 利差多负 10bp,SLR 豁免让利差瞬间收窄 50bp。期限结构的唯一驱动是久期(斜率 −0.464bp/久期年)。3 年持仓 2 万路径:中位 ROE +9.32% 但 5 分位 −7.26%,被迫平仓 2.19%、爆仓组 −43.45%、中位发生在第 348 日。杠杆扫描出现背离:2x 时中位涨到 +13.85% 而均值已翻负 −10.47%。AR(1)=0.9976 把 2520 个日观测压成 3.0 个有效观测,10 年均值 95% 区间 ±10.33bp。12 宇宙 CV=0.0975
核心结论:负互换利差不是错误定价,是资产负债表的挂牌价格。 把均衡利差拆开,30 年期的 −67.03bp 里有 −50.00bp(74.6%) 是杠杆率资本占用一项贡献的,而这一项与利率、信用、期限全都无关——它只跟”这笔头寸要占多少股本”有关。
教科书对负利差的描述是这样的:互换固定端支付的是浮动利率的期望,国债收益率含有信用与流动性溢价,所以互换利率应该更高,利差为正。一旦利差转负,意味着”无风险的国债收益率反而高于互换利率”,那就应该有人买国债、支付固定端,把这个价差赚回来。
这笔交易的 carry 是实打实的。问题在于它十年没被做掉。

一个持续十年、方向一致、人人都看得见的”套利机会”,最可能的解释不是所有人都瞎了,而是它根本不是套利,它是一个价格。这篇文章要回答的是:这个价格在给什么东西定价,以及为什么它长期不会回到零。
一、先把交易本身说清楚#
互换利差的定义:
互换利差 = 同期限利率互换固定利率 − 同期限国债收益率plaintext利差为负,意味着你可以:
- 买入国债(收到国债收益率 y)
- 在利率互换中支付固定端(付出互换利率 s + y,收到浮动端)
- 用回购市场为国债头寸融资(付出回购利率)
两条腿的久期敞口互相抵消,剩下的是一个纯粹的价差。如果利差是 −67bp,你每年收到的毛 carry 就是 67bp 减去融资成本。
听起来确实像白捡的钱。所以我们把它建成一个受控模拟,让每一 bp 的来源都由构造已知,看看这 67bp 到底要付给谁。
二、四项成本,一个恒等式#
均衡利差建模为四项之和:
def c_balance_sheet(T, slr=SLR_REQ, roe=ROE_HURDLE, sig_d=SIG_SPD_D):
"""资产负债表成本(年化,占名义比例)= 杠杆率占用 + 利差 VaR 占用"""
lev_cap = slr # 与期限无关
var_cap = Z_VAR * sig_d * np.sqrt(VAR_HOR) * duration(T) # 随久期放大
return roe * (lev_cap + var_cap), roe * lev_cap, roe * var_cap
def eq_spread(T, slr=SLR_REQ, roe=ROE_HURDLE, repo=REPO_OIS,
gamma=GAMMA, Q=Q_BASE, sig_d=SIG_SPD_D):
"""市场出清均衡利差 = -(回购利差 + 资产负债表成本 + 库存惩罚)"""
cbs, _, _ = c_balance_sheet(T, slr, roe, sig_d)
return -(repo + cbs + gamma * Q)python真值由构造给定:杠杆率要求 5%、股本回报门槛 10%、回购-OIS 利差 5bp、库存惩罚系数 4bp。30 年期的分解结果:
| 成本项 | 数值 | 占比 | 性质 |
|---|---|---|---|
| 回购利差 | −5.00 bp | 7.5% | 真实现金成本 |
| 杠杆率资本占用 | −50.00 bp | 74.6% | 监管政策决定 |
| 利差 VaR 占用 | −8.03 bp | 12.0% | 风险模型决定 |
| 库存惩罚 | −4.00 bp | 6.0% | 需求失衡决定 |
| 合计 | −67.03 bp | 100% |
重构误差 8.67e-19——加总恒等式成立,不存在隐藏项。
真正说明问题的是三条安慰剂:
安慰剂 A:关掉全部资本约束(slr=0、gamma=0、VaR 波动=0)。利差塌到 −5.00bp,理论值 −repo = −5.00bp,误差 0.000e+00。
这条是决定性的。它说明:在一个没有资本约束的世界里,均衡利差精确等于回购利差,一分不多。所以真实世界里超出 −5bp 的那 62bp,全部是资产负债表的租金。 它不是市场的错误,是市场对”占用银行股本”这项服务的收费。
安慰剂 B:需求完全均衡(Q=0)。利差只从 −67.03 收窄到 −63.03bp,仍然是负的。这排除了一个流行说法——“负利差是因为养老金大量接收固定端造成的供需失衡”。需求失衡确实贡献了 4bp,但即使需求完全平衡,利差照样是 −63bp。失衡不是必要条件。
安慰剂 C:所有摩擦归零。利差精确为 −0.000e+00——真值为零,说明模型里没有加性常数在偷偷制造负号。
三、ROE 自洽性:均衡处的套利恰好不赚钱#
如果这 67bp 真的是资本的价格,那么在均衡利差下做这笔交易,ROE 应该刚好等于门槛回报——不多不少。这是整个框架的自洽性检验。
def trade_roe(spread, T, slr=SLR_REQ, repo=REPO_OIS, sig_d=SIG_SPD_D):
"""买国债 + 支付固定:年 carry = -spread - repo;占用资本 = 杠杆 + VaR"""
carry = -spread - repo
cap = slr + Z_VAR * sig_d * np.sqrt(VAR_HOR) * duration(T)
return carry / cap, carry, cappython检验必须在 Q=0 下做(库存惩罚本身就是均衡让渡出来的超额租金,不该算进”刚好达标”):
- Q=0 时:利差 −63.03bp → ROE = 10.00000000%,门槛 10.0000%,偏差 1.39e-17
- Q=1 基准:利差 −67.03bp → ROE = 10.6893% = 门槛 10.00% + 库存租金 0.6893pp
- 库存租金理论值 gamma×Q/cap = 0.6893pp,误差 6.07e-18
框架自洽。这意味着:−63bp 不是异常,是均衡。 银行做这笔交易赚到的正好是它的资本成本,没有超额利润,所以没有动力把利差推回零。

顺带一个容易被忽略的读数:ROE 过零点在 −5.00bp,精确等于负的回购利差,与资本占用完全无关。资本影响的是”赚多少”,不影响”赚不赚”。所以利差在 −5bp 到 −63bp 之间的整个区间,这笔交易都是赚钱的(正 carry),只是赚得不够付股本成本——“有利润”和”值得做”是两回事,而公共讨论几乎总是混淆这两个。
四、期限结构:为什么长端更负#
实盘观察里,30 年利差比 10 年更负,10 年比 2 年更负。模型给出的原因干净得有点无趣:
| 期限 | 久期 | 杠杆率项 | VaR 项 | 合计利差 |
|---|---|---|---|---|
| 2Y | 1.89 | −50.00 | −0.88 | −59.88 bp |
| 5Y | 4.45 | −50.00 | −2.07 | −61.07 bp |
| 10Y | 8.11 | −50.00 | −3.76 | −62.76 bp |
| 20Y | 13.59 | −50.00 | −6.31 | −65.31 bp |
| 30Y | 17.29 | −50.00 | −8.03 | −67.03 bp |
杠杆率项在所有期限上都精确等于 −50.00bp,因为杠杆率约束看的是名义敞口,不看风险。期限结构的斜率 −0.464bp/久期年 完全由 VaR 项贡献。
这有个直接的实践含义:如果你观察到某段时间期限结构变陡(长端相对更负),驱动因素多半是利差波动率上升(VaR 项放大),而不是杠杆率政策变化——因为后者会把整条曲线平移,不改变斜率。
五、剂量反应:监管旋钮在直接定价#
把杠杆率要求从 0 扫到 8%:
| 杠杆率要求 | 均衡利差 |
|---|---|
| 0.0% | −17.03 bp |
| 2.0% | −37.03 bp |
| 5.0%(基准) | −67.03 bp |
| 8.0% | −97.03 bp |
斜率 −0.100000,理论值 −ROE = −0.100000,误差 1.39e-17。
杠杆率要求每提高 1 个百分点,均衡利差就多负 10bp。 这不是拟合出来的经验关系,是恒等式:多占 1pp 股本,就要多赚 1pp × 10% ROE = 10bp 来覆盖它。
最有意思的是 SLR 豁免这个自然实验。2020 年 4 月,监管曾暂时允许国债和准备金不计入杠杆敞口。在模型里把 slr 设为 0:利差从 −67.03bp 收窄到 −17.03bp,瞬间收窄 50bp。
这是个可证伪的预测:如果负利差真的是资本约束造成的,那么豁免期利差应该显著收窄,豁免到期后应该重新走阔。如果它是”市场错误”,豁免不该有任何影响。
六、持有到期?先算算能不能活到那天#
这是套利叙事里最脆弱的一环。“持有到期收敛”在数学上没错——利差最终会回到均衡。但你的资本不是持有到期的,你的风控是逐日盯市的。
2 万条路径、3 年持仓、利差按 OU 过程回归(半衰期 1.16 年),叠加平均每 5 年一次的制度性冲击(中枢下移 25bp,半衰期 60 日):
# 持仓 = 买国债 + 支付固定端。利差上行(回归 0)赚钱,利差更负 = 亏损
mtm = (path - s_star) * DV01_30
carry_cum = np.outer(np.ones(N_PATH), np.arange(1, HOLD_D + 1)) / TD * carry_eq
pnl = mtm + carry_cumpython结果:
- 中位实现 ROE +9.32%,均值 +8.20%
- 5 分位 −7.26%
- 被迫平仓概率 2.19%(亏掉 60% 资本触发强平)
- 未爆仓组 ROE 中位 +9.57%,爆仓组 −43.45%
- 中位最大浮亏 −19.73% 资本
- 爆仓中位发生在第 348 日——目标持有 756 日,大多数死在收敛之前

安慰剂 D:把制度冲击关掉(jump_p=0),爆仓率从 2.19% 降到 1.39%——保留了基准的 63.5%。
这条读数需要诚实解读:制度冲击贡献了约 36% 的爆仓风险,但剩下 64% 是纯粹的日常波动累积。也就是说,即使世界上不存在 2020 年 3 月那种流动性危机,这笔交易照样有 1.39% 的概率在三年内被强平。“只要不遇到危机就安全”是错的。
七、杠杆扫描:均值和中位数在 2x 处就分道扬镳#
既然中位 ROE 有 9.32%,加杠杆看起来很诱人。扫描结果:
| 杠杆 | 爆仓率 | ROE 中位 | ROE 均值 |
|---|---|---|---|
| 1x | 2.19% | +9.32% | +8.20% |
| 2x | 27.45% | +13.85% | −10.47% |
| 3x | 49.38% | −10.08% | −64.03% |
| 5x | 70.00% | −91.08% | −232.66% |
| 20x | 91.72% | −1260.00% | −2709.51% |
在 2x 处,中位数还在上涨(+13.85%)而均值已经翻负(−10.47%)。
这个背离是整篇文章最实用的一条。如果你用中位数或者”大多数年份的表现”来评估杠杆水平,2x 看起来是改进;如果你用期望值,它已经是毁灭性的。而现实中的业绩报告、季度回顾、同业比较,绝大多数看的是前者。
到 3x 时两个口径终于一致地变负,但那时爆仓率已经接近 50%。没有一个杠杆水平是”稍微激进一点”——从 1x 到 2x 就已经跨过了期望值的悬崖。
八、样本量红线:十年数据里只有三个独立观测#
最后一条,也是对所有基于历史利差做判断的人最不友好的一条。
利差是高度自相关的 OU 过程,日 AR(1) 系数 0.9976。有效独立观测数:
| 观测期 | 日观测数 | 有效独立观测 | 样本均值 95% 区间 |
|---|---|---|---|
| 1 年 | 252 | 0.3 | ±32.67 bp |
| 5 年 | 1260 | 1.5 | ±14.61 bp |
| 10 年 | 2520 | 3.0 | ±10.33 bp |
| 20 年 | 5040 | 6.0 | ±7.30 bp |
解析 SE 5.27bp 对实测 4.55bp,比值 0.863(渐近公式在强自相关下略保守,量级一致)。
十年的日度数据,等价于三个独立观测。
具体后果:要以 |t|=2 检出一个 10bp 的中枢移动,需要 11.1 年连续数据。而利差半衰期是 1.16 年,一次制度冲击的记忆就占样本的 12%。
这意味着,那些”过去十年互换利差平均 −45bp,现在 −67bp,明显偏离,应该做收敛”的判断,在统计上是空的——±10bp 的置信区间下,−45 和 −67 甚至不能被可靠区分为两个不同的中枢,而实际差距还叠加着监管政策在这十年里的多次调整。
12 个独立宇宙的爆仓率 CV = 0.0975,模拟结论本身是稳的。
九、这个框架能预测什么#
把上面的东西倒过来用,得到几条可证伪的预测:
- 杠杆率要求上调 → 利差立即多负 10bp/pp,而且是全期限平移,不改变斜率
- SLR 豁免 → 利差收窄约 50bp,豁免到期后重新走阔
- 利差波动率上升 → 期限结构变陡(长端相对更负),因为只有 VaR 项含久期
- 银行 ROE 门槛下降(例如低利率环境下资本充裕)→ 利差收窄,斜率同样等于杠杆率占用
- 养老金接收固定需求变化 → 只影响几个 bp,不足以解释符号
第 5 条特别值得强调,因为它和主流叙事相反。安慰剂 B 已经证明:需求失衡从 Q=1 降到 Q=0,利差只从 −67 走到 −63。如果你的解释框架把负利差主要归因于养老金需求,那它无法解释剩下的 63bp。
十、结论#
负互换利差是一个持续十年、方向一致、所有人都看得见的现象,但它不是套利机会——它是资产负债表的挂牌价格。
模型给出的分解是:74.6% 来自杠杆率资本占用,12.0% 来自利差 VaR,7.5% 来自回购融资,6.0% 来自需求失衡。关掉资本约束,利差精确回到 −5.00bp(误差 0.000e+00);在均衡处做这笔交易,ROE 精确等于股本门槛(偏差 1.39e-17)。
没有超额利润,所以没有收敛的力量。
对想做这笔交易的人,三个数字值得记住:中位 ROE +9.32% 但 5 分位 −7.26%;2x 杠杆时中位数还在涨而均值已翻负;爆仓中位发生在第 348 日,早于目标持有期的一半。这不是一笔”等就能赚”的交易,是一笔”在别人被迫平仓时你还有资本”的交易。
而最后那条样本量红线适用于所有人:十年日度数据只有三个有效独立观测,95% 区间 ±10.33bp。在这个精度下,大部分关于”利差偏离历史均值”的判断,说的其实是噪音。
本文所有数字来自固定种子(20260807)的受控模拟,真值由构造给定,不是对历史数据的拟合。模型刻意做了简化:假设银行 ROE 门槛恒定、忽略互换的初始保证金(会进一步加重资本占用)、忽略国债在回购市场上的特殊券溢价。这些简化都会让负利差看起来比真实情况更温和——换句话说,真实世界的资本成本只会比 −63bp 更贵。