量化交易中文教材

第 07 章 互换

对应原书:Hull《Options, Futures, and Other Derivatives》第 9 版(Global Edition)第 7 章 Swaps。

学习目标

读完本章,你应当能够:

  1. 写出普通利率互换的现金流表,理解"期初定息、期末支付、只付差额、名义本金不交换",并会用互换把固定利率负债/资产转换为浮动利率,或反之。
  2. 把利率互换看成"浮息债券多头 + 固息债券空头",或看成一串 FRA 的组合,并用这两种方法分别估值、互相验证。
  3. 理解互换利率为什么定义了一组平价债券,能用互换利率自举(bootstrap)零息曲线。
  4. 对固定对固定货币互换写出现金流,并用"两个债券之差"或"一串远期外汇合约"估值。
  5. 说清"比较优势论"在利率互换中为什么多半是假象;理解互换的信用敞口 \(\max(V,0)\) 及其随期限的形状,区分信用风险与市场风险。
  6. 了解基差互换、摊还互换、CMS、后置互换、股权互换、波动率互换、CDS 等变体各自是什么、在本册哪一章再展开。

读前导读

这一章在解决什么问题。 互换是一份"多期交换现金流"的合约。本章回答:互换怎么运作、为什么有人用、新互换的固定利率怎么定、已有互换值多少、对手违约会亏多少。CFA 二级你已经学过互换的估值:用贴现因子求互换利率 \(\frac{1-d_n}{\sum d_i}\),把互换看成"固息债减浮息债"或"一串远期",货币互换也学过。所以本章大部分内容你会觉得熟悉。

本章比 CFA 深的地方有三处。第一,"刚重置的浮息债价值等于面值"这个事实在 CFA 中是直接给出的,本章给出理由,理解它之后你会明白为什么浮动端的利率风险只到下一个重置日为止。第二,两种估值方法互相验证:债券法与 FRA 法在数学上是同一个等式的两种写法,货币互换的两种方法也一样,靠的是第 05 章的利率平价。第三,信用敞口 \(\max(V,0)\) 和代码 B 的预期正敞口(EE)模拟:CFA 只定性地说"利率互换的信用风险在中期最大",本章用模拟把这条曲线画出来,这是 CVA 计算的出发点。此外,7.3 节对"比较优势论"的批评值得一读,它是一个用期权思维拆穿表面收益的好例子。

需要先想起来的数学。

  • 贴现因子与年金。 记 \(d_i=e^{-r_it_i}\) 为 \(t_i\) 时 1 元的现值。固定端每期付 \(c\),固息债价值为 \(c\sum_i d_i+L\,d_n\)。\(\sum_i d_i\) 就是"每期付 1 元的年金现值",第 04 章平价收益率公式中的 \(A\)。见 第 00 册第 03 章 积分(连续复利与贴现)。
  • 倒推(逆向归纳)。 从最后一期往前,一期一期证明某个性质成立。浮息债等于面值的证明就用这个方法:最后一期成立,假设下一期成立能推出这一期成立,于是每一期都成立。见 第 00 册第 08 章 读懂数学证明与符号(归纳法)。
  • \(\max(V,0)\) 与期望。 \(\mathbb E[\max(V,0)]\) 是"只计正值部分的平均",形状与看涨期权的收益相同。若 \(V\) 服从均值为 0、标准差为 \(s\) 的正态分布,\(\mathbb E[\max(V,0)]=s/\sqrt{2\pi}\approx0.4s\)。例:\(s=4\%\) 本金时,预期正敞口约 1.6% 本金。见 第 00 册第 07 章 概率中的分析工具。
  • 用导数找最大值。 函数在最高点处导数为零。7.7 节利率互换 EE 的"驼峰"位置可以这样估算。见 第 00 册第 02 章 导数与泰勒展开。

怎么读这一章。 必读:7.1.3(互换 = 两个债券之差)、7.4.2(互换利率是平价收益率)、7.5(两种估值方法,建议亲手把例 7.2、7.3 都算一遍)、7.6.3(货币互换估值)、7.7.1(信用敞口)。7.1.1–7.1.2、7.1.4–7.1.5 与 CFA 一致,快读。7.2 是惯例与法律文件,需要时回查。7.3 比较优势论可以读批评部分(7.3.2)。7.8 是速览,知道名字即可。量化实战代码 B 的 EE 曲线是本章最有量化味道的部分。


7.0 引言:什么是互换

场外互换市场起源于 1981 年 IBM 与世界银行之间的一笔货币互换:世界银行有美元借款,IBM 有德国马克和瑞士法郎借款;世界银行(直接借马克、法郎受限)替 IBM 支付其外币借款的利息,IBM 替世界银行支付美元借款的利息。此后互换市场爆发式增长。据 BIS 统计,场外衍生品中约 58.5% 是利率互换,约 4% 是货币互换——利率互换是全世界规模最大的衍生品。

**互换(swap)**是两家公司之间约定在未来交换现金流的场外协议,合约规定支付日期和每笔现金流的计算方式,通常涉及利率、汇率或其他市场变量的未来值。

远期合约可以看作最简单的互换。例如 2016 年 3 月 1 日约定 1 年后以 1,500 美元/盎司买入 100 盎司黄金,等价于一笔"在 2017 年 3 月 1 日支付 150,000 美元、收取 \(100S\)(\(S\) 为届时金价)"的互换。区别在于远期只在一个日期交换,互换通常在多个日期交换。所以你可以先记住一句话:互换 ≈ 一串远期。本章的所有估值方法都从这句话出发。

最常见的普通(plain vanilla)利率互换是以 LIBOR 交换固定利率。估值需要"无风险"折现率。传统上用 LIBOR 作为无风险利率的代理,这样折现率和互换的参考利率相同,估值大大简化。2008 年后,对有抵押交易,市场改用其他无风险利率(OIS 利率)。本章先假设 LIBOR 就是无风险折现率,下一章(第 9 章)再修正这一假设。

现状补充:美元 LIBOR 已于 2023 年 6 月后停止主要期限的报价,新的美元利率互换以 SOFR(担保隔夜融资利率)为浮动参考利率,本质上是第 9 章的隔夜指数互换(OIS)。本章以 LIBOR 为例讲解的机制、估值方法、自举思想完全不变,只是浮动利率换成了"隔夜利率的复利"。读者在实际系统中看到 "LIBOR" 时,可以理解为"某个浮动参考利率"。


7.1 利率互换的机制

7.1.1 LIBOR 与浮动利率

LIBOR(London Interbank Offered Rate)是 AA 评级银行向其他银行借款的利率,长期以来是国际金融市场贷款的参考利率。例如,一笔 5 年期债券的利率为"6 个月 LIBOR + 0.5%":寿命分 10 个半年期,每期利率在期初按当时的 6 个月 LIBOR + 0.5% 确定,在期末支付。

利率互换(interest rate swap):一方按预定的固定利率在名义本金(notional principal)上向对方支付利息若干年,换取对方按浮动利率在同一本金、同一期限上支付的利息。以 LIBOR 换固定利率的互换称为 "LIBOR-for-fixed" 互换。

7.1.2 例子:Microsoft 与 Intel

2014 年 3 月 5 日开始一笔 3 年期互换:Microsoft 按年利率 5%(半年复利)在 1 亿美元本金上向 Intel 支付固定利息,Intel 向 Microsoft 支付 6 个月 LIBOR,每 6 个月交换一次。Microsoft 是固定利率支付方(fixed-rate payer),Intel 是浮动利率支付方(floating-rate payer)。

  • 第一次交换在 2014 年 9 月 5 日:Microsoft 付 \(0.5\times5\%\times100=2.5\) 百万;Intel 付按 2014 年 3 月 5 日的 LIBOR(4.2%)计算的 \(0.5\times0.042\times100=2.1\) 百万。第一笔交换在签约时就已经确定,没有不确定性。
  • 第二次在 2015 年 3 月 5 日:浮动支付按 2014 年 9 月 5 日的 LIBOR(4.8%)计算,为 2.4 百万。

