halo 的技术博客

返回

核心结论:负互换利差不是错误定价,是资产负债表的挂牌价格。 把均衡利差拆开,30 年期的 −67.03bp 里有 −50.00bp(74.6%) 是杠杆率资本占用一项贡献的,而这一项与利率、信用、期限全都无关——它只跟”这笔头寸要占多少股本”有关。

教科书对负利差的描述是这样的:互换固定端支付的是浮动利率的期望,国债收益率含有信用与流动性溢价,所以互换利率应该更高,利差为正。一旦利差转负,意味着”无风险的国债收益率反而高于互换利率”,那就应该有人买国债、支付固定端,把这个价差赚回来。

这笔交易的 carry 是实打实的。问题在于它十年没被做掉。

左:利差为负不是错价,而是回购利差、杠杆率占用、利差 VaR、库存惩罚四项的加总,重构误差 8.67e-19;右:关掉资本约束后利差精确回到 −5.00bp,恰好等于回购利差

一个持续十年、方向一致、人人都看得见的”套利机会”,最可能的解释不是所有人都瞎了,而是它根本不是套利,它是一个价格。这篇文章要回答的是:这个价格在给什么东西定价,以及为什么它长期不会回到零。

一、先把交易本身说清楚#

互换利差的定义:

互换利差 = 同期限利率互换固定利率 − 同期限国债收益率
plaintext

利差为负,意味着你可以:

  1. 买入国债(收到国债收益率 y)
  2. 在利率互换中支付固定端(付出互换利率 s + y,收到浮动端)
  3. 用回购市场为国债头寸融资(付出回购利率)

两条腿的久期敞口互相抵消,剩下的是一个纯粹的价差。如果利差是 −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 bp7.5%真实现金成本
杠杆率资本占用−50.00 bp74.6%监管政策决定
利差 VaR 占用−8.03 bp12.0%风险模型决定
库存惩罚−4.00 bp6.0%需求失衡决定
合计−67.03 bp100%

重构误差 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, cap
python

检验必须在 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 精确等于门槛,偏差 1.39e-17;右:监管旋钮直接定价,斜率精确等于 −ROE 门槛

顺带一个容易被忽略的读数:ROE 过零点在 −5.00bp,精确等于负的回购利差,与资本占用完全无关。资本影响的是”赚多少”,不影响”赚不赚”。所以利差在 −5bp 到 −63bp 之间的整个区间,这笔交易都是赚钱的(正 carry),只是赚得不够付股本成本——“有利润”和”值得做”是两回事,而公共讨论几乎总是混淆这两个。

四、期限结构:为什么长端更负#

实盘观察里,30 年利差比 10 年更负,10 年比 2 年更负。模型给出的原因干净得有点无趣:

期限久期杠杆率项VaR 项合计利差
2Y1.89−50.00−0.88−59.88 bp
5Y4.45−50.00−2.07−61.07 bp
10Y8.11−50.00−3.76−62.76 bp
20Y13.59−50.00−6.31−65.31 bp
30Y17.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_cum
python

结果:

  • 中位实现 ROE +9.32%,均值 +8.20%
  • 5 分位 −7.26%
  • 被迫平仓概率 2.19%(亏掉 60% 资本触发强平)
  • 未爆仓组 ROE 中位 +9.57%,爆仓组 −43.45%
  • 中位最大浮亏 −19.73% 资本
  • 爆仓中位发生在第 348 日——目标持有 756 日,大多数死在收敛之前

左:280 条路径显示均衡回归掩盖不了制度冲击;中:被迫平仓 2.19%,左尾承担全部风险;右:加杠杆提高中位收益,同时把左尾接到强平线上

安慰剂 D:把制度冲击关掉(jump_p=0),爆仓率从 2.19% 降到 1.39%——保留了基准的 63.5%

这条读数需要诚实解读:制度冲击贡献了约 36% 的爆仓风险,但剩下 64% 是纯粹的日常波动累积。也就是说,即使世界上不存在 2020 年 3 月那种流动性危机,这笔交易照样有 1.39% 的概率在三年内被强平。“只要不遇到危机就安全”是错的。

七、杠杆扫描:均值和中位数在 2x 处就分道扬镳#

既然中位 ROE 有 9.32%,加杠杆看起来很诱人。扫描结果:

杠杆爆仓率ROE 中位ROE 均值
1x2.19%+9.32%+8.20%
2x27.45%+13.85%−10.47%
3x49.38%−10.08%−64.03%
5x70.00%−91.08%−232.66%
20x91.72%−1260.00%−2709.51%

在 2x 处,中位数还在上涨(+13.85%)而均值已经翻负(−10.47%)。

这个背离是整篇文章最实用的一条。如果你用中位数或者”大多数年份的表现”来评估杠杆水平,2x 看起来是改进;如果你用期望值,它已经是毁灭性的。而现实中的业绩报告、季度回顾、同业比较,绝大多数看的是前者。

到 3x 时两个口径终于一致地变负,但那时爆仓率已经接近 50%。没有一个杠杆水平是”稍微激进一点”——从 1x 到 2x 就已经跨过了期望值的悬崖。

八、样本量红线:十年数据里只有三个独立观测#

最后一条,也是对所有基于历史利差做判断的人最不友好的一条。

利差是高度自相关的 OU 过程,日 AR(1) 系数 0.9976。有效独立观测数:

观测期日观测数有效独立观测样本均值 95% 区间
1 年2520.3±32.67 bp
5 年12601.5±14.61 bp
10 年25203.0±10.33 bp
20 年50406.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,模拟结论本身是稳的。

九、这个框架能预测什么#

把上面的东西倒过来用,得到几条可证伪的预测:

  1. 杠杆率要求上调 → 利差立即多负 10bp/pp,而且是全期限平移,不改变斜率
  2. SLR 豁免 → 利差收窄约 50bp,豁免到期后重新走阔
  3. 利差波动率上升 → 期限结构变陡(长端相对更负),因为只有 VaR 项含久期
  4. 银行 ROE 门槛下降(例如低利率环境下资本充裕)→ 利差收窄,斜率同样等于杠杆率占用
  5. 养老金接收固定需求变化 → 只影响几个 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 更贵。

互换利差为负:无风险利率反而高于国债收益率的十年异象
https://blog.halo26812.eu.org/blog/swap-spread-negative-anomaly
Author halo
Published at 2026年8月7日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