利率模型:Vasicek、CIR、Hull-White、HJM
四个标准期限结构模型怎么一个接一个修上一个的毛病,又各自留下什么新毛病。债券定价公式、校准套路,和每个模型的适用边界。
股票衍生品和利率衍生品之间最根本的建模差异在标的本身。股票是一个正的价格,驱动期权收益;利率却可以是负的——1990 年代的日本、2010 年代的欧洲、2020 年代的部分市场都出现过。而且利率不是一个数,是一整条收益率曲线:固定收益分析的核心问题是给期限结构建模,不是给单一利率建模。
这篇文章讲四个标准模型。读的时候可以带着一条线:每个模型都是为了修前一个的毛病而生,而修的代价是引入新的毛病。Vasicek 给了均值回归但允许负利率(当年被视为缺陷);CIR 修掉负利率,代价是解析上更笨重;Hull-White 修掉”拟合不上今天的曲线”,代价是参数变成时间的函数;HJM 干脆把问题抽象成框架,代价是无限维。没有哪个”对”,每个都是易处理性和现实性之间的一种权衡——选哪个,通常取决于你负担得起什么样的实现。
设置
短期利率 的模型在无套利下决定整条收益率曲线。时刻 、到期 的零息债券价格是
期望在风险中性测度下取。 的动态选什么, 就有什么样的闭式,caplet、swaption 和其他利率衍生品的价格随之而来。
有个测度上的细节要先交代:利率世界里,“风险中性测度”不是唯一的一个。货币市场账户是一种计价单位,但你可以换任何计价单位来表达价格,每种选择对应一个等价鞅测度,给出不同的 SDE 和不同的期望(Brigo & Mercurio, 2006, 第 1 章)。这是固定收益比股票复杂的核心原因之一——利率本质上还是个多曲线问题(现货利率、抵押品利率、远期利率、LIBOR 的各种替代品)。本文大部分内容使用与银行账户计价单位对应的风险中性测度,上面的债券价格公式在这个测度下成立。
Vasicek (1977)
最早的均值回归模型。短期利率服从
三个参数: 是均值回归速度, 是长期均值, 是波动率,扩散系数是常数。这正是带漂移的 Ornstein-Uhlenbeck 过程,于是继承了它的全部解析好性质。债券价格是指数仿射的:
其中
闭式,债券价格立等可取。而且因为模型是高斯的, 服从对数正态,零息债券上的期权也有 Black 型闭式——caplet 等价于零息债券上的看跌(下文细讲),所以 caplet 在 Vasicek 下同样有闭式解。这一点常被讲错,值得强调:高斯短期利率模型的香草利率期权是完全解析的。
Vasicek 的著名”缺陷”是允许 。提出的年代,这被当作不现实;后来市场真给出了负利率,学术文献对此基本耸了耸肩(Hull, 2018, 第 31 章)。你是否接受这个特征,取决于你信不信负利率——2014 年之后,这个问题的答案变了。
Cox-Ingersoll-Ross (1985)
CIR 就是冲着负利率问题来的:
相对 Vasicek 只改了一处:扩散项正比于 。利率越接近零,波动越小,零就推不过去了。精确地说,在 Feller 条件
成立时,过程从正值出发永远到不了零;条件不成立时,过程能触到零,但零是瞬时反射边界,不会停在那里。
在给定 下的条件分布是缩放的非中心卡方:
自由度 ,非中心参数 依赖于 。债券价格仍然是指数仿射:
其中
, 类似地是指数形式。平方根扩散加仿射结构这套组合后来的用途远超利率本身:信用模型里把违约强度建成 CIR 过程是标准做法,这个解析形式因此成了强度类信用定价的主力。
期权定价上,CIR 不再有 Black 型的初等闭式。债券期权(从而 caplet)的价格要用非中心卡方分布函数表达——CIR 原论文就给出了这个结果——数值上等于要算分布函数或对变换做数值积分。计算里出现的变换是
在合适的 值处取值。能算,但比高斯模型多一层数值工作——这就是”修负利率”付出的解析代价。
Hull-White (1990)
Vasicek 和 CIR 共同的实务毛病是:常数参数拟合不上今天的市场曲线。你校准完模型,模型隐含的贴现因子和市场观察到的对不上,香草债券都定价不准,谈何衍生品。Hull-White 的修法是把 Vasicek 的参数变成时间的函数:
是确定性函数,其中 专门用来把模型隐含的 校准到市场贴现因子上——于是模型精确拟合初始期限结构,贴现曲线零校准误差。 有解析表达:
其中 是市场瞬时远期利率。常数 情形下,债券价格可以完全用市场贴现因子 和市场瞬时远期 写出:
看着稠密,但结构清楚:第一个因子是市场曲线,指数里前两项是确定性修正,最后一项 携带状态变量。初始远期平坦、参数取常数时退化回 Vasicek。
香草期权侧,Hull-White 继承了高斯模型的全部解析性:caplet 是零息债券上的看跌,有闭式;swaption 通过 Jamshidian 分解(1989)处理——把附息债券期权拆成一组零息债券期权,在单因子模型里这个分解是精确的,不是近似。
Hull-White 是大多数固定收益台给香草利率期权定价的默认模型,地位类似”利率界的 Black-Scholes”:不是因为它最真实,而是因为它是所有人都懂的起点,奇异产品在它上面加扩展(时变 vol、多因子、状态切换)。
Heath-Jarrow-Morton (1992)
HJM 不是又一个模型,是上面所有模型的底层框架。它不指定短期利率的过程,直接指定整条远期曲线 的过程:
关键结果是:漂移不能随便选,无套利条件把它完全钉死在波动率上——
(风险中性测度下)。也就是说,指定了远期曲线的波动率结构,整个模型就定了。
这个形式有个实现层面的问题:状态是无限维的(每个 各有一个远期利率)。实际实现限制到有限个因子:
通常取 2 或 3,每个 是因子 的载荷。此前的模型都是特例:单因子 HJM 取 就退化为 Hull-White;两个时间衰减 vol 的二因子高斯 HJM 给出二因子 Hull-White。HJM 的价值在于提供了一种思考方式:怎么搭一个跨所有期限内部一致的模型。后面要讲的 LMM,也是它的特例换了坐标。
给 Cap、Floor、Swaption 定价
靠利率模型定价的主要衍生品:caplet 在未来某期支付 ;floor 与之对称;swaption 是在未来日期进入互换的权利——对接收方 swaption,Jamshidian 分解把它拆成一串零息债券上的看跌;再往上是 CMS 类产品、可取消互换、区间累计这些搭在 Hull-White 主干上的奇异。
市场报价用的不是任何短期利率模型,而是 Black 模型——它给 caplet 一个闭式:
其中 ,即 。Black 模型与对数正态远期利率一致,简单到成为报价 vol 的行业标准。Hull-White 给出的 caplet 价格与它略有不同,但典型市场参数下差异很小。
Hull-White 下的数值定价流程完全解析,不需要积分。对在 支付 的 caplet( 是 起始的 3M 远期利率):先算相关日期的零息债券价格 和 ;把执行价换到债券价格空间,;用 Jamshidian 等价,caplet 等于执行价 、到期 的零息债券看跌;最后对债券做 Black-Scholes,债券 vol 是 。
import numpy as np
from scipy.stats import norm
def hw_caplet_vol(T, kappa, sigma):
"""Hull-White 下零息债券的等效 vol,给定短期利率 vol sigma。"""
return sigma * (1 - np.exp(-kappa * T)) / kappa
def hw_caplet_price(P_T1, P_T2, K, T1, T2, sigma_B, annuity):
"""给 caplet 定价(零息债券上的看跌)。"""
K_bond = P_T2 / (1.0 + annuity * K)
# 债券上的 Black 公式
d = (np.log(P_T1 / K_bond)) / (sigma_B * np.sqrt(T1)) + 0.5 * sigma_B * np.sqrt(T1)
return K_bond * norm.cdf(-d + sigma_B * np.sqrt(T1)) - P_T1 * norm.cdf(-d)
代码是草图。生产实现还要处理执行价约定、日计数、结算细节——但骨架就这些。
校准:从报价到参数
校准短期利率模型,意思是选 (或它们的时变版本)去拟合观察到的 caplet 或 swaption vol。cap 报价面上的每个点给一个方程:
跨执行价和到期联立。实践中分两步:先把 cap vol 曲面拆成 caplet vol(cap 是 caplet 的串,拆解是个自成一体的小工程);再解 复现隐含 vol,典型做法是逐条带校准、对 ATM 期权加权。拟合很少完美——Hull-White 是单因子模型,天生复现不了整个执行价-到期面上的微笑。
看一个具体算例。假设你有一条美债贴现曲线,3 个月重置的 cap 在以下到期和执行价上有报价(以基点计的利率期权 vol 是正态/Bachelier 约定,负利率年代之后这是市场主流):
| 到期 | 执行价 | 报价 Vol |
|---|---|---|
| 1Y | ATM | 80bp |
| 1Y | ATM + 100bp | 70bp |
| 2Y | ATM | 90bp |
| 2Y | ATM + 100bp | 80bp |
| 5Y | ATM | 95bp |
| 5Y | ATM + 100bp | 85bp |
要把 Hull-White 校准上去,先理清两个方向:每个到期的 ATM vol 大致对应该期限 3M 远期利率的隐含波动,这决定 的期限结构;ATM 和 OTM 之间的 vol 差给出偏度,而在 Hull-White 下偏度由比值 控制——要拟合 5Y cap 上 100bp 执行价利差对应的偏度, 得足够大。然后解优化:
这组数据下的典型结果:(慢均值回归), 在 1Y 期限约 ,到 5Y 缓升到 。注意 的时间依赖不是装饰——没有它,caplet vol 的期限结构根本拟合不上。校准完成后,cap、floor、欧式 swaption 都能一致定价;Bermudan swaption 则需要树或有限差分。
微笑:单因子模型拟合不了的部分
Hull-White 拟合不了微笑,那微笑交给谁?利率市场的答案是 SABR(Hagan et al., 2002):
其中 。SABR 的吸引力不在动态本身,在于存在一个渐近公式,把隐含 Black vol 直接写成 SABR 参数的函数:
和 是执行价、ATM 水平、vol、相关性的辅助函数;完整公式占一页纸且不好看,细节见 Hagan (2002)。公式严格说只是渐近展开,实践中好用得出奇——校准到 caplet 报价几乎即时。对利率指数上的 cap 和 floor,SABR 就是市场标准。
关于利率微笑还有一条干净的经验事实:caplet 微笑随到期变平。ATM vol 典型上升,但 OTM vol 升得比 ATM 慢,微笑随期限”消退”——期限越长,均值回归的中心倾向越占主导。Hull-White 的时变 或 LMM 的期限依赖 都能捕捉这个。顺带一提,微笑随期限变平不是利率独有——股票偏度也随到期衰减——只是利率端均值回归给了它一个更明确的结构性解释。
LIBOR 市场模型 (LMM)
前面所有模型都以短期利率(或瞬时远期)为状态变量,而市场报价的对象是离散期限的远期利率。LMM——也叫 BGM 模型(Brace, Gatarek, Musiela, 1997)——干脆直接建模市场报价的那组远期利率 (周期 的远期)。每个 在自己的远期测度(-远期测度)下是无漂移的对数正态:。把所有远期放到同一个测度(比如 spot 测度)下联合模拟时,无套利漂移修正出现:
其中 是计息区间长度, 是远期利率增量间的相关性。这其实就是多因子 HJM 换了坐标——不用瞬时远期,用市场真正交易的离散远期。
LMM 的关键优点也由此而来:它按构造与市场观察到的 caplet 价格一致,所以是欧式行权产品(cap、floor、欧式 swaption)的标准。美式/Bermudan 特征(Bermudan swaption、可赎回浮息)没有闭式,靠 Longstaff-Schwartz 最小二乘蒙特卡洛或树近似——这是利率建模里公认的难段。变种一堆:LMM-SABR 让每个远期走 SABR 型动态(管 caplet 微笑),移位扩展的 LMM 容纳负利率,随机 vol 版本给每个远期配自己的 vol 过程。
后 2008:多曲线与负利率
到这里,单曲线世界的工具箱齐了。但 2008 之后,“存在一个无风险利率”这个假设本身坏了。市场上并存着:OIS(隔夜指数互换)利率,用作有抵押交易的贴现曲线;LIBOR/SOFR/期限利率,用作互换浮动腿和 cap/floor 的标的;还有区分本外币资金成本的跨货币基差。LIBOR 与 OIS 之间的利差反映交易对手风险和流动性——单曲线模型原则上抓不到这个。现代做法是每条曲线一个过程,带各自的动态和相互间的相关结构,这就是多曲线设定;Hull-White 的多数扩展通过在各自测度下参数化每条曲线的瞬时远期、加显式跨测度漂移修正来处理(Brigo & Mercurio, 2006, 第 6 章)。多曲线加的是工程复杂度,不改变架构理解,所以本文聚焦单曲线。
负利率是另一处现实对模型的修正。2014 年之后几家主要央行把政策利率设到零下(欧央行存款利率一度 ),各模型的处境很不一样:Vasicek 和 Hull-White 原生允许负利率,反而成了优点;CIR 在 Feller 条件下强制 ,经典 LMM 的对数正态远期也不能为负,都需要扩展。常用的变通:移位模型(shifted CIR/LMM),定义 ,位移 为负时容纳负利率, 保持在正域;CIR++(Brigo–Mercurio),CIR 加一条确定性位移曲线,既精确拟合初始曲线,位移合适时也容纳负利率;以及反方向的对数正态短期利率(Black-Karasinski 一族,、 高斯)——注意它把负利率变成不可能,适合你明确不想要负利率的场景,不是负利率的解法。想在正利率模型框架里保留负利率,另一条路是影子利率(shadow rate)构造。
跨货币再加一层:FX 对冲产品的收益由两种货币的期限结构联合决定,定价需要每种货币利率各一个过程加相关结构,外加 FX 波动率。生产中每种货币校准到自己的曲线,FX vol 和相关性从历史数据估计,跨货币基差(历史上 USD-EUR 之间几十个基点的量级,随时期变化)直接进定价。实现会变重。对既有 vol 敏感度又有相关性敏感度的产品,SABR-LMM 混合是当前的前沿做法:货币内每个远期利率走 SABR 动态,货币内和货币间用 LMM 风格的相关结构——校准同时要吃 cap/floor vol 和 swaption vol 两套数据。
风险中性之外: 测度和期限溢价
以上全部在风险中性测度 下,定价够用。但压力测试、情景分析、长期预测要的是现实世界测度 下的动态——两者之间差一个利率风险的市场价格,而 动态难校准得多,因为几乎没有市场工具直接标定它。可用的办法都不出色:带时变风险溢价的仿射期限结构模型(从历史数据估风险价格,脆弱)、基于调查的预期(用经济学家调查反推)、历史均值回归速度。好在对压力测试来说,这个选择没有对定价那么致命。
同一个 vs 的裂缝里还住着期限溢价:长债收益超出预期短期利率路径的部分。Cochrane、Piazzesi 等人的宏观回归传统专门估计它。对量化交易员,期限溢价有三个用处:预测互换利率并据此建仓;系统性地卖期限溢价——历史上有效,但带重尾风险;以及给压力测试提供纯无套利模型给不出的情景。
香草之外,以及该用多贵的模型
更奇异的利率产品把期限结构模型当地基,再叠专门构件:抵押贷款过手证券要加提前还款模型(提前还款侧用 PSA 类模型,利率侧用 Hull-White);可赎回债券是固定收益现金流加期权定价框架;CDO 类合成信用产品需要利率和信用两套动态。每个方向有自己的文献,超出本文范围。
最后是一条实务原则。台上用的是近似的层次结构:市场报价默认 Black 公式;caplet 微笑用 SABR + Black;SABR 覆盖不了的产品(如可赎回互换)上 Hull-White 单因子;多曲线或 Bermudan 特征上 Hull-White 双因子或 LMM。层次每往上一级,计算成本和实现复杂度都涨一截。规则很简单:用能达到所需精度的最便宜的模型。如果你在搭一个固定收益台的定价库,最低配置是 Hull-White 加 LMM;负担得起就再加 SABR 管 caplet 微笑、多曲线设置管抵押与贴现一致性——那就是一套严肃的利率库了。
阅读清单。 Hull, Options, Futures, and Other Derivatives, 第 10 版,第 31 章(2018)。Wilmott, Paul Wilmott on Quantitative Finance, 第 2 版,第 2 卷,第 31-33 章(2007)。Brigo & Mercurio, Interest Rate Models: Theory and Practice(2006)是综合处理。Luenberger, Investment Science, 第 14 章(2013)讲债券定价基础。Vasicek (1977)、Cox-Ingersoll-Ross (1985)、Hull-White (1990)、Heath-Jarrow-Morton (1992) 四篇原始论文都可读。