浮动利率在支付日前 6 个月确定(期初定价、期末支付,reset in advance, paid in arrears)。实际操作中只支付差额:Microsoft 在 2014 年 9 月 5 日净付 0.4 百万,2015 年 3 月 5 日净付 0.1 百万。

原书表 7.1 给出完整的 6 次现金流(单位:百万美元,忽略计息天数):

日期 6 个月 LIBOR(%) 收浮动 付固定 Microsoft 净现金流
2014-03-05 4.20
2014-09-05 4.80 +2.10 −2.50 −0.40
2015-03-05 5.30 +2.40 −2.50 −0.10
2015-09-05 5.50 +2.65 −2.50 +0.15
2016-03-05 5.60 +2.75 −2.50 +0.25
2016-09-05 5.90 +2.80 −2.50 +0.30
2017-03-05 +2.95 −2.50 +0.45

注意错位:每一行的浮动收入用的是上一行的 LIBOR。本金只用于计算利息、从不交换,所以称为"名义"本金。

7.1.3 互换 = 两个债券之差

一个关键的观察:在互换结束时,假想双方再各付对方 1 亿美元本金,这不改变互换的价值(两笔相同金额互相抵消)。加入这一笔后(原书表 7.2,最后一期浮动收 102.95、固定付 102.50),Microsoft 的现金流恰好是:

  • 做多一只面值 1 亿、6 个月 LIBOR 浮息债券;
  • 做空一只面值 1 亿、5% 半年付息的固定利率债券。

Intel 正好相反。这也解释了为什么浮动利率要提前 6 个月确定——浮息债券本来就是期初定息、期末付息的。这一分解是 7.7 节"债券价格法"估值的基础。

7.1.4 用互换转换负债与资产

转换负债(原书图 7.2):

  • Microsoft 原有一笔 LIBOR + 0.1% 的浮动借款。进入互换后:付 LIBOR + 0.1%,收 LIBOR,付 5%,净付 5.1% 固定——浮动负债变成了固定负债。
  • Intel 原有一笔 5.2% 的 3 年期固定借款:付 5.2%,付 LIBOR,收 5%,净付 LIBOR + 0.2%——固定负债变成了浮动负债。

转换资产(原书图 7.3):

  • Microsoft 持有收益 4.7% 的债券:收 4.7%,收 LIBOR,付 5%,净得 LIBOR − 0.3%。
  • Intel 持有收益 LIBOR − 0.2% 的投资:收 LIBOR − 0.2%,付 LIBOR,收 5%,净得 4.8%。

做这类题的诀窍是把每一笔"收"和"付"列出来,相同的浮动利率项互相抵消,剩下的就是净结果。

7.1.5 金融中介与做市商

两家非金融公司通常不会直接签互换,而是各自与银行签约。美国普通 LIBOR-for-fixed 互换中,金融机构在一对对冲交易上约赚 3–4 个基点。

原书图 7.4:金融机构对 Intel 付 4.985%、收 LIBOR,对 Microsoft 收 5.015%、付 LIBOR,每年稳赚 \(0.03\%\times1\) 亿 \(=3\) 万美元。Microsoft 的最终借款成本变为 \(5.015\%+0.1\%=5.115\%\),Intel 为 \(5.2\%+\text{LIBOR}-4.985\%=\text{LIBOR}+0.215\%\)。资产转换的版本(图 7.5)中,Microsoft 得 LIBOR − 0.315%,Intel 得 4.785%。

重要的是:金融机构签的是两笔独立的合约。即使一方违约,它仍须对另一方履约。那 3 个基点的价差,部分就是在补偿这一违约风险。

做市商(market maker):两家公司恰好同时需要方向相反的互换不太可能,因此大型金融机构充当做市商,在没有对冲方时也接受互换(称为 warehousing swaps,"把互换放进仓库"),再用债券、FRA、利率期货等对冲风险。做市商的报价形如原书表 7.3:

期限(年) 买价 bid(%) 卖价 offer(%) 互换利率(%)
2 6.03 6.06 6.045
3 6.21 6.24 6.225
4 6.35 6.39 6.370
5 6.47 6.51 6.490
7 6.65 6.68 6.665
10 6.83 6.87 6.850

买价是做市商愿意支付的固定利率(做市商付固定、收 LIBOR),卖价是做市商愿意收取的固定利率。买卖价差约 3–4 个基点,两者的平均称为互换利率(swap rate)。美国标准互换是固定端每半年付息、浮动端每 3 个月付 LIBOR。

固定利率等于当前互换利率的新互换,价值为零。记 \(B_{\text{fix}}\)、\(B_{\text{fl}}\) 为互换对应的固定、浮动利率债券的价值,则新互换满足

\[ B_{\text{fix}}=B_{\text{fl}}. \tag{7.1} \]

推导拆解:由 (7.1) 可以直接解出互换利率,得到 CFA 中那个公式。设名义本金 \(L\),固定利率 \(K\),每年付 \(m\) 次,贴现因子 \(d_1,\dots,d_n\)。 固息债:\(B_{\text{fix}}=\frac{K}{m}L\sum_{i=1}^nd_i+L\,d_n\)。 浮息债:新互换的浮动端刚刚重置,价值等于面值,\(B_{\text{fl}}=L\)(7.5.1 节给出理由)。 令两者相等并约去 \(L\):\(\frac Km\sum d_i+d_n=1\),所以 \(K=m\cdot\frac{1-d_n}{\sum_i d_i}\)。 这就是 CFA 二级的互换利率公式,也是第 04 章平价收益率公式 \(c=(100-100d)m/A\) 去掉 100 后的形式。所以"互换利率是平价收益率"(7.4.2 节)不是新结论,而是 (7.1) 的另一种说法。


7.2 计息天数、确认书与营业日惯例

7.2.1 计息天数

6 个月 LIBOR 是美国货币市场利率,按 actual/360 报价(见第 6 章 6.1 节)。表 7.1 的第一笔浮动支付严格来说应是

\[ 100\times0.042\times\frac{184}{360}=2.1467\ \text{百万}, \]

因为 2014 年 3 月 5 日到 9 月 5 日共 184 天。一般地,浮动现金流为 \(LRn/360\)(\(L\) 为本金,\(R\) 为 LIBOR,\(n\) 为距上次支付的天数)。固定端通常按 actual/365 或 30/360 计息,所以各期固定支付不一定完全相等,而且固定利率不能直接与 LIBOR 比较:需要把 LIBOR 乘以 365/360,或者把固定利率乘以 360/365。为了讲清原理,本章其余部分忽略计息天数;实际系统中绝不能忽略。

7.2.2 确认书与 ISDA 主协议

**确认书(confirmation)是互换的法律协议,由双方代表签署。ISDA(International Swaps and Derivatives Association)制定的主协议(Master Agreement)**详细定义各种术语、违约时的处理方式等,覆盖双方之间所有未平仓交易;每笔新交易只需一份简短的确认书引用主协议。

原书 Business Snapshot 7.1 给出 Microsoft 与高盛之间(对应图 7.4)的假想确认书摘录:交易日 2014-02-27,生效日 2014-03-05,终止日 2017-03-05;固定端 Microsoft 付 5.015%,actual/365;浮动端高盛付美元 6 个月 LIBOR,actual/360;付息日为每年 3 月 5 日和 9 月 5 日;营业日惯例为 "following business day",节假日日历为美国。2016 年 3 月 5 日是周六,当期支付顺延到 2016 年 3 月 7 日。

7.2.3 营业日惯例

  • following:遇到非营业日,顺延到下一营业日;
  • modified following:同上,但若顺延后跨入下个月,则改为前一营业日;
  • preceding 与 modified preceding:方向相反,规则类推。

生成互换现金流时间表时,计息天数、营业日惯例、节假日日历三者缺一不可。这些模块看似琐碎,却是估值误差和对账差异最常见的来源。


7.3 比较优势论及其缺陷

7.3.1 论点

对互换流行的一种常见解释是:有些公司在固定利率市场有比较优势,有些在浮动利率市场有比较优势;各自去有优势的市场借款,再用互换转换成想要的形式,双方都能受益。

