第 33 章 再论互换
互换是场外(OTC)衍生品成功的核心,可以说是金融市场最成功的创新之一。第 7、9 章给普通 LIBOR 换固定利率互换估值时,用的方法可以概括为一句话:
假设远期利率会实现(assume forward rates will be realized)。
具体是两步:(1) 假设未来的 LIBOR 等于由当前市场工具算出的远期利率,据此计算每期的净现金流(注意 OIS 贴现与 LIBOR 贴现下的远期利率不同,见第 9.3 节);(2) 互换价值等于这些净现金流的现值。
本章讨论的非标准互换可以按"这个方法还能不能用"分成三类:
- 可以直接用"远期实现"法估值的:名义本金变化、付款频率不同、浮动参考利率不同、复利互换、大多数货币互换;
- 需要对远期利率做第 30 章的凸性、时间或 quanto 调整的:LIBOR 后置互换、CMS/CMT 互换、差额互换;
- 含内嵌期权的:计息互换、可取消互换,需要第 29、31、32 章的期权定价方法。
判断标准很简单:支付是否是远期利率的线性函数,支付时点和货币是否与远期利率的"天然"测度匹配。读完本章,你应该能看一份互换确认书就判断它属于哪一类。
白话解释:为什么"线性"这么关键?因为期望可以穿过线性函数:\(\mathbb{E}[a+bR]=a+b\,\mathbb{E}[R]\)。只要支付是 \(a+bR\) 的形式,把 \(R\) 换成它的期望(远期利率)就不会出错。一旦支付是 \(R^2\)、\(\max(R-K,0)\) 或 \(R\) 乘以某个随 \(R\) 变化的贴现因子,期望就穿不过去了,"代入远期"会漏掉一个与波动率相关的项。"天然测度"指的是:远期利率 \(F\) 恰好是"在期末 \(t_{i+1}\) 支付"这种安排下 \(R\) 的期望;支付时点或货币一变,期望就变。
学习目标
- 掌握"远期实现 + 贴现"法的适用范围,能对递增/摊还互换、基差互换、复利互换和货币互换估值。
- 用凸性调整为 LIBOR 后置互换估值,用凸性 + 时间调整为 CMS 互换估值,用 quanto 调整为差额互换估值。
- 理解股权互换为什么在付款日价值为零,会计算付款日之间的价值。
- 把计息互换分解为普通互换加一串每日二元期权,把可取消互换分解为普通互换加欧式或百慕大互换期权。
- 通过宝洁/信孚银行 5/30 互换理解杠杆化非线性条款的风险。
读前导读
这一章在解决什么问题。 你在 CFA 二级学过利率互换估值:把浮动腿看成"按远期利率计算的现金流",或者看成一张浮动利率债券(重置日价值回到面值),再把两条腿的现值相减。本章的核心问题是:这个"远期实现"的捷径在什么条件下依然成立,什么时候会算错,算错时该怎么修正。
结论可以压缩成一句话:如果一笔现金流是远期利率的线性函数,并且在"正常"的时点、用"正常"的货币支付,就可以直接把远期利率代进去;否则必须先给远期利率加一个调整量。 支付时点提前了(LIBOR 后置)、支付的是一串年金的平价利率而不是单期利率(CMS)、用一种货币的利率乘另一种货币的本金(差额互换),对应第 30 章的三种调整:凸性、时间、quanto。再往外一层是带期权的互换,那就不是"调整"能解决的了,要把它拆成普通互换加期权,分别定价。
对 CPA/CFA 读者来说,最熟悉的类比是债券的凸性:收益率变动时,价格的变化不是线性的,所以"用平均收益率算出的价格"不等于"价格的平均值"。本章各种调整项本质上都是这个道理在不同支付结构上的体现。
需要先想起来的数学。
- 期望与非线性函数(詹森不等式)。 若 \(f\) 是凸函数(曲线向上弯),则 \(\mathbb{E}[f(X)]\ge f(\mathbb{E}[X])\)。\(\mathbb{E}\) 表示期望(概率加权平均)。小例子:\(X\) 等可能取 4% 和 6%,\(f(x)=x^2\),则 \(\mathbb{E}[X^2]=(16+36)/2=26\)(单位:%²),而 \((\mathbb{E}X)^2=25\)。差额 1 就是"凸性调整"的雏形,它与方差成正比。见 第 00 册第 07 章 概率中的分析工具。
- 导数与二阶导数。 公式 (33.2) 里的 \(G'(y)\) 是债券价格对收益率的一阶导数(就是"美元久期"取负号),\(G''(y)\) 是二阶导数("美元凸性")。\(G''/G'\) 越大,说明价格–收益率曲线弯得越厉害,调整量越大。见 第 00 册第 02 章 导数与泰勒展开。
- 对数正态与 \(N(d_2)\)。 若远期利率 \(F\) 服从对数正态分布、波动率 \(\sigma\),则到期时利率超过阈值 \(R_K\) 的风险中性概率是 \(N(d_2)\),和 BSM 公式里的 \(N(d_2)\) 是同一个东西(第 15 章)。\(N(\cdot)\) 是标准正态累积分布函数。
- 测度(numeraire)的直观意思。 "关于到期 \(t\) 的零息债的远期风险中性世界"是第 28 章的语言:选一个资产当计价单位,在这个世界里某些量的期望恰好等于其远期值。你只需记住:远期利率是它"天然"测度下的期望;换了支付时点或货币,期望就要加调整项。 见 第 00 册第 08 章 读懂数学证明与符号 中关于记号的部分。
怎么读这一章。 33.1–33.3 节是 CFA 知识的直接延伸,读得很快;33.4 节是全章的技术核心,建议对照第 30 章一起读,先抓住三个公式各自"调整的原因",再看数字例子。33.5 节股权互换的复制论证值得精读,它是理解收益互换盯市的基础。33.6 节的分解思路(互换 = 普通互换 + 期权)是必读,可取消复利互换的树方法第一次可只看结论。33.7 节的宝洁案例与第 36 章呼应,建议结合量化实战中的敏感性图一起读。
33.1 普通互换的变体
以下变体都不改变"远期实现"法的估值逻辑,只改变现金流的计算细节。
名义本金变化。本金按预定方式递增的称为递增互换(step-up swap),递减的称为摊还互换(amortizing swap)。递增互换适合一家要按浮动利率借入逐步增加的资金、又想换成固定利率的建筑公司;摊还互换适合一家有既定还款计划的固定利率借款、又想换成浮动利率的公司。
两边本金、付款频率、计息惯例不同。原书 Business Snapshot 33.1 给了一份假想的确认书:交易日 2013 年 1 月 4 日,起息日 2013 年 1 月 11 日,到期日 2018 年 1 月 11 日,遵循"下一营业日"惯例和美国假日历。固定方 Microsoft:本金 1 亿美元,年利率 6%,Actual/365,每年 1 月 11 日和 7 月 11 日付息。浮动方 Goldman Sachs:本金 1.2 亿美元,1 个月美元 LIBOR,Actual/360,每月付息。这种互换看起来复杂,估值方法却与普通互换一样。
浮动参考利率不是 LIBOR。可以是商业票据(CP)利率、OIS 利率等。基差互换(basis swap) 用一种浮动参考利率交换另一种,例如 3 个月 OIS + 10bp 换 3 个月 LIBOR,本金 1 亿美元。它适合资产和负债依赖不同浮动参考利率的金融机构。估值仍可用"远期实现"法,参考利率的远期值按"使该参考利率的互换价值为零"来计算(与 OIS 贴现下计算远期 LIBOR 的做法类似)。
33.2 复利互换
复利互换(compounding swap) 的利息不在每期支付,而是按某个利率复利滚存到期末一次支付。原书 Business Snapshot 33.2 的例子:浮动利率为 LIBOR + 20bp,不支付,按 LIBOR + 10bp 复利滚存;固定利率 6%,按 6.3% 复利滚存。
估值可以(至少近似地)用"远期实现"法。固定方到期支付的金额是确定的;浮动方之所以能用远期利率,是因为存在一串 FRA,可以把浮动现金流锁定为按远期利率计算的值。(原书脚注,Technical Note 18:若复利利差为零,或复利方式为 \(Q(1+\tau R)(1+\tau s_c)\),该法精确;若采用更常见的 \(Q[1+\tau(R+s_c)]\),有一个很小的近似误差。)
例 33.1 3 年期、年度重置的复利互换,付固定、收浮动。固定利率 4%(按 3.9% 复利),浮动为 12 个月 LIBOR(按 LIBOR − 20bp 复利)。LIBOR/互换曲线贴现,曲线平坦于 5%(年复利),本金 1 亿美元。
固定方(单位:百万美元):
- 第 1 年末利息 4,复利到第 2 年末 \(4\times1.039=4.156\),加第 2 年利息,共 8.156;
- 复利到第 3 年末 \(8.156\times1.039=8.474\),加第 3 年利息,共 12.474。
浮动方:所有未来利率取远期 5%。
- 第 1 年利息 5,按 4.8% 复利到第 2 年末 \(5\times1.048=5.24\),加利息共 10.24;
- 再复利 \(10.24\times1.048=10.731\),加最后一期利息共 15.731。
互换价值 \(=(15.731-12.474)/1.05^3=2.814\) 百万美元(忽略计息惯例,并采用上述脚注中的近似)。
推导拆解:这个例子分三步走。第一步,把两条腿都"滚"到第 3 年末:固定腿每年 4,用 3.9% 复利;浮动腿每年按远期 5% 计息,扣 20bp 后用 4.8% 复利。注意浮动腿有两处用了远期:利息本身取 5%,复利率取 \(5\%-0.2\%\)。第二步,到期净额 \(15.731-12.474=3.257\)。第三步,用 5% 贴现 3 年。为什么浮动腿的复利部分也能代入远期?因为"第 1 年末拿到 5,在第 2 年按 LIBOR − 20bp 滚存"这件事今天就能用一份 FRA 锁定:FRA 把第 2 年的借贷利率锁定在远期 5%,复利收益就变成了确定数。能用无成本合约锁定的东西,就能按锁定值估值,这正是无套利定价的基本逻辑。
33.3 货币互换
第 7 章介绍过:货币互换的两个本金分别以两种货币计,在起止时交换本金。
- 固定换固定:第 7 章 7.6.3 节(原书 7.10 节)已讨论估值;
- 浮动换浮动:一边是美元 LIBOR(可加利差)乘美元本金,另一边是英镑 LIBOR 乘英镑本金;
- 交叉货币利率互换:一种货币的浮动利率换另一种货币的固定利率。
后两种用"远期实现"法:每种货币的未来 LIBOR 取当前远期值,确定各货币的现金流,分别用本币零息利率贴现,再按当前即期汇率换算成同一货币。
实务调整:交叉货币基差。理论上,新签的浮动换浮动互换应是两种 LIBOR 直接交换,不加利差。现实中由于宏观因素(美元融资需求等),市场存在利差,称为交叉货币基差。例如所有期限新签的互换都是美元 LIBOR 换日元 LIBOR − 20bp,美国金融机构可能用美元 LIBOR 贴现美元现金流、用日元 LIBOR − 20bp 贴现日元现金流,并在所有涉及日元和美元现金流的互换中统一这样做。原书脚注承认这一调整是 ad hoc 的;但如果不做,每笔按市场价新签的日元/美元浮动换浮动互换都会在估值系统里立刻产生一笔虚假的盈亏。
33.4 需要调整远期利率的互换
以下三种互换中,"远期实现"法不成立,必须假设调整后的远期利率实现。它们分别对应第 30 章的三种调整。
LIBOR 后置互换:凸性调整
普通互换在一个付款日观察的浮动利率,于下一个付款日支付。LIBOR 后置互换(LIBOR-in-arrears swap) 则在付款日支付当天观察的利率。
设重置日 \(t_i\)(\(i=0,\ldots,n\)),\(\tau_i=t_{i+1}-t_i\),\(R_i\) 为 \(t_i\) 到 \(t_{i+1}\) 的 LIBOR,\(F_i\) 为其远期值,\(\sigma_i\) 为该远期利率的波动率(通常从 caplet 价格隐含)。\(t_i\) 时的浮动支付基于 \(R_i\) 而不是 \(R_{i-1}\),支付比"正常"时点 \(t_{i+1}\) 提前了一期,按第 30.1 节做凸性调整,假设实现的浮动利率为
推导拆解:这个调整量从哪来,可以按四步理解(详见第 30.1 节)。
- 正常互换在 \(t_{i+1}\) 支付 \(\tau_iR_i\)。在以"到期 \(t_{i+1}\) 的零息债"为计价单位的世界里,\(\mathbb{E}[R_i]=F_i\),这就是"远期实现"成立的原因。
- 后置互换在 \(t_i\) 就支付 \(\tau_iR_i\)。把这笔钱存到 \(t_{i+1}\) 会变成 \(\tau_iR_i(1+\tau_iR_i)\),含有 \(R_i^2\) 项,是 \(R_i\) 的非线性函数。
- 换算回"期望利率":\(\dfrac{\mathbb{E}[R_i(1+\tau_iR_i)]}{1+\tau_iF_i}=\dfrac{F_i+\tau_i\mathbb{E}[R_i^2]}{1+\tau_iF_i}\),分母是把"存到 \(t_{i+1}\)"折回 \(t_i\) 的平均因子。
- 对数正态下 \(\mathbb{E}[R_i^2]=F_i^2e^{\sigma_i^2t_i}\approx F_i^2(1+\sigma_i^2t_i)\)(用了 \(e^x\approx1+x\),即一阶泰勒展开)。代入化简:\(\dfrac{F_i+\tau_iF_i^2+\tau_iF_i^2\sigma_i^2t_i}{1+\tau_iF_i}=F_i+\dfrac{F_i^2\sigma_i^2\tau_it_i}{1+F_i\tau_i}\)。 调整量与 \(\sigma_i^2t_i\) 成正比,也就是与 \(t_i\) 时利率的方差成正比,这和詹森不等式里"差额正比于方差"完全一致。
例 33.2 本金 1 亿美元,收固定 5%、付 LIBOR,第 1 到 5 年末交换。曲线平坦于 5%(年复利),所有 caplet 波动率 22%。若是普通互换,价值恰为 0。调整后的利率为
即第 1 到 5 年分别为 5.0115%、5.0230%、5.0345%、5.0460%、5.0575%。第一期净流出 \(0.0115\%\times1\) 亿 \(=11{,}500\) 美元,其余类推。价值
(原书把每年的调整四舍五入为 0.000115;不做四舍五入时,\(0.05^2\times0.22^2/1.05=0.00011524\),价值约为 −144,813 美元。)
直觉:收固定的一方在利率高时要付更多,而后置结构让"利率高"的支付更早到来、贴现更少,所以对付后置 LIBOR 的一方不利。期限越长、波动率越高,差异越大(原书习题 33.11:与不做凸性调整的对手交易会出现套利机会)。
金融直觉:可以和债券的正凸性对照。持有一张有正凸性的债券,利率上下对称波动时,涨的比跌的多,波动本身给你带来价值。后置 LIBOR 的收方也类似:利率高的情形恰好对应"拿到的钱多、且早拿到"的情形,利率低时则拿得少,两者不对称,平均下来收方占便宜。这份便宜由付方承担,所以例 33.2 中付 LIBOR 的一方价值为负。注意原文"收固定的一方在利率高时要付更多"中的"收固定的一方"就是付后置 LIBOR 的一方。
CMS 与 CMT 互换:凸性 + 时间调整
固定期限互换(constant maturity swap,CMS) 的浮动利率等于某个固定期限的互换利率,如每 6 个月按 5 年期互换利率支付。通常有滞后:付款日支付的是上一付款日观察的互换利率。
设重置日 \(t_0,t_1,\ldots\),付款日 \(t_1,t_2,\ldots\),本金 \(L\),\(t_{i+1}\) 的浮动支付为 \(\tau_iLS_i\)(\(S_i\) 为 \(t_i\) 的互换利率)。设 \(y_i\) 为 \(S_i\) 的远期值,估值时假设实现的互换利率为
各符号含义:
- \(\sigma_{y,i}\):远期互换利率的波动率(由互换期权隐含);
- \(F_i\):\(t_i\) 到 \(t_{i+1}\) 的当前远期利率,\(\sigma_{F,i}\) 为其波动率(由 caplet 隐含);
- \(\rho_i\):远期互换利率与该远期利率的相关系数(用历史数据估计);
- \(G_i(x)\):\(t_i\) 时票息率为 \(y_i\)、期限和付息频率与 CMS 所参照互换相同的债券的价格–收益率函数。
第一项调整类似例 30.2 的凸性调整(假设互换利率只导致 \(t_i\) 时的一笔支付,而不是一串年金);第二项类似第 30.2 节的时间调整(支付在 \(t_{i+1}\) 而不是 \(t_i\))。
例 33.3 6 年期 CMS 互换,收 5 年期互换利率、付固定 5%,本金 1 亿美元,每半年交换(标的 5 年期互换和 CMS 本身都半年付息),付款日金额由上一付款日的互换利率决定。曲线平坦于 5%(半年复利);5 年期互换期权隐含波动率 15%,6 个月 caplet 波动率 20%,二者相关 0.7。
\(y_i=0.05\),\(\sigma_{y,i}=0.15\),\(\tau_i=0.5\),\(F_i=0.05\),\(\sigma_{F,i}=0.20\),\(\rho_i=0.7\)。
\(G_i'(y_i)=-437.603\),\(G_i''(y_i)=2261.23\)。凸性调整约 1.453bp/年,时间调整约 −0.256bp/年,总调整为 \(0.0001197t_i\),即每年 1.197bp。例如 4 年后的 5 年期互换利率应假设为 5.0479%,4.5 年时的净现金流为 \(0.5\times0.000479\times1\) 亿 \(=23{,}940\) 美元。所有净现金流的现值之和即互换价值 159,811 美元(不四舍五入调整系数时约 159,838 美元)。
与例 33.2 比较:CMS 的调整远大于 LIBOR 后置,因为 5 年期债券的凸性 \(G''/G'\) 远大于 6 个月零息债。
推导拆解:把例 33.3 的两个调整量算一遍,就能看出公式 (33.2) 每一项的作用。
- 凸性项:\(\tfrac12y^2\sigma_y^2\cdot\left(-G''/G'\right)=\tfrac12\times0.05^2\times0.15^2\times\dfrac{2261.23}{437.603}=0.5\times0.0025\times0.0225\times5.167\approx0.0001453\),即每年 1.453bp。公式里写的是"减去 \(\tfrac12y^2\sigma^2t\,G''/G'\)",由于 \(G'<0\)(收益率涨、价格跌),减去一个负数等于加,所以凸性调整是正的。
- 时间项:\(\dfrac{y\tau F\rho\sigma_y\sigma_F}{1+F\tau}=\dfrac{0.05\times0.5\times0.05\times0.7\times0.15\times0.20}{1.025}\approx0.0000256\),即每年 0.256bp,取负号。
- 合计 \(1.453-0.256=1.197\)bp/年,乘以 \(t_i\) 得到每个观察日的调整。 这里 \(G'\) 和 \(G''\) 就是你熟悉的"美元久期"和"美元凸性"(相差一个负号和面值比例):\(-G'/100\approx4.38\) 正是 5 年期平价债券的修正久期。\(-G''/G'\) 可以理解为"单位久期上的凸性",5 年期债券比 6 个月零息债大得多,所以 CMS 的调整远大于 LIBOR 后置。
CMT 互换(constant maturity Treasury swap):浮动利率为指定期限的国债收益率,分析与 CMS 相同,\(S_i\) 取该期限国债的平价收益率。
差额互换:quanto 调整
差额互换(differential swap,diff swap):用一种货币观察的浮动利率作用于另一种货币的本金。设货币 Y 中 \(t_i\) 到 \(t_{i+1}\) 的 LIBOR 作用于货币 X 的本金,在 \(t_{i+1}\) 支付。\(V_i\) 为货币 Y 中该期的远期利率,\(W_i\) 为到期 \(t_{i+1}\) 的远期汇率(每单位 X 兑多少 Y)。
- 若作用于 Y 货币本金,正常假设 LIBOR 等于 \(V_i\);
- 作用于 X 货币本金,需要第 30.3 节的 quanto 调整,假设 LIBOR 为
金融直觉:quanto 调整的符号由相关系数决定。本例中 \(W\) 是"每单位英镑兑多少美元"。先看"正常"安排:美元 LIBOR 乘美元本金、以美元支付,这时期望就是远期 \(V\)。若 \(\rho>0\),美元利率高的情形恰好是 \(W\) 高、即美元相对英镑走弱的情形,一个英国投资者拿到的这笔美元换回英镑时会被汇率打折,而且恰好在支付最多时打折最多。差额互换改为英镑本金、英镑支付,就没有这种"利率高时被汇率打折"的效应,所以站在英镑世界里,美元 LIBOR 的期望比 \(V\) 高出 \(V\rho\sigma_W\sigma_Vt\)。相关为负时调整为负。这和第 17 章、第 30.3 节 quanto 期权的道理一样:支付货币与标的计价货币不同,就要为二者的协动付费或收费。
例 33.4 3 年期差额互换,年付,收美元 12 个月 LIBOR、付英镑 12 个月 LIBOR,都作用于 1,000 万英镑本金。两边的曲线都平坦于 5%,美国 1 年期远期利率的波动率 20%,美元/英镑远期汇率(每英镑兑美元数)的波动率 12%,二者相关 0.4。
英镑 LIBOR 作用于英镑本金,不需调整;美元 LIBOR 作用于英镑本金,需 quanto 调整:
第 1、2、3 年的利率分别在 \(t_i=0,1,2\) 观察,净现金流(收方)为 0、4,800、9,600 英镑,价值
(说明:精读笔记记载原书把两条曲线的复利方式写作半年复利,但原书的贴现计算用的是 \(1.05^n\) 的年复利因子。本书保留原书数值 12,647 英镑;若严格按 5% 半年复利贴现,约为 12,627 英镑,结论不变。)
33.5 股权互换
股权互换(equity swap):一方支付股指收益(作用于名义本金),另一方支付固定或浮动收益。基金经理可以借此增加或减少指数敞口而不必买卖股票。股权互换本质上是把一串指数远期打包在一起的便捷方式。股指通常是全收益指数(total return index),即股息再投资的指数。
原书 Business Snapshot 33.3:S&P 500 全收益指数的 6 个月收益换 6 个月美元 LIBOR,两边本金都是 1 亿美元,每 6 个月付款。股权一方的支付为 \(100(I_1-I_0)/I_0\)(百万美元),\(I_0\) 为上一付款日的指数。
估值。在 LIBOR 贴现下,股权换浮动的互换起始价值为零。理由是可以无成本复制一方现金流:金融机构在每个付款日以 LIBOR 借入本金,投资于指数直到下一付款日(股息再投资),到期卖出指数、还本付息——它收到的正是指数收益,付出的正是 LIBOR。同理,每个付款日刚过后互换价值也为零。
付款日之间:LIBOR 一方的现金流在上次重置时已经确定,容易估值;股权一方下一笔现金流的价值为 \(LE/E_0\)(\(L\) 为本金,\(E\) 为当前指数,\(E_0\) 为上一付款日指数)减去本金的现值部分,即对收股权、付 LIBOR 的一方,互换价值为
其中 \(R_0\) 是上次重置的 LIBOR,\(t_{next}\) 是下一付款日。若改用 OIS 贴现,起始价值不再严格为零(原书习题 33.13)。
推导拆解:这个公式用了"两边同时加本金"的老技巧(与第 7 章把浮动腿看成浮动利率债券的做法相同)。在下一付款日,两边各加一笔 \(L\),净额不变:
- 股权腿变成 \(L(I_1-I_0)/I_0+L=L\,I_1/I_0\)。今天花 \(LE/E_0\) 买入 \(L/E_0\) 份全收益指数,到下一付款日正好值 \(L\,I_1/I_0\)(股息已再投资,无需额外现金流),所以股权腿今天值 \(LE/E_0\)。
- LIBOR 腿变成 \(L(1+\tau R_0)\),金额今天已知,现值为 \(L(1+\tau R_0)P(t,t_{next})\),其中 \(P(t,t_{next})\) 是到 \(t_{next}\) 的贴现因子。 两者相减即得。付款日刚过时 \(E=E_0\)、\(P(t,t_{next})(1+\tau R_0)=1\)(LIBOR 贴现下),价值归零,与上一段的复制论证一致。
33.6 含内嵌期权的互换
计息互换
计息互换(accrual swap):一方的利息只在浮动参考利率处于某个区间时才累计。区间可以固定,也可以定期重置。
例:每季度用固定利率 \(Q\) 换 3 个月 LIBOR,本金 \(L\),但固定利率只在 3 个月 LIBOR 低于 8% 的日子累计。普通互换中,固定方每期支付 \(QLn_1/n_2\)(\(n_1\) 为上一季度的天数,\(n_2\) 为一年的天数,actual/actual);计息互换中改为 \(QLn_3/n_2\),\(n_3\) 为上一季度中 LIBOR 低于 8% 的天数(假日按前一营业日的利率)。
于是固定方在 LIBOR 高于 8% 的每一天省下 \(QL/n_2\)。固定方的头寸 = 普通互换 + 每天一个二元期权,每个二元期权在当天 LIBOR 高于 8% 时支付 \(QL/n_2\)。
白话解释:二元期权(binary/digital option)就是"条件满足就付一笔固定金额,否则什么都不付"的期权。它的价值 = 支付金额 × 贴现因子 × 条件成立的风险中性概率。所以下面的公式 \(\frac{QL}{n_2}P(0,s_i)N(d_2^*)\) 正好是这三项相乘:\(QL/n_2\) 是每天省下的固定利息,\(P(0,s_i)\) 把它从付款日贴现到今天,\(N(d_2^*)\) 是那天 LIBOR 高于 8% 的概率。一年约 250 个营业日,一笔 5 年期计息互换就内嵌上千个二元期权,这也是量化实战中提到"阈值附近 gamma 集中"的原因:每个二元期权在阈值附近价值变化都很陡。
一般化:阈值 \(R_K\),每 \(\tau\) 年交换一次;第 \(i\) 天距今 \(t_i\) 年,当天的 \(\tau\) 期 LIBOR 为 \(R_i\),\(R_i<R_K\) 时累计;\(F_i\) 为 \(R_i\) 的远期值,\(\sigma_i\) 为其波动率(由 caplet 即期波动率估计)。在对数正态假设下,在关于到期 \(t_i+\tau\) 零息债的远期风险中性世界中
二元期权的支付发生在第 \(i\) 天之后的互换付款日 \(s_i\)。在关于到期 \(s_i\) 零息债的远期风险中性世界中,概率为 \(N(d_2^*)\),\(d_2^*\) 是对 \(F_i\) 做一个小的时间调整(反映 \(t_i+\tau\) 与 \(s_i\) 的差异)后的 \(d_2\)。第 \(i\) 天二元期权的价值为
对互换存续期内的每一天求和。时间调整很小,实践中常被忽略。
可取消互换
可取消互换(cancelable swap):普通互换,但一方可以在一个或多个付款日终止。终止等于进入一个反向互换,所以:
- 若 Microsoft 有取消权:普通互换 + 多头"进入反向互换的期权";
- 若 Goldman Sachs 有取消权:普通互换 + 空头期权。
只有一个终止日时,期权是欧式互换期权;有多个终止日时,是百慕大互换期权。
金融直觉:这和 CFA 里可赎回债券的分解完全同构:可赎回债券 = 普通债券 − 发行人持有的看涨期权。可取消互换的取消权同样是一份期权,谁持有它,谁的头寸就是"普通互换 + 多头期权",对手方则是"普通互换 + 空头期权"。收固定的一方持有取消权,相当于持有"在利率上升时退出收固定头寸"的权利,即一份付固定的互换期权(payer swaption)。
例一:10 年期互换,Microsoft 收 6%、付 LIBOR,可在第 6 年末终止。等于 10 年期普通互换 + 多头 6×4 欧式互换期权(进入付 6%、收 LIBOR 的 4 年期互换),用第 29 章的标准市场模型估值。
例二:Microsoft 签 5 年期、半年付的互换,收 6%、付 LIBOR,对手方可以在第 2 到 5 年的任一付款日终止。等于普通互换 + 空头百慕大互换期权(进入 5 年到期、收 6% 付 LIBOR 的互换的期权,第 2 到 5 年的任一付款日可行权),用第 31、32 章的方法估值。
可取消复利互换
终止时,浮动方支付截至终止日的浮动复利值,固定方支付固定复利值。原书给出的技巧:
- 浮动为 LIBOR、按 LIBOR 复利、LIBOR 贴现:假设两边到期时都支付本金(类似表 7.1 到表 7.2 的处理),这不改变价值,却使浮动方在每个付款日的价值恒等于名义本金。于是取消决策只取决于固定方:用第 31 章的利率树回滚固定方价值,在每个可取消节点比较"继续"和"取消"(取消相当于把固定方价值设为面值)。付固定、收浮动时,目标是最小化固定方价值;收固定、付浮动时,最大化固定方价值。
- 浮动为 LIBOR + 利差、按 LIBOR 复利:把利差现金流从固定方中减去,而不是加到浮动方,然后同上。
- 按 LIBOR + 利差复利时的近似:(i) 假设远期实现,计算各取消日浮动方的价值;(ii) 假设浮动为 LIBOR 且按 LIBOR 复利,计算各取消日浮动方的价值;(iii) 二者之差定义为该取消日的"利差价值";(iv) 按上法处理期权,判断是否取消时从固定方价值中减去利差价值。(原书脚注:这不完全精确,因为它假设取消决策不受未来按非 LIBOR 利率复利的影响。)
OIS 贴现时,若假设 OIS–LIBOR 利差等于远期利差,可以用类似的方法。
33.7 其他互换
指数摊还利率互换(index amortizing rate swap,又称 indexed principal swap)。1990 年代中期在美国流行。本金减少的速度取决于利率水平:利率越低,本金减少越多。固定方最初被设计为近似复制机构 MBS 在考虑提前还款期权之后的收益(第 32.4 节),所以这种互换相当于用 MBS 收益换浮动收益。
商品互换。每年消耗 10 万桶油的公司约定 10 年内每年支付 800 万美元,收取 \(100{,}000S\)(\(S\) 为当时的油价),等于把油价锁定在 80 美元/桶;产油商可以做反向交易。详见第 34 章。
书中其他章节讨论的互换:资产互换(第 24 章)、总收益互换与各类 CDS(第 25 章)、波动率互换与方差互换(第 26b 章)。
怪异交易:宝洁与信孚银行的 5/30 互换
Business Snapshot 33.4 1993 年 11 月 2 日,宝洁(P&G)与信孚银行(Bankers Trust,BT)签订一笔 5 年期、半年付、本金 2 亿美元的互换。BT 付给 P&G 5.30%;P&G 付给 BT"30 天 CP 利率的日均值 − 75bp + 利差"。首个付款日(1994 年 5 月 2 日)的利差为 0,其余 9 期的利差为
其中 5 年期 CMT 是美联储公布的 5 年期国债收益率;30 年期国债价格是 2023 年 8 月到期、票息 6.25% 的国债的买卖中间现金价格。注意利差是小数形式的利率,不是基点:若公式结果为 0.1、CP 利率为 6%,P&G 要支付 \(6\%-0.75\%+10\%=15.25\%\)。
P&G 原本预期利差为 0,从而把 5.30% 的固定融资换成 CP − 75bp,一年省下几十个基点。签约时公式中的两项大致相抵。但这个公式对利率上升极度敏感:5 年期收益率上升使第一项放大(乘数 \(98.5/5.78\approx17\)),30 年期利率上升使债券价格下跌,两者叠加。1994 年初美联储开始加息,利率急升、债券价格下跌,这笔互换的代价变得极高(原书习题 33.10),后来引发诉讼。本章量化实战的代码会画出这个利差对两个市场变量的敏感性。它是第 36 章"不要做你不理解的交易"的典型案例。
推导拆解:用偏导数衡量这个利差的杠杆有多大。记利差 \(s=\max\left[0,\ (98.5\,c/5.78-P)/100\right]\),\(c\) 是以百分点计的 5 年期 CMT,\(P\) 是 30 年期国债价格。在 \(s>0\) 的区域:
- 对 \(c\) 求偏导:\(\partial s/\partial c=98.5/(5.78\times100)\approx0.17\)。5 年期收益率每上升 1 个百分点,利差上升约 17 个百分点,也就是 P&G 的融资成本每年多付约 17%。
- 对 \(P\) 求偏导:\(\partial s/\partial P=-1/100\)。30 年期国债久期约 12–13 年,收益率上升 1 个百分点,价格约跌 12 点,利差再上升约 12 个百分点。 两项同向叠加,相当于一份杠杆极高的"利率上升看跌头寸"。\(\max[0,\cdot]\) 又让它像 P&G 卖出的一份看跌期权:利率不动时只赚几十个基点,利率大涨时亏损几乎无上限。这正是"卖出虚值期权、赚小钱、担大风险"的结构。
33.8 小结与常见误区
许多互换可以用"(a) 假设 LIBOR(或其他浮动参考利率)等于其远期值,(b) 贴现现金流"估值:普通利率互换、大多数货币互换、本金按预定方式变化的互换、两边付款日不同的互换、复利互换。另一些需要对远期利率做凸性、时间或 quanto 调整:LIBOR 后置互换、CMS/CMT 互换、差额互换。股权互换交换股指收益与固定或浮动利率,付款日刚过时价值为零,付款日之间可以不为零。含内嵌期权的互换:计息互换 = 普通互换 + 大量二元期权(每天一个);可取消互换 = 普通互换 + 欧式或百慕大互换期权。
常见误区:
- 浮动利率"乘以 2"、平方等非线性支付不能直接用"远期实现"法(原书习题 33.2)。
- 交叉货币基差若不在贴现中反映,新交易会出现虚假的即时盈亏。
- 与不做凸性调整的对手交易 LIBOR 后置互换时,期限越长、付款频率越低,定价差异越大(原书习题 33.11)。
量化实战
本章内容在量化交易中的用途
定价与系统实现。互换定价引擎需要支持变本金、不同付款频率与计息惯例、多曲线、交叉货币基差和 CMS 凸性调整。CMS 和 CMT 产品的估值精度直接依赖第 30 章的公式和互换期权波动率曲面;交易台常用一串互换期权静态复制 CMS 支付,代替一阶近似。
执行与组合管理。股权互换和总收益互换是机构获取或对冲指数敞口、实现跨境 Delta One 策略的常用工具(国内对应券商的收益互换等场外衍生品)。它们的估值逻辑——复制论证 + 付款日价值归零——可以直接用于对账、保证金计算和盯市。
风险管理。计息互换本质上是大量数字期权,在阈值附近有集中的 gamma 和"钉住"风险,对冲成本可能远高于模型价格所反映的。可取消互换内嵌百慕大期权,需要多因子模型和合适的校准。P&G 案例是模型风险和合约杠杆的经典教学材料。
对股票因子研究和回测:基本无直接关联。
Python 示例:非标准互换的调整与分解
程序依次完成:
- 例 33.2 的 LIBOR 后置互换,并用测度变换的蒙特卡洛检验 (33.1);
- 例 33.3 的 CMS 互换,数值求 \(G'\)、\(G''\),分解凸性调整与时间调整;
- 例 33.4 的差额互换;
- 一个计息互换的二元期权分解(参数为本书假设,用来演示方法);
- P&G 5/30 互换利差公式对两个市场变量的敏感性网格(数值为假设情景,不是 1994 年的实际市场数据)。
import numpy as np
import pandas as pd
from scipy.stats import norm
# ---------- 1. LIBOR 后置互换(例 33.2):解析调整 vs 蒙特卡洛 ----------
L, F, sig, tau = 1e8, 0.05, 0.22, 1.0
t = np.arange(1, 6) # 观察并支付于 t=1..5
adj = F**2*sig**2*tau*t/(1+F*tau) # 式 (33.1)
print("调整后利率(%):", np.round(100*(F+adj), 4))
print("互换价值(收固定5%, 付后置LIBOR):", round(-(adj*L/1.05**t).sum()))
# 蒙特卡洛:在 t_i+1 远期测度下 R 为对数正态鞅,换到 t_i 远期测度要乘 (1+tau R)/(1+tau F)
rng = np.random.default_rng(0)
Z = rng.standard_normal(1_000_000)
for ti in [1, 5]:
R = F*np.exp(-0.5*sig**2*ti + sig*np.sqrt(ti)*Z)
exact = (F + tau*F**2*np.exp(sig**2*ti))/(1+tau*F)
print(f" t={ti}: E_t[R] 蒙特卡洛={np.mean(R*(1+tau*R))/(1+tau*F):.6f} 精确={exact:.6f} 一阶公式={F+adj[ti-1]:.6f}")
# ---------- 2. CMS 互换(例 33.3)----------
y, sy, tau, Fi, sF, rho = 0.05, 0.15, 0.5, 0.05, 0.20, 0.7
G = lambda x: sum(2.5/(1+x/2)**i for i in range(1, 11)) + 100/(1+x/2)**10
h = 1e-5
G1 = (G(y+h)-G(y-h))/(2*h); G2 = (G(y+h)-2*G(y)+G(y-h))/h**2
conv = -0.5*y**2*sy**2*G2/G1 # 凸性调整(每年)
timing = -y*tau*Fi*rho*sy*sF/(1+Fi*tau) # 时间调整(每年)
print(f"\nCMS: G'={G1:.3f} G''={G2:.2f} 凸性={conv*1e4:.3f}bp/年 时间={timing*1e4:.3f}bp/年")
ti = np.arange(12)*0.5 # 重置日 0,0.5,...,5.5;支付日晚半年
cf = 0.5*(conv+timing)*ti*1e8
print("CMS 互换价值:", round((cf/1.025**(2*(ti+0.5))).sum()))
# ---------- 3. 差额互换(例 33.4)----------
t = np.array([0, 1, 2]); adj = 0.05*0.4*0.12*0.20*t
print("\n差额互换净现金流(英镑):", adj*1e7, " 价值:", round((adj*1e7/1.05**(t+1)).sum()))
# ---------- 4. 计息互换 = 普通互换 + 每日二元期权 ----------
# 假设:1 年期,季度付固定 Q=6%,仅在 3M LIBOR < 8% 的日子累计;本金 1 亿
# 远期 LIBOR 平坦 7%,caplet 波动率 20%,OIS/LIBOR 贴现平坦 7% 连续复利;忽略时间调整
Q, Lp, RK, Fwd, vol, r = 0.06, 1e8, 0.08, 0.07, 0.20, 0.07
days = np.arange(1, 366); ti = days/365
si = np.ceil(ti*4)/4 # 该天所属季度的付款日
d2 = (np.log(Fwd/RK) - vol**2*ti/2)/(vol*np.sqrt(ti))
binary = Q*Lp/365*np.exp(-r*si)*norm.cdf(d2) # LIBOR>8% 时固定方省下的利息
print(f"\n计息互换: 固定方节省(二元期权组合)价值 = {binary.sum():,.0f}")
print(f" 普通互换固定腿全年现值 = {(Q*Lp/365*np.exp(-r*si)).sum():,.0f}")
# ---------- 5. P&G 5/30 互换的利差公式:对两个市场变量的敏感性 ----------
cmt = np.array([5.0, 5.5, 6.0, 6.5, 7.0]) # 5 年期 CMT(%)
price = np.array([105, 100, 95, 90, 85]) # 30 年国债价格
grid = pd.DataFrame([[max(0, (98.5*c/5.78 - p)/100)*100 for p in price] for c in cmt],
index=[f"CMT {c}%" for c in cmt], columns=[f"价格{p}" for p in price])
print("\nP&G 利差(%,加在 CP-75bp 之上):\n", grid.round(2))
关键输出:
调整后利率(%): [5.0115 5.023 5.0346 5.0461 5.0576]
互换价值(收固定5%, 付后置LIBOR): -144813
t=1: E_t[R] 蒙特卡洛=0.050131 精确=0.050118 一阶公式=0.050115
t=5: E_t[R] 蒙特卡洛=0.050686 精确=0.050652 一阶公式=0.050576
CMS: G'=-437.603 G''=2261.23 凸性=1.453bp/年 时间=-0.256bp/年
CMS 互换价值: 159838
差额互换净现金流(英镑): [ 0. 4800. 9600.] 价值: 12647
计息互换: 固定方节省(二元期权组合)价值 = 771,006
普通互换固定腿全年现值 = 5,743,848
P&G 利差(%,加在 CP-75bp 之上):
价格105 价格100 价格95 价格90 价格85
CMT 5.0% 0.00 0.00 0.00 0.00 0.21
CMT 5.5% 0.00 0.00 0.00 3.73 8.73
CMT 6.0% 0.00 2.25 7.25 12.25 17.25
CMT 6.5% 5.77 10.77 15.77 20.77 25.77
CMT 7.0% 14.29 19.29 24.29 29.29 34.29
读法:
- LIBOR 后置:一阶公式在 5 年时比精确值少约 0.8bp,对例 33.2 这样的短期互换完全够用;蒙特卡洛与精确值在误差范围内一致。
- CMS:凸性调整(+1.45bp/年)是主项,时间调整(−0.26bp/年)因为互换利率与 6 个月利率正相关而为负,部分抵消。
- 计息互换:在"远期 7%、阈值 8%、波动率 20%"的假设下,固定方因阈值条款节省的利息价值约 77 万美元,占固定腿现值的 13%。注意每个二元期权在阈值附近的 delta 很大,这部分价值的对冲远比普通互换困难。
- P&G 利差:在网格的左上角利差为 0,P&G 如愿省钱;但只要 5 年期收益率升到 6.5%、30 年期国债价格跌到 90 附近,利差就达到 20% 以上——一个 2 亿美元本金的融资互换,每年要额外支付约 4,000 万美元。条款中的乘数(约 17 倍)和两个变量同向叠加,使损失对利率上升呈杠杆化放大。这就是为什么风险管理要求对所有非线性条款做系统的情景网格,而不是只看"当前市场下的预期节省"。
本章小结
"假设远期实现 + 贴现"是互换估值的基本方法,它要求支付是远期利率的线性函数,且支付时点、货币与远期利率的测度匹配。复利互换、基差互换、货币互换、变本金互换都满足这一点。支付时点提前(LIBOR 后置)需要凸性调整;支付依赖长期互换利率(CMS/CMT)需要凸性加时间调整;利率作用于另一种货币的本金(差额互换)需要 quanto 调整。股权互换可以用"借钱买指数"无成本复制,因此付款日价值为零。含期权的互换应先分解:计息互换是普通互换加一串每日二元期权,可取消互换是普通互换加欧式或百慕大互换期权,可取消复利互换可以用"两端加本金"的技巧只对固定方回滚。P&G/BT 的 5/30 互换展示了杠杆化非线性条款的巨大风险。
| 互换类型 | 估值方法 | 关键公式 |
|---|---|---|
| 普通、复利、基差、货币互换 | 远期实现 + 贴现 | — |
| LIBOR 后置 | 凸性调整 | \(F_i+\dfrac{F_i^2\sigma_i^2\tau_it_i}{1+F_i\tau_i}\) |
| CMS / CMT | 凸性 + 时间调整 | \(y_i-\tfrac12y_i^2\sigma_{y,i}^2t_i\dfrac{G_i''}{G_i'}-\dfrac{y_i\tau_iF_i\rho_i\sigma_{y,i}\sigma_{F,i}t_i}{1+F_i\tau_i}\) |
| 差额互换 | quanto 调整 | \(V_i+V_i\rho_i\sigma_{W,i}\sigma_{V,i}t_i\) |
| 股权互换 | 复制论证 | 付款日价值为 0,期间股权腿价值 \(LE/E_0\) |
| 计息互换 | 互换 + 每日二元期权 | 第 \(i\) 天:\(\frac{QL}{n_2}P(0,s_i)N(d_2^*)\) |
| 可取消互换 | 互换 + 欧式/百慕大互换期权 | 第 29、31、32 章方法 |
练习
基础
-
判断下列互换能否直接用"远期实现"法:(a) 本金每年减少 10% 的利率互换;(b) 浮动方支付 2 × LIBOR − 5%(下限为 0);(c) 3 个月 CP 换 3 个月 LIBOR;(d) 浮动方支付 LIBOR 的平方(原书习题 33.2、33.7)。 提示:(a)(c) 可以;(b) 含下限,是期权;(d) 非线性,需要凸性处理。
-
复算例 33.1,并把固定方的复利利率改为 4%、浮动方改为按 LIBOR 复利,重新估值(原书习题 33.3、33.4)。 提示:按 LIBOR 复利的 LIBOR 与普通 LIBOR 等价,浮动腿价值等于本金减去到期本金现值。
-
例 33.2 中若 caplet 波动率为 30%,互换价值变为多少? 提示:调整与 \(\sigma^2\) 成正比,约为 \(-144{,}813\times(30/22)^2\approx-269{,}000\) 美元。
-
一个 2 年期股权互换,收 S&P 500 全收益、付 6 个月 LIBOR,本金 1 亿美元。上一付款日指数为 2000,LIBOR 重置为 4%;3 个月后指数为 2060,3 个月期贴现率 4%(连续复利)。求互换价值。 提示:\(100\times2060/2000-100\times(1+0.5\times0.04)e^{-0.04\times0.25}=103-100.985=2.015\) 百万美元。
-
说明为什么 Microsoft 拥有取消权的互换等于"普通互换 + 多头互换期权",并写出例一中互换期权的类型(付固定还是收固定)。
进阶
-
在 CMS 例 33.3 中,若相关系数从 0.7 变为 0,互换价值变为多少?若 5 年期互换期权隐含波动率升至 25% 呢?用本章代码验证(原书习题 33.6)。 提示:相关为 0 时时间调整消失,总调整变为 1.453bp/年;凸性项与 \(\sigma_y^2\) 成正比。
-
解释为什么与不做凸性调整的对手交易 LIBOR 后置互换会产生套利机会;期限从 5 年延长到 10 年、付款从年付改为季付,套利空间怎样变化(原书习题 33.11)?
-
把计息互换推广到双边区间:只有当 LIBOR 在 \([R_1,R_2]\) 内时才累计。写出分解和定价公式,修改代码计算 \(R_1=5\%\)、\(R_2=8\%\) 的情形(原书习题 33.8)。 提示:节省部分是两组二元期权:\(R<R_1\) 与 \(R>R_2\)。
-
用第 31 章的 Hull–White 三叉树(可直接复用第 31 章量化实战中的
hw_tree函数)为例二中的可取消互换(对手方可在第 2 到 5 年任一付款日终止)定价,假设平坦 6% 曲线、\(a=0.1\)、\(\sigma=0.01\)(原书习题 33.12)。 提示:在树上回滚"收 6% 付 LIBOR"的互换价值,每个可取消付款日对手方取 \(\min(V,0)\)。 -
对 P&G 5/30 互换,假设某个重置日的 5 年期 CMT 为 6.7%、30 年期国债价格为 87(假设数据;原书习题 33.10 给出了实际重置日的数据,请用它重算),计算利差,并估计该期 P&G 的额外支付金额。 提示:\((98.5\times6.7/5.78-87)/100=0.272\),即约 27.2%;本金 2 亿美元、半年期,额外支付约 \(2\times0.272/2=0.272\) 亿美元,即约 2,700 万美元。
原书推荐习题:33.2、33.7(判断何时"远期实现"法成立:线性性与测度匹配);33.3、33.4(复利互换数值计算,33.4 揭示"按 LIBOR 复利的 LIBOR"与普通 LIBOR 的等价关系);33.6、33.11(CMS 与 LIBOR 后置的凸性调整计算,以及与"不懂调整"对手的套利思路);33.9(差额互换估值);33.8(计息互换推广到双边区间);33.10(P&G 5/30 互换的利差计算);33.12(单边、双边取消权的可取消互换估值);33.5、33.13(货币互换的贴现调整、OIS 贴现下股权互换的初始价值)。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 章首导言 | Chapter 33 introduction | p.783 |
| 33.1 普通互换的变体(Business Snapshot 33.1) | 33.1 Variations on the Vanilla Deal | p.783–784 |
| 33.2 复利互换(例 33.1,Business Snapshot 33.2) | 33.2 Compounding Swaps | p.784–786 |
| 33.3 货币互换 | 33.3 Currency Swaps | p.786–787 |
| 33.4 更复杂的互换(例 33.2–33.4) | 33.4 More Complex Swaps | p.786–790 |
| 33.5 股权互换(Business Snapshot 33.3) | 33.5 Equity Swaps | p.789–791 |
| 33.6 含内嵌期权的互换 | 33.6 Swaps with Embedded Options | p.791–793 |
| 33.7 其他互换(Business Snapshot 33.4) | 33.7 Other Swaps | p.793–795 |
| 小结、延伸阅读、习题 | Summary, Further Reading, Practice Questions 33.1–33.13 | p.795–797 |
注:PDF 页码 = 书页码 + 1。