第 30 章 凸性、时间与 Quanto 调整
前面几章给欧式衍生品定价时,反复用到一个看似理所当然的做法,原书称为两步法(two-step procedure):
- 假设每个标的变量的期望值等于它的远期值(forward value),据此算出期望支付;
- 用从估值日到支付日的无风险利率把期望支付贴现回来。
远期利率协议(FRA,第 4 章)、普通利率互换(第 7 章)、Black 模型(第 18、29 章)、第 29 章的债券期权、利率上限和互换期权模型,都是这个两步法的具体应用。
问题是,两步法并不总是对的。它成立的前提是:"期望"所用的测度、支付发生的时点、支付使用的货币、远期值的定义四者恰好匹配。只要其中一项错位,第一步中的"远期值"就要修正。本章讨论三种最常见的错位及对应修正:
- 凸性调整(convexity adjustment):支付依赖某个债券收益率(或互换利率),而收益率与价格之间是非线性的;
- 时间调整(timing adjustment):变量在 \(T\) 时观察,却在更晚的 \(T^*\) 支付;
- Quanto 调整(quanto adjustment):变量用一种货币计量,支付却用另一种货币。
三种调整背后是同一个工具:第 28 章的换计价单位(change of numeraire)。读完本章,你应当能把"远期值是否需要调整"转化为一个机械的问题:支付在哪个计价单位下是鞅?换到需要的计价单位,漂移改变多少?
学习目标
- 说明两步法成立的条件,判断给定支付是否需要凸性、时间或 quanto 调整。
- 从价格–收益率函数的二阶 Taylor 展开推导凸性调整公式 (30.1),并用它处理 LIBOR 后置支付和互换利率支付。
- 用计价单位比率的波动率推导时间调整公式 (30.4)。
- 推导远期测度和传统风险中性测度下的 quanto 调整 (30.6)、(30.7),并能用它解释 Siegel 悖论。
- 会用蒙特卡洛模拟检验测度变换后的期望值,理解近似公式在长期限下的误差来源。
读前导读
这一章在解决什么问题
你在 CFA 里给 FRA、利率互换估值时,用的方法就是本章开头的"两步法":把未来的浮动利率假设为远期利率,算出现金流,再用收益率曲线贴现。这在标准产品上是精确的。本章讲的是:产品条款稍有"不标准",这个做法就会产生系统性偏差,偏差需要一个调整项来修正。
三种不标准分别是:
- 凸性调整:支付的是"收益率"而不是"价格"。你熟悉债券的凸性:收益率等幅上下波动时,价格涨得多、跌得少。反过来,价格等幅波动时,收益率是"跌得少、涨得多"。所以价格的平均值等于远期价格,收益率的平均值就会高于远期收益率。
- 时间调整:利率或其他变量在 \(T\) 观察,但钱在 \(T^*\) 才付(或者反过来,本该 \(T^*\) 付的钱提前到 \(T\) 付)。如果变量和利率相关,晚付的那笔钱贴现时会和变量本身"纠缠",需要修正。
- Quanto 调整:标的用日元计价,但按固定汇率用美元结算。指数涨的时候汇率往哪边走,会影响美元投资者眼中的"公平远期价格"。
三种调整都是同一个公式 \(\alpha_V=\rho\sigma_V\sigma_W\) 的应用:从一种记账方式换到另一种记账方式,变量的期望增长率增加"变量与两种记账单位比率之间的协方差"。这是第 28.8 节的结论,本章把它用在三种具体场景上。
需要先想起来的数学
1. 二阶泰勒展开。 \(G(y)\approx G(y_0)+G'(y_0)(y-y_0)+\tfrac12G''(y_0)(y-y_0)^2\)。用在债券上就是"价格变化 ≈ −久期项 + 凸性项",你在 CFA 里见过。本章的 (30.1) 就是对这个式子两边取期望。见 第 00 册第 02 章 导数与泰勒展开。
2. Jensen 不等式。 对凸函数 \(G\),\(\mathbb E[G(y)]\ge G(\mathbb E[y])\):先变换再平均,大于等于先平均再变换。例:\(y\) 以各 50% 概率取 2% 或 18%,\(G(y)=1/(1+y)\),则 \(\mathbb E[G]=(0.9804+0.8475)/2=0.9139\),而 \(G(\mathbb E y)=1/1.10=0.9091\)。见 第 00 册第 07 章 概率中的分析工具 的常用不等式。
3. \(e^x\approx1+x\)。 当 \(x\) 很小时成立,误差约 \(x^2/2\)。本章多处用它把精确公式化为近似公式,也是长期限下近似失效的原因。见 第 00 册第 04 章 级数与收敛。
4. 伊藤引理的一维形式。 若 \(W=h(R)\),则 \(W\) 的随机部分 \(=h'(R)\times R\) 的随机部分。30.2 节用它从远期利率的波动率得到远期债券价格的波动率,本质就是"久期 × 利率波动"。
怎么读这一章
30.1 是核心:先看三点图的直觉,再看 (30.1) 的证明思路(只是泰勒展开取期望),然后做例 30.1。例 30.2 可以只看结论"互换利率的凸性调整比单期利率大得多"。30.2 节看懂 (30.3) 和例 30.3,"用时间调整重新推导 (30.2)"一段很漂亮,说明凸性与时间错位是同一件事,建议读。30.3 节的远期测度 quanto 公式和例 30.4 必读;传统测度下的推导与 Siegel 悖论第一次可以只看结论,但"多币种模拟时要写明测度"这条教训要记住。
30.1 凸性调整
远期收益率不是期望收益率
先区分两个容易混淆的概念(第 28.4 节已提到):
- 远期利率:远期零息债券所隐含的利率;
- 远期债券收益率(forward bond yield):远期债券价格所隐含的收益率。
设 \(B_T\) 是某债券在 \(T\) 时刻的价格,\(y_T\) 是它的收益率,二者满足定价关系
记 \(F_0\) 为该债券到期日为 \(T\) 的远期价格,\(y_0\) 为远期债券收益率,则 \(F_0=G(y_0)\)。
第 28 章告诉我们:在关于 \(P(t,T)\)(\(T\) 到期零息债)的远期风险中性世界中,任何交易资产的远期价格是鞅,因此
但 \(G\) 是非线性的,期望不能穿过非线性函数:\(E_T(B_T)=G(y_0)\) 推不出 \(E_T(y_T)=y_0\)。
白话解释:这是 Jensen 不等式在债券上的体现。举个数:一张 1 年期零息债,\(T\) 时价格以 50% 概率为 0.94 或 0.98,平均(远期价格)0.96,对应远期收益率 \(1/0.96-1=4.17\%\)。但两种情形下的收益率分别是 6.38% 和 2.04%,平均 4.21%,比 4.17% 高。价格平均对上了,收益率平均就对不上。 哪一个"应该"等于远期值?可交易的那个。债券价格是可交易资产,在远期测度下是鞅;收益率只是价格的一个非线性函数,没有这个性质。
直觉:三点图
原书图 30.1 给出一个很好的直觉。设 \(T\) 时刻债券价格只有三个等可能、等间距的取值 \(B_1<B_2<B_3\)(\(B_2-B_1=B_3-B_2\)),远期价格就是平均值 \(B_2\)。对应的收益率 \(y_1>y_2>y_3\),由于价格–收益率曲线是凸的,等间距的价格对应不等间距的收益率:低价格一侧对应的收益率跳得更远。于是 \(y_2\)(远期收益率)小于三者的平均值(期望收益率)。
结论:在远期测度下,期望收益率高于远期收益率。两者之差就是凸性调整。
公式
所需期望收益率的近似为
其中 \(\sigma_y\) 是远期收益率的波动率,\(E_T\) 表示关于 \(P(t,T)\) 的远期风险中性期望。差额
就是凸性调整。因为价格随收益率下降(\(G'<0\))且价格–收益率曲线凸(\(G''>0\)),调整项为正。
证明思路(原书本章附录)。把 \(G(y_T)\) 在 \(y_0\) 处作二阶 Taylor 展开:
在 \(T\) 远期风险中性世界中取期望,并利用 \(E_T(B_T)=G(y_0)\):
再用近似 \(E_T[(y_T-y_0)^2]\approx\sigma_y^2y_0^2T\)(把 \(y\) 视为波动率 \(\sigma_y\) 的对数正态变量,短期内的方差),解出 \(E_T(y_T)\) 即得 (30.1)。
推导拆解: (1) 对泰勒展开两边取 \(E_T\):左边 \(E_T(B_T)=G(y_0)\),右边第一项也是 \(G(y_0)\),两者相消,剩下"一阶项的期望 + 二阶项的期望 = 0"。 (2) 为什么 \(E_T[(y_T-y_0)^2]\approx\sigma_y^2y_0^2T\)?\(\sigma_y\) 是相对波动率,\(y_T\) 在 \(T\) 内的相对变化标准差约 \(\sigma_y\sqrt T\),绝对变化标准差约 \(y_0\sigma_y\sqrt T\),平方就是方差。这里把"围绕 \(y_0\) 的二阶矩"近似为方差,忽略了均值偏离 \(y_0\) 带来的更小的项。 (3) 解方程:\(E_T(y_T)-y_0=-\tfrac12\sigma_y^2y_0^2T\cdot G''/G'\)。 和你熟悉的公式对照:\(-G'/G\) 是修正久期 \(D\),\(G''/G\) 是凸性 \(C\),所以 \(-G''/G'=C/D\)。凸性调整 \(=\tfrac12\sigma_y^2y_0^2T\cdot C/D\):收益率方差越大、债券的"凸性/久期"比越大,调整越大。
另一条推导路径(原书习题 30.6):假设远期收益率服从几何布朗运动 \(dy=\alpha y\,dt+\sigma_yy\,dz\),要求远期债券价格 \(G(y)\) 是鞅,用 Itô 引理令 \(G(y)\) 的漂移为零,解出 \(\alpha\),同样得到 (30.1)。
估值规则于是变成(式 28.20):支付依赖 \(T\) 时刻收益率的衍生品,
(a) 在关于 \(P(t,T)\) 的远期风险中性世界中计算期望支付,用 (30.1) 修正后的期望收益率;
(b) 用 \(T\) 期无风险利率贴现,即乘以 \(P(0,T)\)。
应用一:提前支付的利率(LIBOR 后置的核心)
设某工具在 \(T\) 时刻支付 \(L\tau R_T\),其中 \(\tau=T^*-T\),\(R_T\) 是 \(T\) 到 \(T^*\) 的零息利率(复利周期为 \(\tau\))。正常情况下这笔利息应在 \(T^*\) 支付;现在提前到 \(T\) 支付。第 33 章的 LIBOR 后置互换(LIBOR-in-arrears swap)正是这种结构。
把 \(R_T\) 看作 \(T\) 时刻发行、\(T^*\) 到期的零息债的收益率,定价函数为
计算 \(G'(y)=-\tau/(1+\tau y)^2\),\(G''(y)=2\tau^2/(1+\tau y)^3\),于是 \(G''/G'=-2\tau/(1+\tau y)\)。代入 (30.1):
\(R_0\) 是 \(T\) 到 \(T^*\) 的远期利率,\(\sigma_R\) 是它的波动率。工具价值为
为什么要调整?\(R_0\) 在关于 \(P(t,T^*)\) 的远期测度下是无偏的——那是"正常"支付时点 \(T^*\) 对应的测度。支付提前到 \(T\),所需测度换成 \(P(t,T)\),期望值就变了。
推导拆解:代入 (30.1) 时,\(-\frac{G''}{G'}=\frac{2\tau}{1+\tau R_0}\),于是调整项 \(=\tfrac12R_0^2\sigma_R^2T\cdot\frac{2\tau}{1+\tau R_0}=\frac{R_0^2\sigma_R^2\tau T}{1+R_0\tau}\),\(\tfrac12\) 与 2 相消。 金融直觉:比较两个合约。合约 A 在 \(T^*\) 付 \(\tau R_T\)(普通 FRA 的浮动端),合约 B 在 \(T\) 就付 \(\tau R_T\)。B 相当于把 A 的钱提前一期拿到。提前拿钱的价值是"按 \(R_T\) 多赚一期利息",而这个好处在 \(R_T\) 高时更大,正好也是支付金额大的时候。"金额大"和"提前到手更值钱"同时发生,两者正相关,所以 B 比"远期利率 × 提前贴现"更值钱。调整项为正就是这个原因。
例 30.1 某衍生品 3 年后支付"届时 1 年期无风险零息利率(年复利)× $1,000"。零息曲线平坦于 10%(年复利),3 年到 4 年的远期利率波动率为 20%。
\(R_0=0.10\),\(\sigma_R=0.20\),\(T=3\),\(\tau=1\),\(P(0,3)=1/1.1^3=0.7513\)。
不做凸性调整的价值是 $75.13。调整约 1.1%,看似不大,但它与 \(\sigma^2T\) 成正比,期限拉长后迅速变得不可忽略(见本章量化实战的模拟)。
应用二:互换利率
现在支付等于 \(T\) 时刻观察到的某个互换利率。在 LIBOR 贴现下,互换利率就是平价收益率(par yield)。可以作这样的近似:\(T\) 时刻的 \(N\) 年期互换利率 ≈ 票息等于今日远期互换利率的 \(N\) 年期债券在 \(T\) 时刻的收益率。这样就能直接套用 (30.1),\(G\) 取该债券的价格–收益率函数。
例 30.2 某工具 3 年后支付"届时 3 年期互换利率 × $100"。互换年付息,所有期限的互换利率都是 12%(年复利),3 年后起始的 3 年期远期互换利率的波动率为 22%(由互换期权价格隐含),用 LIBOR/互换曲线贴现。
把互换利率近似为票息 12% 的 3 年期债券的收益率:
在 \(y_0=0.12\) 处,\(G'(y_0)=-2.4018\),\(G''(y_0)=8.2546\)。由 (30.1):
工具价值 \(=100\times0.1236/1.12^3=\$8.80\);不做调整为 $8.54。调整幅度约 36bp,比例 3%,远大于例 30.1。原因是 3 年期债券的凸性 \(G''/G'\) 远大于 1 年期零息债。这正是**固定期限互换(CMS)**类产品对凸性调整极其敏感的原因(第 33 章)。
30.2 时间调整
设定
市场变量 \(V\) 在 \(T\) 时刻观察,但支付在更晚的 \(T^*\) 发生。记
- \(E_T(V_T)\):关于 \(P(t,T)\) 的远期风险中性期望;
- \(E_{T^*}(V_T)\):关于 \(P(t,T^*)\) 的远期风险中性期望。
估值需要后者:价值 \(=P(0,T^*)E_{T^*}(V_T)\)。而我们通常知道前者(例如 \(V\) 的远期价格)。
从 \(P(t,T)\) 计价单位换到 \(P(t,T^*)\) 计价单位,计价单位比率(numeraire ratio,第 28.8 节)是
即 \(T\) 到 \(T^*\) 零息债的远期价格。记 \(\sigma_V,\sigma_W\) 为 \(V\)、\(W\) 的波动率,\(\rho_{VW}\) 为二者的相关系数。由式 (28.35),换计价单位使 \(V\) 的增长率增加
用远期利率表示
\(W\) 不好直接观察,改用 \(T\) 到 \(T^*\) 的远期利率 \(R\)(复利频率 \(m\))表示:
由 Itô 引理,\(\sigma_WW=\sigma_RR\,\partial W/\partial R\),即
于是
这里有一个符号细节:\(R\) 上升时 \(W\) 下降,二者负相关。可以让 \(\sigma_W\) 取负值并令 \(\rho_{VW}=\rho_{VR}\),也可以让 \(\sigma_W\) 取正值并令 \(\rho_{VW}=-\rho_{VR}\),结果相同。
推导拆解:\(\sigma_W\) 的计算就是久期。\(W=(1+R/m)^{-m\tau}\)(\(\tau=T^*-T\))对 \(R\) 求导(链式法则):\(\partial W/\partial R=-\tau(1+R/m)^{-m\tau-1}\)。\(W\) 的百分比变化 \(=\frac{\partial W/\partial R}{W}\cdot dR=-\frac{\tau}{1+R/m}dR\),其中 \(\frac{\tau}{1+R/m}\) 正是这张 \(\tau\) 年零息债的修正久期。再把 \(dR\) 写成 \(\sigma_RR\,dz\),得 \(\sigma_W=-\frac{\tau}{1+R/m}\sigma_RR\)。 所以时间调整的大小 = 相关系数 × 变量波动率 × 利率绝对波动(\(\sigma_RR\))× 延迟期限的久期 × 观察期 \(T\)。例 30.3 中只延迟 1 年,久期不到 1,调整就只有约 0.5%。
近似假设 \(R\) 停留在初值 \(R_0\)、波动率和相关系数为常数,则 \(V\) 的期望在 \([0,T]\) 上按常数速率 \(\alpha_V\) 额外增长:
直觉:若 \(V\) 与利率负相关,则 \(V\) 高的情景利率偏低、从 \(T\) 到 \(T^*\) 的贴现因子偏大,对推迟支付的估值有利,\(E_{T^*}(V_T)\) 因此上调。
例 30.3 某衍生品 6 年后支付"5 年后观察到的股指值"。5 年期远期指数为 1,200,指数波动率 20%,5 到 6 年远期利率的波动率 18%,两者相关系数 \(-0.4\),零息曲线平坦于 8%(年复利)。
\(T=5\),\(T^*=6\),\(m=1\),\(R_0=0.08\):
\(E_T(V_T)\) 就是远期价格 1,200,故 \(E_{T^*}(V_T)=1{,}206.42\)。由 (28.20),价值 \(=1{,}206.42\times P(0,6)\),而 \(P(0,6)=1/1.08^6=0.6302\),价值为 760.25。
用时间调整重新推导式 (30.2)
令 \(V=R\)(\(T\) 到 \(T^*\) 的利率本身)。由式 (28.22),\(E_{T^*}(R_T)=R_0\):远期利率在自己的"天然"测度下无偏。在 (30.4) 中取 \(\rho=1\)、\(\sigma_V=\sigma_R\)、\(m=1/\tau\):
所以
一阶展开 \(e^x\approx1+x\) 即得 (30.2)。两种看法——"收益率的凸性"和"支付时点的错位"——描述的是同一件事。
30.3 Quanto
定义
Quanto(又称跨币种衍生品,cross-currency derivative)涉及两种货币:支付依据一种货币计量的变量计算,却用另一种货币支付。原书举的例子是 CME 的日经 225 期货(Business Snapshot 5.3):标的指数以日元计,合约按"指数点 × 固定美元乘数"用美元结算。国内读者熟悉的例子包括以美元结算的境外股指期货、离岸人民币计价的商品合约等。
远期测度下的 quanto 调整
设支付以货币 X 在 \(T\) 时刻发生,依赖于以货币 Y 观察的变量 \(V\)。记 \(P_X(t,T)\)、\(P_Y(t,T)\) 为 X、Y 计价的 \(T\) 到期零息债,\(E_X(V_T)\)、\(E_Y(V_T)\) 为对应远期风险中性世界的期望。
我们通常知道 \(E_Y(V_T)\)(它就是 \(V\) 在 Y 货币下的远期价格),需要的却是 \(E_X(V_T)\)。两个计价单位都用 Y 货币计量时,比率为
其中 \(S(t)\) 是即期汇率(每单位 X 兑多少 Y)。可以看出 \(W\) 正是 \(T\) 到期的远期汇率(Y/X)。由 (28.35),\(V\) 的增长率增加
波动率、相关为常数时
一阶近似为
第 33 章的差额互换(diff swap)估值要用到它。
例 30.4 日经指数现为 15,000 日元,1 年期美元无风险利率 5%,日元 2%,指数股息率 1%。日元计价的 1 年期远期价格(式 5.8)为
指数波动率 20%,1 年期日元/美元远期汇率的波动率 12%,二者相关 0.3。于是 \(E_Y(V_T)=15{,}150.75\),关于 1 年期美元零息债的远期风险中性期望为
这就是以美元支付的日经远期价格(近似也是其期货价格)。差额约 110 点,来自指数与汇率的相关。
白话解释:换成美元记账,就是用"美元零息债"给各情形加权。以日元计,美元零息债在 \(T\) 时的价值是 \(W_T\)(日元/美元汇率),所以美元测度给"美元相对日元走强"(\(W_T\) 大)的情形更高的权重,权重正比于 \(W_T/W_0\)。本章代码就是用
V*W_ratio的均值实现这一点。 相关系数 0.3 表示日经涨时美元往往也走强。于是被加大权重的情形里,日经也偏高,加权平均就比日元测度下的平均高。相关为负时方向相反(练习 5)。 用交易的角度看:卖出 quanto 远期的交易商要用日元对冲日经敞口,再把日元盈亏换成美元。日经涨时他在对冲头寸上赚日元,此时美元也强,换回的美元偏少;这个系统性的不利让他必须要价更高。
传统风险中性测度下的 quanto 调整
远期风险中性测度适合只有一个支付时点的产品。若支付时点不确定(如美式期权),用传统风险中性测度(以货币市场账户为计价单位)更方便。
已知 \(V\) 在 Y 货币传统风险中性世界中的过程,求它在 X 货币传统风险中性世界中的过程。记 \(S\) 为即期汇率(Y/X),\(\sigma_S\) 为其波动率,\(\rho\) 为 \(S\) 与 \(V\) 的相关系数。计价单位从 Y 货币的货币市场账户 \(g_Y\) 换到 X 货币的货币市场账户 \(g_X\)(以同一货币 Y 计量为 \(g_XS\)),比率为 \(g_XS/g_Y\)。由于 \(g_X,g_Y\) 的漂移随机但波动率为零(第 28.4 节),由 Itô 引理这个比率的波动率就是 \(\sigma_S\)。因此换计价单位使 \(V\) 的期望增长率增加
用"风险市场价格"的语言说:\(V\) 的风险市场价格从 0 变为 \(\rho\sigma_S\)。
Siegel 悖论
Business Snapshot 30.1 设两种货币的利率 \(r_X,r_Y\) 为常数,\(S\) 为每单位 X 的 Y 数量。外币可视为收益率等于外国无风险利率的资产,所以在 Y 货币传统风险中性世界中
由 Itô 引理,
而 \(1/S\) 是每单位 Y 的 X 数量,按对称性它的增长率似乎应为 \(r_X-r_Y\)。多出来的 \(\sigma_S^2\) 就是 Siegel 悖论(Siegel's paradox)。
化解:\(S\) 的过程是在 Y 货币计价单位下写出的,由它推出的 \(1/S\) 过程沿用了同一个计价单位。可是 \(1/S\) 以 X 货币计量,对称地应当在 X 货币计价单位下考察。用 (30.7):\(V=1/S\),\(\rho=-1\),\(\sigma_V=\sigma_S\),换计价单位使增长率增加 \(-\sigma_S^2\),正好抵消,得到
悖论消失。教训很实际:多币种模拟时,必须写明每个漂移是在哪个测度下的。
白话解释:多出来的 \(\sigma_S^2\) 其实又是 Jensen 不等式:\(1/S\) 是 \(S\) 的凸函数,即使 \(S\) 的平均值固定,\(1/S\) 的平均值也会因为波动而偏高。美国人用美元权重算"欧元的期望美元价格",欧洲人用欧元权重算"美元的期望欧元价格",两者不可能同时满足"期望 = 远期",除非各自用自己的权重。 这再次说明风险中性世界是计算工具,不是真实世界:不存在一个"唯一的风险中性概率"让所有币种的投资者都满意,每种货币都有它自己的那一套计算权重,换算时必须加上协方差修正。
例 30.5 某 2 年期美式期权,行权时支付 \(S-K\) 英镑,\(S\) 为 S&P 500 指数,当前 1,200,\(K=1{,}200\)。英镑和美元利率恒为 5% 和 3%,美元/英镑汇率与指数相关 0.2,指数波动率 25%,汇率波动率 12%,指数股息率 1.5%。
以英国货币市场账户为计价单位建立二叉树。由 (30.7),增长率增加 \(0.2\times0.25\times0.12=0.006\)。美元计价单位下指数的增长率为 \(3\%-1.5\%=1.5\%\),英镑计价单位下为 2.1%。英镑无风险利率为 5%,所以在英镑测度下,指数相当于股息率为 \(5\%-2.1\%=2.9\%\) 的资产。用 \(S=1200\)、\(K=1200\)、\(r=0.05\)、\(q=0.029\)、\(\sigma=0.25\)、\(T=2\)、100 步二叉树,得期权价值 £179.83(本章量化实战附带的 CRR 二叉树复算得 179.83)。
这个"把 quanto 调整折算成等价股息率"的技巧非常好用:任何现成的美式期权二叉树代码,只要换一个 \(q\) 就能给 quanto 美式期权定价。
30.4 小结与常见误区
三类调整的适用情形可以这样记:
- 支付依赖 \(T\) 时刻的债券收益率(或互换利率),期望收益率应高于远期收益率,用 (30.1);
- 变量在 \(T\) 观察而支付在 \(T^*\),用 (30.4);
- 变量以一种货币观察、以另一种货币支付,用 (30.6) 或 (30.7)。
第 31、32 章的期限结构模型在一个统一的随机模型里描述整条曲线,可以直接算出这些期望值,不需要单独调整。
常见误区:
- 远期利率在对应的 \(T^*\) 远期测度下无偏;但支付"在 \(T\) 发生"时测度变了,必须调整。
- 凸性调整的大小与 \(\sigma^2T\) 成正比,长期限、高波动时不可忽略。
- Quanto 调整的符号取决于标的与汇率的相关性;汇率按 Y/X 还是 X/Y 报价必须前后一致,否则相关系数符号会反。
量化实战
本章内容在量化交易中的用途
定价:CMS 互换与 CMS 上限、LIBOR 后置互换、quanto 期货和期权(美元结算的日经、恒指期货,人民币结算的境外标的等)都直接用这些公式。对利率交易台而言,凸性调整是 CMS 价差交易的核心变量:CMS 的定价取决于互换期权的波动率曲面,交易员常把"CMS 利率 − 远期互换利率"当作隐含波动率的一个线性组合来交易。
风险建模:quanto 产品对"标的–汇率相关系数"有敏感度(相关性风险),而相关系数通常无法从市场直接观察。风险系统应对相关系数做压力情景,而不是只用历史估计的点值。
系统实现:在定价库里统一用"测度 + 计价单位"框架实现,比为每个产品写特例更不易出错。具体做法是:每个随机变量登记它在哪个测度下是鞅;每个产品登记它的支付时点和支付货币;库自动计算漂移修正。Siegel 悖论提醒我们,多币种蒙特卡洛中每条漂移都要写明测度。
对因子研究和股票回测:基本无直接关联。但如果你回测的是境外股指期货的跨市场策略,期货价格中的 quanto 调整会造成期货基差与"利率差 − 股息率"之间的一个系统性偏差,不要把它误认为错误定价。
Python 示例:用测度变换检验三种调整
下面的程序做三件事:
- 对例 30.1,在 \(T^*\) 远期测度下把 \(R_T\) 模拟为对数正态鞅,再用 Radon–Nikodym 导数 \(\dfrac{dQ_T}{dQ_{T^*}}=\dfrac{(1+\tau R_T)}{(1+\tau R_0)}\) 换到 \(T\) 远期测度,比较蒙特卡洛结果、精确公式与近似式 (30.2)。在该模型下精确期望为 \(E_T(R_T)=\dfrac{R_0+\tau R_0^2e^{\sigma^2T}}{1+\tau R_0}\)。
- 对例 30.4,在日元远期测度下模拟相关的指数 \(V\) 与远期汇率 \(W\)(均为对数正态鞅),用 \(W_T/W_0\) 作为测度变换权重,检验 quanto 公式。
- 复算例 30.3 的时间调整。
import numpy as np
rng = np.random.default_rng(42)
n = 2_000_000
# ---------- 1. 凸性调整:例 30.1 的测度变换检验 ----------
# 在 T* 远期测度下,R_T 是对数正态鞅:R_T = R0*exp(-s^2 T/2 + s sqrt(T) Z)
# 换到 T 远期测度:Radon-Nikodym 导数 = (1+tau*R_T)/(1+tau*R0)
R0, s, tau = 0.10, 0.20, 1.0
print("期限T 近似(30.2) 精确公式 蒙特卡洛")
for T in [1, 3, 5, 10, 20]:
Z = rng.standard_normal(n)
RT = R0*np.exp(-0.5*s*s*T + s*np.sqrt(T)*Z)
mc = np.mean(RT*(1+tau*RT))/(1+tau*R0)
exact = (R0 + tau*R0**2*np.exp(s*s*T))/(1+tau*R0)
approx = R0 + R0**2*s**2*tau*T/(1+R0*tau)
print(f"{T:4d} {approx:.6f} {exact:.6f} {mc:.6f}")
# ---------- 2. Quanto 调整:例 30.4 ----------
# Y=日元, X=美元。在 Y 远期测度下 V(日经) 和 W(远期汇率, 日元/美元) 都是对数正态鞅
EV_Y, sV, sW, rho, T = 15150.75, 0.20, 0.12, 0.3, 1.0
Z1 = rng.standard_normal(n)
Z2 = rho*Z1 + np.sqrt(1-rho**2)*rng.standard_normal(n)
V = EV_Y*np.exp(-0.5*sV**2*T + sV*np.sqrt(T)*Z1)
W_ratio = np.exp(-0.5*sW**2*T + sW*np.sqrt(T)*Z2) # W_T/W_0
print("\nQuanto: 蒙特卡洛 E_X(V) =", round(np.mean(V*W_ratio), 2),
" 公式 =", round(EV_Y*np.exp(rho*sV*sW*T), 2))
# ---------- 3. 时间调整:例 30.3 ----------
rhoVR, sV, sR, R0, m, T, Ts = -0.4, 0.20, 0.18, 0.08, 1, 5, 6
factor = np.exp(-rhoVR*sV*sR*R0*(Ts-T)/(1+R0/m)*T)
print("\n时间调整因子 =", round(factor, 5), " 价值 =", round(1200*factor/1.08**6, 2))
关键输出:
期限T 近似(30.2) 精确公式 蒙特卡洛
1 0.100364 0.100371 0.100383
3 0.101091 0.101159 0.101186
5 0.101818 0.102013 0.102039
10 0.103636 0.104471 0.104390
20 0.107273 0.111141 0.111070
Quanto: 蒙特卡洛 E_X(V) = 15258.42 公式 = 15260.23
时间调整因子 = 1.00535 价值 = 760.25
读法:\(T=3\) 时近似式 (30.2) 与精确值相差不到 1bp,例 30.1 的近似完全够用;到 \(T=20\) 年,凸性调整本身约 111bp,而一阶近似少算了约 39bp。原因是 (30.2) 是 \(e^{x}\approx1+x\) 的一阶展开,\(\sigma^2T\) 变大后高阶项不再可以忽略。长期 CMS 产品的定价因此通常用复制法(用一串互换期权静态复制 CMS 支付)或期限结构模型,而不是一阶公式。
例 30.5 的英镑 quanto 美式期权,可以用任何 CRR 二叉树代码把 \(q\) 设为 2.9% 复算,100 步得 179.83,与原书一致。
本章小结
两步法"变量取远期值 + 无风险利率贴现"只在测度、支付时点、支付货币和远期定义完全匹配时成立。不匹配时,换计价单位的一般规则是:变量 \(V\) 的增长率增加 \(\rho\,\sigma_V\,\sigma_{\text{比率}}\),其中"比率"是新旧计价单位之比。凸性调整来自价格–收益率关系的非线性(等价于支付时点从 \(T^*\) 提前到 \(T\));时间调整来自观察与支付时点的错位;quanto 调整来自货币错位。调整幅度都与"波动率 × 波动率 × 期限"同阶,长期限、高波动时必须认真对待。
| 概念 | 公式 | 用途 |
|---|---|---|
| 凸性调整(一般) | \(E_T(y_T)=y_0-\tfrac12y_0^2\sigma_y^2T\,G''(y_0)/G'(y_0)\) | 支付依赖债券收益率、互换利率 |
| 提前支付的利率 | \(E_T(R_T)=R_0+\dfrac{R_0^2\sigma_R^2\tau T}{1+R_0\tau}\) | LIBOR 后置 |
| 计价单位变换 | 增长率增加 \(\rho_{VW}\sigma_V\sigma_W\) | 所有调整的共同来源 |
| 时间调整 | \(E_{T^*}(V_T)=E_T(V_T)\exp\!\left[-\dfrac{\rho_{VR}\sigma_V\sigma_RR_0(T^*-T)}{1+R_0/m}T\right]\) | 观察早于支付 |
| Quanto(远期测度) | \(E_X(V_T)\approx E_Y(V_T)(1+\rho_{VW}\sigma_V\sigma_WT)\) | 差额互换、quanto 远期 |
| Quanto(传统测度) | 增长率增加 \(\rho\sigma_V\sigma_S\) | quanto 美式期权、等价股息率 |
| Siegel 悖论 | \(1/S\) 在 X 测度下漂移 \(r_X-r_Y\) | 多币种模拟的测度一致性 |
练习
基础
-
判断下列支付是否需要调整,需要哪一种:(a) 1 年后支付"届时 1 年期 LIBOR × 本金",2 年后支付;(b) 1 年后支付"届时 1 年期 LIBOR × 本金",1 年后支付;(c) 3 年后以美元支付"届时 5 年期欧元互换利率 × 美元本金"。 提示:(a) 是普通利率互换的一期,不需调整;(b) 支付提前,需要凸性调整(30.2);(c) 三种都需要:互换利率的凸性调整、若支付晚于观察还要时间调整、货币错位需要 quanto 调整。
-
复算例 30.1,并把期限改为 10 年,计算凸性调整的大小(以 bp 计)。 提示:\(0.01\times0.04\times10/1.1=0.00364\),即约 36bp(一阶近似)。
-
对例 30.2,若远期互换利率波动率从 22% 升至 30%,凸性调整变为多少? 提示:调整与 \(\sigma^2\) 成正比,\(36\times(30/22)^2\approx67\)bp。
-
解释为什么在远期测度下期望收益率高于远期收益率,而期望价格等于远期价格。 提示:画出凸的价格–收益率曲线,用 Jensen 不等式。
-
例 30.4 中若相关系数为 \(-0.3\),美元计价的日经远期价格是多少? 提示:\(15{,}150.75e^{-0.0072}=15{,}042.0\)。
进阶
-
用 Itô 引理推导 (30.1):设远期收益率 \(dy=\alpha y\,dt+\sigma_yy\,dz\),要求 \(G(y)\) 在 \(T\) 远期测度下为鞅,求 \(\alpha\),再求 \(E_T(y_T)\) 的一阶近似(原书习题 30.6)。 提示:\(G'\alpha y+\tfrac12G''\sigma_y^2y^2=0\),\(\alpha=-\tfrac12\sigma_y^2yG''/G'\),\(E(y_T)\approx y_0(1+\alpha T)\)。
-
证明 Siegel 悖论的化解:从 \(dS=(r_Y-r_X)S\,dt+\sigma_SS\,dz\) 出发,先用 Itô 引理求 \(d(1/S)\),再用 (30.7) 换到 X 测度。 提示:见 30.3 节,关键是 \(\rho=-1\)。
-
一个美元结算、支付 \(\max(V_T-K,0)\) 美元的 quanto 欧式看涨,\(V\) 为日元计价指数。写出其定价公式(把 quanto 调整写成等价股息率)。 提示:在美元测度下 \(V\) 的增长率为 \(r_{JPY}-q+\rho\sigma_V\sigma_S\)(注意汇率方向定义),套入 BSM 公式,用美元利率贴现(原书习题 30.8、30.9)。
-
修改量化实战代码,把例 30.2 的互换利率支付也做蒙特卡洛检验:在 \(T\) 远期测度下,债券远期价格 \(G(y_T)\) 必须是鞅。一种做法是把 \(y_T\) 设为对数正态、通过数值求解漂移使 \(E[G(y_T)]=G(y_0)\),再计算 \(E(y_T)\)。 提示:用
scipy.optimize.brentq对漂移求根,结果应接近 0.1236。 -
讨论:为什么说"期限结构模型(第 31、32 章)不需要凸性和时间调整"?若用 Hull–White 模型给例 30.1 定价,你会怎么做? 提示:在树上每个节点直接计算 1 年期利率,在 3 年时支付,在树上回滚贴现即可;调整自动包含在模型内。
原书推荐习题:30.1、30.2、30.3(判断何时需要凸性或时间调整的概念题);30.4、30.5(互换利率凸性调整 + 时间调整的完整计算);30.6(用 Itô 引理和鞅性质推导 (30.1));30.7(同一资产在两种货币、两类测度共四种测度下的过程与风险市场价格,测度变换的综合练习);30.8、30.9、30.10(quanto 期权估值与 quanto 产品的 delta 对冲,30.10 中"投资 \(S\) 美元于日经并做空 \(SQ\) 日元"的复制构造很有启发);30.11–30.13(多利率组合支付的凸性/时间调整)。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 章首两步法 | Chapter 30 introduction | p.716 |
| 30.1 凸性调整(例 30.1、30.2) | 30.1 Convexity Adjustments | p.716–720 |
| 30.2 时间调整(例 30.3) | 30.2 Timing Adjustments | p.720–722 |
| 30.3 Quanto(例 30.4、30.5,Business Snapshot 30.1) | 30.3 Quantos | p.722–725 |
| 小结、延伸阅读、习题 | Summary, Further Reading, Practice Questions | p.725–727 |
| 凸性调整公式证明 | Appendix: Proof of the Convexity Adjustment Formula | p.727–728 |
注:PDF 页码 = 书页码 + 1。