原书表 7.4 的例子:

固定利率 浮动利率
AAACorp 4.0% 6 个月 LIBOR − 0.1%
BBBCorp 5.2% 6 个月 LIBOR + 0.6%

BBBCorp 想借固定利率,AAACorp 想借浮动利率。BBBCorp 在固定市场比 AAACorp 多付 1.2%,在浮动市场只多付 0.7%。所以 BBBCorp 在浮动市场有比较优势(不是绝对更便宜,而是"多付得少"),AAACorp 在固定市场有比较优势。

直接互换(原书图 7.6):AAACorp 按 4% 借固定,BBBCorp 按 LIBOR + 0.6% 借浮动;AAACorp 向 BBBCorp 付 LIBOR,BBBCorp 向 AAACorp 付 4.35%。结果:

  • AAACorp 净付 \(4\%+\text{LIBOR}-4.35\%=\text{LIBOR}-0.35\%\),比直接借浮动省 0.25%;
  • BBBCorp 净付 \(\text{LIBOR}+0.6\%-\text{LIBOR}+4.35\%=4.95\%\),比直接借固定省 0.25%。

总收益公式:表观总收益恒为 \(a-b\),其中 \(a\) 为两家公司固定利率之差,\(b\) 为浮动利率之差。本例 \(a=1.2\%\),\(b=0.7\%\),总收益 0.5%。收益可以不均分。加入金融中介后(原书图 7.7),AAACorp 付 LIBOR − 0.33%,BBBCorp 付 4.97%,金融机构赚 4bp;三方收益 0.23%、0.23%、0.04%,合计仍为 0.5%。

7.3.2 批评:收益多半是假象

如果真有这样的收益,为什么价差在固定与浮动市场不同、且长期没有被套利消除?原因在于合约性质:4.0% 和 5.2% 是 5 年期固定利率,而 LIBOR − 0.1% 与 LIBOR + 0.6% 是 6 个月期利率。

  • 浮动利率市场中,贷款人每 6 个月可以重新审视利率;若借款人信用下降,可以提高利差,甚至拒绝续贷。
  • 固定利率贷款人没有这个选择权。
  • 低评级公司的违约概率随时间上升得比高评级公司快,所以 BBB 与 AAA 的 5 年期利差(1.2%)大于 6 个月期利差(0.7%)。

因此,BBBCorp 看似锁定了 4.97% 的固定成本,实际上只有在它能持续以 LIBOR + 0.6% 续借时才成立。如果它的信用恶化,续借利差升到 1.6%,成本就变成 5.97%。市场预期 BBBCorp 的利差在互换期内平均会上升,所以它的预期平均借款成本高于 4.97%。AAACorp 锁定 5 年 LIBOR − 0.33% 看似划算,但它承担了金融机构在互换上违约的风险。

结论:比较优势在利率互换中带来的"收益"多半是虚幻的,它反映的是浮动利率贷款人手中那份"续贷选择权"的价值。(若浮动贷款的利差事先保证 5 年不变,价差差异就会消失。)

金融直觉:这段批评的思路值得记住,因为它在量化研究中经常用到:看起来白赚的收益,先问是不是有人卖掉了一份期权。BBBCorp 用短期浮动借款加互换"合成"出一笔 5 年期固定借款,但它和真正的 5 年期固定借款不是同一个东西:后者把信用利差锁定 5 年,前者每 6 个月按当时的信用状况重新定价。区别相当于 BBBCorp 向浮动贷款人卖出了一份"利差上升时可以加价"的期权,0.25% 的"节省"就是这份期权的权利金。这与 CFA 中信用利差期限结构的结论一致:评级越低,利差随期限上升越快。这也是为什么前面的金融中介要靠收取几个基点来补偿对手风险。


7.4 互换利率与 LIBOR/swap 零息曲线

7.4.1 互换利率的性质

互换利率是做市商买价与卖价的平均。与 LIBOR 一样,互换利率不是无风险利率,但在正常市场中接近无风险。为什么?金融机构可以这样赚到 5 年互换利率:

  1. 把本金依次以 6 个月期借给 AA 级借款人,每期到期后再借给另一家 AA 借款人;
  2. 进入一笔互换,把 LIBOR 收入换成 5 年互换利率。

所以 5 年互换利率对应的信用风险,是"连续 10 笔给 AA 公司的 6 个月贷款"的信用风险(7 年对应 14 笔)。每期期初的借款人都是 AA,这比"只在 5 年开头是 AA 的单一借款人"安全得多,因此 5 年互换利率低于 5 年 AA 借款利率。Collin-Dufresne 与 Solnik 称互换利率为"持续刷新的(continually refreshed)LIBOR 利率"。这个概念在第 9 章还会用到:OIS 利率是"持续刷新的隔夜利率"。

7.4.2 自举 LIBOR/swap 零息曲线

LIBOR 只能直接观测到 12 个月。通常用(经凸性调整的)欧洲美元期货把零息曲线延伸到 2 年(有时到 5 年),再用互换利率进一步延伸,结果称为 LIBOR/swap 零息曲线。

关键结论:以 LIBOR/swap 曲线折现时,一只刚重置的 6 个月 LIBOR 浮息债券价值恒等于面值——它每期付的利息恰好等于折现率。由式 (7.1),新互换的 \(B_{\text{fix}}=B_{\text{fl}}=\) 名义本金,于是

互换利率定义了一组平价收益率债券(par yield bonds)。

例如 2 年 LIBOR/swap 平价收益率为 6.045%,3 年为 6.225%。于是可以像本册第 4 章 4.4 节对国债那样,用自举法逐个求零息利率。实务中分析师常先在互换利率之间插值,得到每半年一个的互换利率(如 2.5 年取 6.135%、7.5 年取 6.696%),再逐期自举。

例 7.1:6、12、18 个月零息利率分别为 4%、4.5%、4.8%(连续复利),2 年互换利率为 5%(半年付息)。这意味着面值 100、每半年付 2.5 的 2 年期债券按面值出售:

\[ 2.5e^{-0.04\times0.5}+2.5e^{-0.045\times1.0}+2.5e^{-0.048\times1.5}+102.5e^{-2R}=100, \]

解得 2 年零息利率 \(R=4.953\%\)。


7.5 利率互换的估值

互换签订时价值接近零,之后随利率变化可正可负。在以 LIBOR/swap 利率折现的前提下,有两种等价的估值方法。

7.5.1 方法一:债券价格法

由 7.1.3 节的分解,对浮动利率支付方(收固定):

\[ V_{\text{swap}}=B_{\text{fix}}-B_{\text{fl}}; \]

对固定利率支付方:\(V_{\text{swap}}=B_{\text{fl}}-B_{\text{fix}}\)。

\(B_{\text{fix}}\) 就是对固定现金流按零息利率折现(本册第 4 章 4.3 节)。\(B_{\text{fl}}\) 的计算依赖一个漂亮的事实:

付息刚完成后,浮息债券的价值等于名义本金 \(L\)。

理由:此后每一期都按当期市场利率付息并以同一利率折现,每期都是"公平交易"。设下一次交换在时刻 \(t^*\),届时的浮动支付 \(k^*\) 已在上次付息日确定,则 \(t^*\) 付息前瞬间债券价值为 \(L+k^*\)(付完 \(k^*\) 后剩 \(L\)),所以今天

\[ B_{\text{fl}}=(L+k^*)\,e^{-r^*t^*}, \]

\(r^*\) 为期限 \(t^*\) 的 LIBOR/swap 零息利率(原书图 7.8)。这意味着:浮动端的利率风险只集中在下一个重置日之前,这一点对风险管理很有用。

推导拆解:用倒推把"每期都是公平交易"写严格。设每期长度 \(\tau\),第 \(j\) 期期初观察到的利率为 \(R_j\)(按单利计,正是用来贴现这一期的利率)。 第一步,站在最后一个重置日:剩下的现金流只有期末的本金加利息 \(L(1+R_n\tau)\),用同一个利率贴现一期,价值 \(\frac{L(1+R_n\tau)}{1+R_n\tau}=L\)。 第二步,假设站在第 \(j+1\) 个重置日时(付完当期利息后)债券价值为 \(L\)。往前退一期,站在第 \(j\) 个重置日:一期后会收到利息 \(LR_j\tau\),再加上那时的债券价值 \(L\),合计 \(L(1+R_j\tau)\),贴现一期又是 \(L\)。 第三步,依次往前推,直到最近一次已经过去的重置日,每个重置日价值都是 \(L\)。所以下一个支付日 \(t^*\) 付息前瞬间价值为 \(L+k^*\),贴现到今天就是原式。 这个证明依赖一个前提:计息利率和贴现利率是同一条曲线。2008 年以后两者分开(用 LIBOR 计息、用 OIS 贴现),浮息债就不再恰好等于面值,这正是第 9 章多曲线框架要处理的问题。

例 7.2:某金融机构收 6 个月 LIBOR、付 3%(半年复利),名义本金 1 亿美元,剩余 1.25 年。3、9、15 个月的 LIBOR 零息利率(连续复利)分别为 2.8%、3.2%、3.4%;上一付息日的 6 个月 LIBOR 为 2.9%(半年复利)。

  • 固定债券现金流为 1.5、1.5、101.5,折现因子 \(e^{-0.028\times0.25}=0.9930\)、\(e^{-0.032\times0.75}=0.9763\)、\(e^{-0.034\times1.25}=0.9584\),所以
    \[B_{\text{fix}}=1.4895+1.4644+97.2766=100.2306.\]
  • \(k^*=0.5\times0.029\times100=1.45\),\(t^*=0.25\),所以 \(B_{\text{fl}}=101.45\times0.9930=100.7423\)。
  • 该机构付固定、收浮动,\(V_{\text{swap}}=100.7423-100.2306=+0.5117\) 百万美元;方向相反的对手方为 −0.5117 百万。

7.5.2 方法二:FRA 组合法

除第一次交换(签约时已确定)外,其余每次交换都是一份远期利率协议(FRA)。例如 Microsoft–Intel 互换中 2015 年 3 月 5 日的交换,就是一份"以 5% 交换 2014 年 9 月 5 日观察到的 6 个月利率"的 FRA。由本册第 4 章 4.6 节,FRA 可以假设远期利率会实现来估值。因此:

  1. 用 LIBOR/swap 零息曲线算出决定各期现金流的 LIBOR 远期利率;
  2. 假设 LIBOR 等于这些远期利率,算出互换现金流;
  3. 用 LIBOR/swap 零息曲线把现金流折现求和。

例 7.3(同例 7.2):

  • 3 个月后的交换已确定:固定 −1.5,浮动 +1.45,净 −0.05,现值 \(-0.05\times0.9930=-0.0497\)。
  • 3–9 个月的远期利率(连续复利)为 \(\frac{0.032\times0.75-0.028\times0.25}{0.5}=3.4\%\),换成半年复利为 \(2(e^{0.034/2}-1)=3.429\%\)。9 个月时浮动流入 1.7145,净 +0.2145,现值 +0.2094。
  • 9–15 个月同理:远期 3.7%(连续)即 3.734%(半年复利),浮动流入 1.8672,净 +0.3672,现值 +0.3519。
  • 合计 \(-0.0497+0.2094+0.3519=+0.5117\) 百万美元,与方法一一致。

两种方法本质相同:一个把互换拆成两只债券,一个拆成一串远期。前者计算更快,后者更适合理解每期现金流的风险分布,也更容易推广到第 9 章的多曲线框架。

推导拆解:为什么两种方法的数字必然相等?关键是一个恒等式:期间 \([t_{j-1},t_j]\) 的远期利率 \(F_j\)(按单利、期长 \(\tau\))满足 \(1+F_j\tau=d_{j-1}/d_j\),这是第 04 章远期利率定义的贴现因子写法。于是"按远期利率算出的浮动利息再贴现"等于 \(LF_j\tau\,d_j=L(d_{j-1}-d_j)\)。 把各期加起来,又是第 02 章见过的错位相消:\(L\big[(d_0-d_1)+(d_1-d_2)+\dots+(d_{n-1}-d_n)\big]=L(d_0-d_n)\)。再加上虚拟的期末本金 \(Ld_n\),得到 \(Ld_0\);再加上已经确定的第一笔浮动支付 \(k^*d_0\),合计 \((L+k^*)d_0\),正好是债券法中的 \(B_{\text{fl}}\)。所以 FRA 法里浮动端的现值之和与债券法完全相同,固定端两种方法本来就一样,结果自然相同。例 7.3 中半年复利的换算 \(2(e^{0.034/2}-1)\) 正是为了让 \(1+F\tau\) 与贴现因子之比严格一致。

7.5.3 期限结构效应

互换初始价值接近零,意味着它包含的所有 FRA 价值之和接近零,而不是每份 FRA 都为零。对付 5% 固定的 Microsoft 而言:某期远期利率高于 5%,对应 FRA 价值为正;等于 5% 时为零;低于 5% 时为负。

若签约时期限结构向上倾斜,远期利率随期限上升,那么前期远期利率低于 5%、后期高于 5%:对 Microsoft(付固定)而言,前期 FRA 为负,后期为正。期限结构向下倾斜时相反。原书图 7.9 总结为两种形态:

  • (a) 向上倾斜且收固定,或向下倾斜且收浮动——FRA 价值随期限递减(先正后负);
  • (b) 向上倾斜且收浮动,或向下倾斜且收固定——先负后正。

这个看似技术性的结论对信用风险评估很重要(7.8 节):形态 (a) 的一方在互换后期多半处于"欠对方钱"的位置,信用敞口较小;形态 (b) 的一方后期多半"被对方欠钱",信用敞口较大。

金融直觉:可以用 CPA 熟悉的"预收/预付"来理解。曲线向上倾斜时收固定的一方,前期收到的固定利息高于当期浮动利率,相当于"先多收了钱";后期远期利率高于固定利率,要"把多收的还回去"。所以互换存续中,这一方的合约价值多半为负,像一笔预收款形成的负债,对手违约时它不受损。付固定的一方则相当于先预付、后收回,合约价值多半为正,像一笔应收款,承担对手的信用风险。 另注:括号中的"7.8 节"应为本章的 7.7 节(信用风险),原书对应 7.12 节;本章 7.8 节是"其他类型的互换"。


7.6 货币互换

7.6.1 固定对固定货币互换

货币互换(currency swap)最简单的形式是交换一种货币的固定利率本息与另一种货币的固定利率本息。与利率互换不同,必须分别规定两种货币的本金,并且通常在期初和期末交换本金。期初本金按当时汇率大致等值,期末交换时两者价值可能相差很大。

例(IBM–BP):2014 年 2 月 1 日起 5 年,IBM 付 5% 英镑利息、收 6% 美元利息,每年付息一次,本金为 1,500 万美元与 1,000 万英镑。原书表 7.7 的现金流(IBM 视角,单位:百万):

日期 美元现金流 英镑现金流
2014-02-01 −15.00 +10.00
2015–2018 每年 2 月 1 日 +0.90 −0.50
2019-02-01 +15.90 −10.50

期初本金流向与利息流向相反:IBM 付 1,500 万美元、收 1,000 万英镑;之后每年收美元利息、付英镑利息;期末收回美元本金、付出英镑本金。

用途:转换负债——IBM 可以发行 1,500 万美元、6% 的美元债,经互换后变成借入 1,000 万英镑、利率 5%;转换资产——IBM 在英国有一笔 5% 的 1,000 万英镑投资,但看好美元,可经互换变成 6% 的 1,500 万美元投资。

7.6.2 货币互换中的比较优势

原书表 7.8(已考虑税收影响):

美元 澳元
GE 5.0% 7.6%
Qantas 7.0% 8.0%

Qantas 在美元市场多付 2%,在澳元市场只多付 0.4%;GE 在美元市场有比较优势,Qantas 在澳元市场有比较优势。与利率互换不同,这里比较的是两种货币的利率,比较优势更可能真实存在,例如税收:GE 借美元可能使其全球所得税更低,Qantas 借澳元同理。

GE 想借 2,000 万澳元,Qantas 想借 1,800 万美元,汇率 0.9 美元/澳元,总收益预期为 \(2.0\%-0.4\%=1.6\%\)/年。原书图 7.11 的安排:GE 借美元 5%,经互换变为澳元 6.9%(比直接借澳元好 0.7%);Qantas 借澳元 8%,变为美元 6.3%(好 0.7%);金融机构在美元上每年赚 1.3%(234,000 美元),在澳元上每年亏 1.1%(220,000 澳元),忽略币种差异净赚 0.2%;三方合计 1.6%。金融机构可以每年在远期市场买入 220,000 澳元,锁定美元净收益、消除汇率风险。也可以重新设计,让金融机构只在美元上赚 0.2%(原书图 7.12、7.13),但那样会让 GE 或 Qantas 承担部分汇率风险,实务中很少用——通常由最善于对冲的金融机构承担汇率风险。

7.6.3 货币互换的估值

债券价格法:收美元、付外币的互换,以美元计的价值为

\[ V_{\text{swap}}=B_D-S_0B_F, \]

其中 \(B_F\) 为外币现金流对应债券的外币价值,\(B_D\) 为本币(美元)债券价值,\(S_0\) 为即期汇率(每单位外币的美元数)。收外币、付美元的一方:\(V_{\text{swap}}=S_0B_F-B_D\)。

推导拆解:两种方法为什么一致?看外币端某一笔在 \(t\) 时收到的外币现金流 \(c_F\)。 远期法:用远期汇率换成美元 \(c_F\cdot S_0e^{(r-r_f)t}\),再按美元利率贴现 \(e^{-rt}\)。 指数相乘、相加:\(S_0e^{(r-r_f)t}e^{-rt}=S_0e^{-r_ft}\),美元利率 \(r\) 正好消掉,剩下 \(c_F\cdot S_0e^{-r_ft}\)。 这正是"先用外币利率贴现、再按即期汇率换成美元",也就是债券法中 \(S_0B_F\) 的一项。各笔加总即得两法相等。 用到的只有第 05 章的利率平价 (5.9)。所以货币互换的两种估值方法相等,根本原因是远期汇率由利率平价决定;若市场上远期汇率偏离平价,两种方法会给出不同答案,而偏离本身就是套利机会。

例 7.4:日元、美元利率期限结构均平坦,日元 4%、美元 9%(连续复利)。金融机构收 5% 日元、付 8% 美元,每年一次,本金为 1,000 万美元与 12 亿日元,剩余 3 年,即期汇率 110 日元/美元。

  • 美元债券现金流 0.8、0.8、10.8(百万美元),\(B_D=0.8e^{-0.09}+0.8e^{-0.18}+10.8e^{-0.27}=9.6439\) 百万美元;
  • 日元债券现金流 60、60、1,260(百万日元),\(B_F=60e^{-0.04}+60e^{-0.08}+1260e^{-0.12}=1{,}230.55\) 百万日元;
  • 互换价值 \(=1230.55/110-9.6439=1.5430\) 百万美元。

远期合约组合法:每一次交换都是一份远期外汇合约,可以假设远期汇率会实现来估值(本册第 5 章 5.7 节)。

例 7.5(同例 7.4):即期汇率 0.009091 美元/日元,由利率平价式 (5.9),\(t\) 年远期汇率为 \(0.009091\,e^{(0.09-0.04)t}\),即 1、2、3 年分别为 0.009557、0.010047、0.010562。

时间 美元流出 日元流入折美元 净现金流 现值(按 9% 折现)
1 −0.8 \(60\times0.009557=0.5734\) −0.2266 −0.2071
2 −0.8 0.6028 −0.1972 −0.1647
3(利息) −0.8 0.6337 −0.1663 −0.1269
3(本金) −10.0 \(1200\times0.010562=12.6746\) +2.6746 +2.0417
合计 1.5430

与例 7.4 一致。

性质:货币互换的初始价值接近零(若两种本金期初等值,期初本金交换后价值仍接近零),但其中的单个远期并不为零。两种货币利率差异显著时,支付高利率货币的一方:前期利息交换对应的远期价值为负,期末本金交换对应的远期价值为正(正如例 7.5 中的金融机构:它支付美元,而美元利率 9% 高于日元的 4%);支付低利率货币的一方相反。和 7.5.3 节一样,这决定了信用敞口在存续期内的分布。

7.6.4 其他货币互换

  1. 固定对浮动(fixed-for-floating):例如支付 700 万英镑本金上的英镑 LIBOR、收取 1,000 万美元本金上的 3% 固定利息,每半年一次,期限 10 年,期初、期末交换本金。它可以分解为一份固定对固定货币互换(收 3% 美元、付比如 4% 英镑)加一份英镑利率互换(收 4%、付英镑 LIBOR)。估值:美元现金流用美元无风险利率折现;英镑现金流假设英镑 LIBOR 远期利率实现,用英镑无风险利率折现;按当前汇率换算后相减。
  2. 浮动对浮动(floating-for-floating):例如付英镑 LIBOR(700 万英镑本金)、收美元 LIBOR(1,000 万美元本金)。可以分解为一份固定对固定货币互换加两种货币各一份利率互换。估值:假设两种货币的远期利率都实现,分别以各自无风险利率折现,按当前汇率换算后相减。

"任何复杂互换都能拆成若干标准件之和"是互换估值和风险管理的通用思路。


7.7 信用风险

7.7.1 敞口 \(\max(V,0)\)

金融机构持有两笔对冲的互换(如图 7.4、7.5、7.7)时,若双方都不违约,它完全对冲;但一方违约时,它仍须履行另一方的合约。

假设与 Microsoft 的交易对金融机构价值为正、与 Intel 的价值为负,且没有其他交易、没有抵押品。若 Microsoft 违约,金融机构将损失这份正价值:为了维持对冲,它必须找第三方承接 Microsoft 的头寸,并付给第三方约等于原合约价值的金额。若互换价值为负时对手陷入困境,理论上金融机构有意外收益,但实际上对手(或清算人)会把这份合约卖掉或重组,所以现实的假设是:

互换价值为正时对手违约会造成损失;价值为负时对手违约没有影响。

于是单笔无抵押互换的信用敞口为 \(\max(V,0)\),其形状像一份期权(原书图 7.14)。由此可得几条结论:

  • 若前期交换价值为正、后期为负(7.5.3 节形态 (a),或货币互换中支付低利率货币的一方),互换在大部分时间里价值为负,信用风险较小;反之较大。
  • 互换违约的潜在损失远小于同等本金贷款违约的损失,因为互换价值通常只占名义本金的一小部分。
  • 货币互换的潜在违约损失大于利率互换,因为期末要交换两种货币的本金,违约时价值可能更大。

推导拆解:利率互换的预期正敞口为什么呈驼峰形,峰值大约在哪里?做一个粗略估算。在只有平行移动的模型里,\(t\) 时互换价值 \(V_t\) 近似等于"利率从今天到 \(t\) 的变化"乘以"剩余期限的年金":利率变化的标准差约为 \(\sigma\sqrt t\),剩余年金约与 \(T-t\) 成正比。所以 \(V_t\) 的标准差约与 \(\sqrt t\,(T-t)\) 成正比;又因为均值约为零,\(\mathbb E[\max(V_t,0)]\approx0.4\times\) 标准差,形状相同。 求最大值:\(g(t)=\sqrt t\,(T-t)=Tt^{1/2}-t^{3/2}\),求导 \(g'(t)=\tfrac12Tt^{-1/2}-\tfrac32t^{1/2}\),令其为零得 \(T=3t\),即 \(t=T/3\)。5 年期互换峰值约在 1.7 年附近,与代码 B 的输出(1.5–2.5 年最大)一致。 货币互换没有这个"剩余期限越来越短"的抵消效应:期末本金按汇率换算,汇率的不确定性 \(\sigma_{FX}\sqrt t\) 一直增长到到期日,所以敞口单调上升。两种形状的差别就来自"风险因子的波动累积"和"剩余现金流的规模"这两股力量谁占上风。

7.7.2 信用风险与市场风险

  • 信用风险:合约价值为正时对手违约的风险。
  • 市场风险:利率、汇率等市场变量变动使合约价值变负的风险。

市场风险较容易通过签订方向相反的合约对冲,信用风险较难对冲。

Business Snapshot 7.2 Hammersmith and Fulham 事件。 1987–1989 年,伦敦该区议会进行了约 600 笔利率互换及相关交易,名义本金约 60 亿英镑,似乎是为了投机而非对冲,负责的两名员工对风险只有粗浅了解。到 1989 年,由于英镑利率变动,该议会亏损数亿英镑,而对手银行持有等额的正价值并已做了对冲。审计师请求宣布这些交易无效,理由是议会无权进行此类交易。英国法院一路判到上议院,最终认定议会无权进行这些互换(但今后应有权为风险管理目的进行)。银行由此损失惨重——这说明除市场风险和信用风险外,银行还承担法律风险。

7.7.3 中央清算

危机后,监管要求标准化场外衍生品通过**中央对手方(CCP)**清算。CCP 向双方收取初始保证金和变动保证金,类似期货清算所。LCH.Clearnet(伦敦清算所与巴黎 Clearnet 合并而成)是最大的利率互换 CCP,2013 年清算的名义本金超过 350 万亿美元。对手风险、抵押品和净额结算的详细处理见本册第 24 章(原书第 24 章),第 9 章会先介绍 CVA 与 DVA 的定义。

7.7.4 信用违约互换

**信用违约互换(credit default swap, CDS)**在 2000 年后变得越来越重要。它类似一份针对某公司或国家(参考实体,reference entity)违约的保险。保护买方在合约期内或直到违约发生前,定期向保护卖方支付保费,称为 CDS 利差(CDS spread)。

例:名义本金 1 亿美元、5 年期 CDS 利差 120bp,买方每年付保费 120 万美元。若参考实体违约后其债券值 40 美分/美元,卖方需支付 6,000 万美元,使持有 1 亿面值债券的买方恢复到 1 亿。CDS 的定价见原书第 25 章。


7.8 其他类型的互换

这一节是"互换动物园"的速览,帮助你在遇到时知道它是什么、去哪一章找细节。

标准利率互换的变体

  • 浮动端**期限(tenor)**即付息频率可为 1、3、6、12 个月,不必与固定端一致(美国标准是浮动季付、固定半年付)。参考利率也可以用商业票据(CP)利率等。
  • 基差互换(basis swap):以一种浮动利率交换另一种浮动利率,如 3 个月 CP 利率 + 10bp 交换 3 个月 LIBOR,用于资产和负债挂钩不同浮动利率时的对冲。
  • 摊还互换(amortizing swap):名义本金按预定方式递减(匹配摊还贷款);递增互换(step-up swap):名义本金按预定方式递增(匹配分期提款的贷款);递延互换 / 远期互换(deferred / forward swap):未来某日才开始交换。固定端与浮动端本金也可以不同。
  • 固定期限互换(constant maturity swap, CMS):以 LIBOR 交换某期限的互换利率,如每 6 个月以 6 个月 LIBOR 交换 10 年期互换利率,持续 5 年;CMT 互换:以 LIBOR 交换某期限国债收益率。
  • 复利互换(compounding swap):一方或双方的利息按约定规则复利到期末,只在到期时支付一次。
  • LIBOR 后置互换(LIBOR-in-arrears swap):用支付日当天观察到的 LIBOR 计算当期支付(标准互换用上一支付日的 LIBOR)。这类互换和 CMS 一样需要凸性调整(原书第 30 章)。
  • 区间累计互换(accrual swap):一方的利息只在浮动参考利率处于某一区间时才累计。

跨币种与其他资产

  • 差额互换(diff swap,又称 quanto swap):在一种货币下观察的利率作用于另一种货币的本金,如美国 3 个月 LIBOR 交换英国 3 个月 LIBOR,都作用于 1,000 万英镑本金(原书第 30 章)。
  • 股权互换(equity swap):以股票指数的总收益(股息 + 资本利得)交换固定或浮动利率,如每 6 个月以标普 500 总收益交换 LIBOR,用于把固定/浮动投资收益转换为指数收益或反之(原书第 33 章)。
  • 含期权的互换:可延长互换(extendable swap)——一方可以延长期限;可卖回互换(puttable swap)——一方可以提前终止;互换期权(swaption)——在未来以预定固定利率进入互换的权利(原书第 29 章)。
  • 商品互换(commodity swap):本质上是一串交割价相同、到期日不同的商品远期。
  • 波动率互换(volatility swap):每期一方支付预定波动率,另一方支付该期实现的历史波动率,两者乘以同一名义本金(原书第 26 章)。
  • 奇异互换的著名案例:宝洁与信孚银行(Bankers Trust)的"5/30 互换",其支付复杂地依赖于 30 天 CP 利率、30 年国债价格和 5 年国债收益率(原书第 33 章)。

量化实战

互换在量化交易中至少有四种用途:

  1. 曲线构建与定价引擎。"新互换价值为零 → 互换利率是平价收益率 → 自举零息曲线 → 用零息曲线为任意现金流定价"是所有固定收益定价系统的主干。今天的 SOFR、SONIA、€STR 曲线也是这样搭起来的,只是折现曲线和远期曲线分开(第 9 章的多曲线框架)。
  2. 风险分解。互换可以拆成债券或 FRA,因此它的利率风险可以映射到零息曲线各期限的 DV01(关键利率久期)。组合层面把所有互换、债券、期货的 DV01 加总到同一组期限桶上,就是利率风险模型和对冲优化的输入。
  3. 获得敞口的工具。股权互换 / 总收益互换(TRS)是对冲基金和 Delta One 业务获得指数或个股敞口、实现杠杆、跨境投资的常用工具;方差互换和波动率互换是波动率交易的基础工具(本册第 25、26b、33 章)。
  4. 交易对手风险。\(\max(V,0)\) 的敞口结构是计算预期正敞口(EE)、潜在未来敞口(PFE)、CVA 的出发点。计算它需要蒙特卡洛模拟未来的利率和汇率路径,再在每条路径、每个时点上为互换重新估值。

下面两段代码:(A) 实现零息利率自举、两种方法的利率互换估值与关键利率 DV01、两种方法的货币互换估值,全部复现原书例题;(B) 用一个简化的单因子模型,模拟利率互换和货币互换的预期正敞口曲线,直观展示 7.7 节的结论。

代码 A:自举、估值与关键利率 DV01

import numpy as np
from scipy.optimize import brentq

# ---------- 1) 由互换利率自举零息利率(例 7.1) ----------
zero = {0.5: 0.04, 1.0: 0.045, 1.5: 0.048}      # 连续复利
swap2y = 0.05                                    # 2 年互换利率,半年付
c = 100 * swap2y / 2
pv_known = sum(c * np.exp(-r * t) for t, r in zero.items())
R2 = brentq(lambda R: pv_known + (100 + c) * np.exp(-2 * R) - 100, 0, 0.2)
print(f"例7.1  2 年零息利率 = {R2:.3%}")

# ---------- 2) 利率互换估值:债券法 vs FRA 法(例 7.2 / 7.3) ----------
def zero_rate(t, ts=np.array([0.25, 0.75, 1.25]), rs=np.array([0.028, 0.032, 0.034])):
    return np.interp(t, ts, rs)
df = lambda t: np.exp(-zero_rate(t) * t)

L, K, pay_t = 100.0, 0.03, np.array([0.25, 0.75, 1.25])   # 收浮动付固定
last_fix = 0.029                                          # 上次重置的 6M LIBOR(半年复利)

# 债券法
B_fix = sum(L * K / 2 * df(t) for t in pay_t) + L * df(pay_t[-1])
B_fl = (L + L * last_fix / 2) * df(pay_t[0])
print(f"债券法: B_fix={B_fix:.4f}  B_fl={B_fl:.4f}  V={B_fl - B_fix:+.4f}")

# FRA 法:第一期已定,其余用远期利率
v = (L * last_fix / 2 - L * K / 2) * df(pay_t[0])
for t0, t1 in zip(pay_t[:-1], pay_t[1:]):
    f_cc = (zero_rate(t1) * t1 - zero_rate(t0) * t0) / (t1 - t0)
    f_sa = 2 * (np.exp(f_cc / 2) - 1)                    # 换成半年复利
    v += (L * f_sa / 2 - L * K / 2) * df(t1)
    print(f"  {t0:.2f}-{t1:.2f} 远期 {f_sa:.3%}")
print(f"FRA 法: V={v:+.4f}")

# ---------- 3) 关键利率 DV01:逐点上移零息利率 1bp ----------
base = B_fl - B_fix
for i, t in enumerate([0.25, 0.75, 1.25]):
    rs = np.array([0.028, 0.032, 0.034]); rs[i] += 1e-4
    dfb = lambda s: np.exp(-np.interp(s, [0.25, 0.75, 1.25], rs) * s)
    bfix = sum(L * K / 2 * dfb(s) for s in pay_t) + L * dfb(pay_t[-1])
    bfl = (L + L * last_fix / 2) * dfb(pay_t[0])
    print(f"  {t:.2f} 年零息利率 +1bp → 价值变化 {(bfl - bfix - base)*1e6:+,.0f} 美元(本金 1 亿)")

# ---------- 4) 货币互换估值(例 7.4 / 7.5) ----------
rD, rF, S0, T = 0.09, 0.04, 1 / 110, np.array([1, 2, 3])
usd = np.array([0.8, 0.8, 10.8]); jpy = np.array([60, 60, 1260])
BD = (usd * np.exp(-rD * T)).sum(); BF = (jpy * np.exp(-rF * T)).sum()
print(f"债券法: B_D={BD:.4f}  B_F={BF:.2f}  V={S0 * BF - BD:.4f} 百万美元")
fwd = S0 * np.exp((rD - rF) * T)
legs = (jpy * fwd - usd) * np.exp(-rD * T)
print("远期法: 各期现值", np.round(legs, 4), " 合计", round(legs.sum(), 4))

关键输出:

例7.1  2 年零息利率 = 4.953%
债券法: B_fix=100.2306  B_fl=100.7423  V=+0.5117
  0.25-0.75 远期 3.429%
  0.75-1.25 远期 3.734%
FRA 法: V=+0.5117
  0.25 年零息利率 +1bp → 价值变化 -2,481 美元(本金 1 亿)
  0.75 年零息利率 +1bp → 价值变化 +110 美元(本金 1 亿)
  1.25 年零息利率 +1bp → 价值变化 +12,159 美元(本金 1 亿)
债券法: B_D=9.6439  B_F=1230.55  V=1.5430 百万美元
远期法: 各期现值 [-0.2071 -0.1647  1.9148]  合计 1.543

解读:所有数字与原书例 7.1–7.5 一致(货币互换第 3 年一栏是利息 −0.1269 与本金 +2.0417 之和)。关键利率 DV01 很有启发:这笔"收浮动、付固定"的互换,利率风险几乎全部集中在最长的 1.25 年点(固定端本金所在处),而 0.25 年点的敏感度为负——那是浮动端"下一个重置日"的贴现风险。这正对应 7.5.1 节的结论:浮息债券的利率风险只集中在下一个重置日之前,互换的久期约等于"固息债券久期 − 到下个重置日的时间"。在对冲系统里,就是用这一组 DV01 去匹配期货或其他互换的 DV01。

代码 B:互换的预期正敞口(EE)

import numpy as np
rng = np.random.default_rng(42)

# 简化单因子模型:零息曲线平坦,水平 r_t 做算术布朗运动(只有平行移动)
# 模拟两笔 5 年期、年付、按平价成交的互换的未来价值,计算预期正敞口 EE(t)=E[max(V,0)]
n_path, T, dt = 20_000, 5, 0.25
grid = np.arange(dt, T, dt)
r0, sig_r = 0.04, 0.01                  # 本币利率 4%,年波动 100bp
rf, sig_fx = 0.01, 0.10                 # 外币利率 1%,汇率年波动 10%
pay = np.arange(1, T + 1)
K = (1 - np.exp(-r0 * T)) / np.exp(-r0 * pay).sum()   # 平价互换利率(年复利)

r = np.full(n_path, r0)
fx = np.ones(n_path)                    # 1 单位外币的本币价格,期初本金 1:1
L_reset = np.full(n_path, np.exp(r0) - 1)            # 上次重置的 1 年期浮动利率
EE_irs, EE_ccs = [], []
for t in grid:
    r = r + sig_r * np.sqrt(dt) * rng.standard_normal(n_path)
    fx = fx * np.exp((r0 - rf - 0.5 * sig_fx**2) * dt
                     + sig_fx * np.sqrt(dt) * rng.standard_normal(n_path))
    rem = pay[pay > t + 1e-9] - t                      # 剩余支付时点(距今)
    dfs = np.exp(-np.outer(r, rem))
    # 利率互换(收固定、付浮动):V = B_fix - B_fl,B_fl = (1 + L_reset) * 下一期折现因子
    B_fix = K * dfs.sum(1) + dfs[:, -1]
    B_fl = (1 + L_reset) * dfs[:, 0]
    V_irs = B_fix - B_fl
    # 货币互换(收本币 4% 固定、付外币 1% 固定):V = B_D - S * B_F
    B_D = r0 * dfs.sum(1) + dfs[:, -1]
    B_F = rf * np.exp(-rf * rem).sum() + np.exp(-rf * rem[-1])
    V_ccs = B_D - fx * B_F
    EE_irs.append(np.maximum(V_irs, 0).mean()); EE_ccs.append(np.maximum(V_ccs, 0).mean())
    if abs(t - round(t)) < 1e-9:                       # 支付日:重置浮动利率
        L_reset = np.exp(r) - 1

print(f"平价互换利率 K = {K:.4%}")
print(" 时间   利率互换 EE(%本金)   货币互换 EE(%本金)")
for t, a, b in zip(grid, EE_irs, EE_ccs):
    if abs(t % 1 - 0.5) < 1e-9 or t == grid[-1]:
        print(f"{t:5.2f}   {a*100:10.3f}          {b*100:10.3f}")

关键输出:

平价互换利率 K = 4.0811%
 时间   利率互换 EE(%本金)   货币互换 EE(%本金)
 0.50        1.071               2.949
 1.50        1.777               3.849
 2.50        1.780               4.090
 3.50        1.421               4.139
 4.50        0.812               4.131
 4.75        0.815               4.377

解读:利率互换的预期正敞口呈"驼峰"形——早期利率还没来得及大幅偏离,后期剩余的现金流越来越少,敞口在存续期的前中段(约 1.5–2.5 年)最大,且始终只是名义本金的 1%–2%。货币互换的敞口则因为期末要交换本金、汇率不确定性随时间累积而持续上升,到期前达到最大,水平也明显更高。这正是 7.7.1 节"货币互换的信用风险大于利率互换""互换违约损失远小于同等本金贷款"两条结论的定量版本。真实的 CVA 系统会用期限结构模型(如 Hull–White)替代这里的平行移动假设,并在组合层面考虑净额结算和抵押品(第 9 章、原书第 24 章)。


本章小结

互换是"一串远期"。普通利率互换以名义本金交换固定利息和浮动(LIBOR)利息,浮动利率期初确定、期末支付,只交换差额;它可以把固定利率负债或资产转换为浮动利率,反之亦然。金融中介在一对对冲互换中赚取几个基点,同时承担对手违约风险。比较优势论在利率互换中多半是假象(浮动贷款人保留调整利差的权利),在货币互换中(如税收原因)更可能真实。互换利率是"持续刷新"的 AA 级 LIBOR 利率,它定义一组平价债券,可以自举出 LIBOR/swap 零息曲线。估值有两种等价方法:两个债券之差(浮动端只需下一期现金流),或假设远期利率(远期汇率)实现的 FRA(远期外汇)组合。初始价值为零并不代表每期远期都为零,期限结构形状和利差方向决定价值在各期的分布,进而决定信用敞口 \(\max(V,0)\) 的大小;货币互换的信用风险大于利率互换。

概念 / 公式 内容
利率互换现金流 浮动支付 = \(L\times R_{\text{上期重置}}\times\tau\);固定支付 = \(L\times K\times\tau\);只付差额
互换分解 收固定 = 固息债券多头 + 浮息债券空头
新互换条件 \(B_{\text{fix}}=B_{\text{fl}}\)(7.1),互换利率 = 平价收益率
互换估值(债券法) \(V=B_{\text{fix}}-B_{\text{fl}}\),\(B_{\text{fl}}=(L+k^*)e^{-r^*t^*}\)
互换估值(FRA 法) 假设远期利率实现,计算现金流后用零息曲线折现
远期利率 \(F=\dfrac{R_2T_2-R_1T_1}{T_2-T_1}\)(连续复利)
比较优势总收益 \(a-b\)(固定利差之差 − 浮动利差之差)
货币互换估值 \(V=B_D-S_0B_F\),或远期外汇组合,\(F_t=S_0e^{(r-r_f)t}\)
信用敞口 \(\max(V,0)\);货币互换 > 利率互换 > 0,均远小于同本金贷款

练习

基础题

  1. 某公司在 5,000 万美元名义本金上付 4% 固定(半年付)、收 6 个月 LIBOR。上一重置日 LIBOR 为 3.6%,下一支付日公司的净现金流是多少?(忽略计息天数) 提示:\(50\times(0.036-0.04)/2=-0.1\) 百万,即净付 10 万美元。

  2. 公司 A 借固定利率 5.0%、浮动 LIBOR + 0.1%;公司 B 借固定 6.4%、浮动 LIBOR + 0.6%。A 想借浮动,B 想借固定。银行要赚 0.1%,设计一笔对双方同样有吸引力的互换。 提示:\(a-b=1.4\%-0.5\%=0.9\%\),扣除银行 0.1% 后各得 0.4%。A 借 5.0% 固定,向银行付 LIBOR、收 5.3%,净付 LIBOR − 0.3%;B 借 LIBOR + 0.6%,向银行付 5.4%、收 LIBOR,净付 6.0%;银行赚 0.1%。

  3. 为什么 5 年互换利率通常低于 5 年期 AA 级公司债收益率? 提示:互换利率对应"每 6 个月都是 AA 的借款人"的信用风险(持续刷新),而 5 年期债券只在发行时是 AA,之后可能降级。

  4. 解释信用风险与市场风险的区别;为什么市场风险较容易对冲? 提示:见 7.7.2 节。市场风险可以用方向相反的合约抵消;信用风险取决于具体对手方,难以找到完美对冲工具(CDS 只能部分对冲)。

  5. 一笔货币互换,你支付高利率货币、收取低利率货币。在两种货币利率差异很大时,你的信用敞口在存续期内大致如何分布? 提示:前期利息交换的远期价值为负、期末本金交换为正,所以你的敞口集中在后期,信用风险较大;对手方相反。

进阶题

  1. 一笔利率互换:名义本金 1 亿美元,你收 4% 固定(年付)、付 12 个月 LIBOR,剩余支付时点为 0.4、1.4、2.4 年;对应的零息利率(连续复利)为 3.0%、3.5%、3.8%;上一重置日的 12 个月 LIBOR 为 3.2%(年复利)。用债券价格法估值。 提示:\(B_{\text{fix}}=4e^{-0.012}+4e^{-0.049}+104e^{-0.0912}=102.696\);\(B_{\text{fl}}=103.2e^{-0.012}=101.969\);\(V=+0.727\) 百万美元。再用 FRA 法验证(需要先由零息利率求远期利率)。

  2. 1 年期零息利率为 3%(年复利),2 年、3 年互换利率(年付)分别为 3.5%、3.8%。自举 2 年、3 年零息利率(年复利),并求 1→2 年、2→3 年的远期利率。 提示:\(d_1=1/1.03\),\(d_2=(1-0.035d_1)/1.035=0.93335\),\(R_2=3.509\%\);\(d_3=(1-0.038(d_1+d_2))/1.038=0.89368\),\(R_3=3.818\%\);远期 \(d_1/d_2-1=4.020\%\),\(d_2/d_3-1=4.439\%\)。

  3. 一笔剩余 2 年的货币互换:你收 2% 欧元(本金 800 万欧元)、付 4.5% 美元(本金 1,000 万美元),年付;美元、欧元利率平坦,分别为 4%、2.5%(连续复利);即期汇率 1.10 美元/欧元。求互换价值,并用远期外汇组合法验证。 提示:\(B_D=0.45e^{-0.04}+10.45e^{-0.08}=10.079\);\(B_F=0.16e^{-0.025}+8.16e^{-0.05}=7.918\);\(V=1.10\times7.918-10.079=-1.369\) 百万美元。

  4. 在代码 B 中把利率波动 sig_r 从 1% 改为 2%,利率互换的 EE 曲线大致如何变化?把汇率波动 sig_fx 改为 0,货币互换的 EE 会变成什么形状?说明原因。 提示:实际运行可得:sig_r 翻倍时利率互换 EE 约翻倍(1.5 年处由 1.78% 升到 3.64%),因为在平行移动模型下互换价值对利率近似线性。sig_fx=0 时货币互换 EE 从 0.5 年的约 1.0% 迅速降到 2.5 年后的几乎为 0:没有汇率波动,外币按利率平价确定性升值,你(支付低利率货币的一方)前期多收的利息差已经落袋,剩余合约价值沿确定路径变负,只剩本币利率带来的小幅波动。这既说明货币互换的敞口主要来自汇率,也印证了 7.6.3 节"支付低利率货币一方的价值在后期多为负"。

  5. 本章 7.3 节(原书 7.4 节)说 BBBCorp 的"预期平均借款成本高于 4.97%"。假设 BBBCorp 的浮动利差每年以 50% 的概率上升 0.2%、50% 的概率不变(不会下降),估计 5 年期内的平均利差和实际固定成本。 提示:每年预期上升 0.1%,5 年内各年平均利差约为 \(0.6\%+0.1\%\times(0+1+2+3+4)/5=0.8\%\),实际成本约 \(4.97\%+0.2\%=5.17\%\);比较优势"收益" 0.23% 几乎被吃光。

原书推荐习题:7.1、7.11、7.24(设计中介互换,掌握"总收益 = \(a-b\)");7.3、7.23(非整期剩余的利率互换估值,两种方法互相验证);7.5、7.25(货币互换估值);7.7(比较优势论的漏洞);7.10、7.12(对手违约损失);7.18、7.22(用互换利率自举零息曲线);7.19(互换的美元久期,连接第 4、6 章的久期概念)。


原书对照

本章小节 原书小节 PDF 页码 原书页码
7.0 引言 章首 175–176 174–175
7.1 利率互换的机制 7.1 Mechanics of Interest Rate Swaps 176–181 175–180
7.2 计息天数、确认书与营业日惯例 7.2 Day Count Issues;7.3 Confirmations 181–183 180–182
7.3 比较优势论及其缺陷 7.4 The Comparative-Advantage Argument 182–186 181–185
7.4 互换利率与零息曲线 7.5 The Nature of Swap Rates;7.6 Determining LIBOR/Swap Zero Rates 186–187 185–186
7.5 利率互换的估值(含期限结构效应) 7.7 Valuation of Interest Rate Swaps;7.8 Term Structure Effects 187–192 186–191
7.6 货币互换 7.9 Fixed-for-Fixed Currency Swaps;7.10 Valuation;7.11 Other Currency Swaps 191–198 190–197
7.7 信用风险 7.12 Credit Risk 198–200 197–199
7.8 其他类型的互换 7.13 Other Types of Swaps 200–202 199–201
小结与习题 Summary, Further Reading, Practice Questions 202–207 201–206