量化交易中文教材

第 30 章 凸性、时间与 Quanto 调整

前面几章给欧式衍生品定价时,反复用到一个看似理所当然的做法,原书称为两步法(two-step procedure):

  1. 假设每个标的变量的期望值等于它的远期值(forward value),据此算出期望支付;
  2. 用从估值日到支付日的无风险利率把期望支付贴现回来。

远期利率协议(FRA,第 4 章)、普通利率互换(第 7 章)、Black 模型(第 18、29 章)、第 29 章的债券期权、利率上限和互换期权模型,都是这个两步法的具体应用。

问题是,两步法并不总是对的。它成立的前提是:"期望"所用的测度、支付发生的时点、支付使用的货币、远期值的定义四者恰好匹配。只要其中一项错位,第一步中的"远期值"就要修正。本章讨论三种最常见的错位及对应修正:

  • 凸性调整(convexity adjustment):支付依赖某个债券收益率(或互换利率),而收益率与价格之间是非线性的;
  • 时间调整(timing adjustment):变量在 \(T\) 时观察,却在更晚的 \(T^*\) 支付;
  • Quanto 调整(quanto adjustment):变量用一种货币计量,支付却用另一种货币。

三种调整背后是同一个工具:第 28 章的换计价单位(change of numeraire)。读完本章,你应当能把"远期值是否需要调整"转化为一个机械的问题:支付在哪个计价单位下是鞅?换到需要的计价单位,漂移改变多少?

学习目标

  1. 说明两步法成立的条件,判断给定支付是否需要凸性、时间或 quanto 调整。
  2. 从价格–收益率函数的二阶 Taylor 展开推导凸性调整公式 (30.1),并用它处理 LIBOR 后置支付和互换利率支付。
  3. 用计价单位比率的波动率推导时间调整公式 (30.4)。
  4. 推导远期测度和传统风险中性测度下的 quanto 调整 (30.6)、(30.7),并能用它解释 Siegel 悖论。
  5. 会用蒙特卡洛模拟检验测度变换后的期望值,理解近似公式在长期限下的误差来源。

读前导读

这一章在解决什么问题

你在 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\) 是它的收益率,二者满足定价关系

\[B_T=G(y_T)\]

记 \(F_0\) 为该债券到期日为 \(T\) 的远期价格,\(y_0\) 为远期债券收益率,则 \(F_0=G(y_0)\)。

第 28 章告诉我们:在关于 \(P(t,T)\)(\(T\) 到期零息债)的远期风险中性世界中,任何交易资产的远期价格是鞅,因此

\[E_T(B_T)=F_0=G(y_0)\]

但 \(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\)(远期收益率)小于三者的平均值(期望收益率)。

结论:在远期测度下,期望收益率高于远期收益率。两者之差就是凸性调整。

公式

所需期望收益率的近似为

\[E_T(y_T)=y_0-\frac12y_0^2\sigma_y^2T\,\frac{G''(y_0)}{G'(y_0)}\tag{30.1}\]

其中 \(\sigma_y\) 是远期收益率的波动率,\(E_T\) 表示关于 \(P(t,T)\) 的远期风险中性期望。差额

\[-\frac12y_0^2\sigma_y^2T\,\frac{G''(y_0)}{G'(y_0)}\]

就是凸性调整。因为价格随收益率下降(\(G'<0\))且价格–收益率曲线凸(\(G''>0\)),调整项为正。

证明思路(原书本章附录)。把 \(G(y_T)\) 在 \(y_0\) 处作二阶 Taylor 展开:

\[B_T=G(y_0)+(y_T-y_0)G'(y_0)+\tfrac12(y_T-y_0)^2G''(y_0)\]

在 \(T\) 远期风险中性世界中取期望,并利用 \(E_T(B_T)=G(y_0)\):

\[E_T(y_T-y_0)\,G'(y_0)+\tfrac12E_T[(y_T-y_0)^2]\,G''(y_0)=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)=\frac{1}{1+\tau y}\]

计算 \(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):

\[E_T(R_T)=R_0+\frac{R_0^2\sigma_R^2\tau T}{1+R_0\tau}\tag{30.2}\]

\(R_0\) 是 \(T\) 到 \(T^*\) 的远期利率,\(\sigma_R\) 是它的波动率。工具价值为

\[P(0,T)\,L\tau\left[R_0+\frac{R_0^2\sigma_R^2\tau T}{1+R_0\tau}\right]\]

为什么要调整?\(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\)。

\[\text{价值}=0.7513\times1000\times1\times\left[0.10+\frac{0.10^2\times0.20^2\times1\times3}{1.10}\right]=\$75.95\]

不做凸性调整的价值是 $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 年期债券的收益率:

\[G(y)=\frac{0.12}{1+y}+\frac{0.12}{(1+y)^2}+\frac{1.12}{(1+y)^3}\]
\[G'(y)=-\frac{0.12}{(1+y)^2}-\frac{0.24}{(1+y)^3}-\frac{3.36}{(1+y)^4},\qquad G''(y)=\frac{0.24}{(1+y)^3}+\frac{0.72}{(1+y)^4}+\frac{13.44}{(1+y)^5}\]

在 \(y_0=0.12\) 处,\(G'(y_0)=-2.4018\),\(G''(y_0)=8.2546\)。由 (30.1):

\[E_T(y_T)=0.12+\frac12\times0.12^2\times0.22^2\times3\times\frac{8.2546}{2.4018}=0.1236\]

工具价值 \(=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 节)是

\[W=\frac{P(t,T^*)}{P(t,T)}\]

即 \(T\) 到 \(T^*\) 零息债的远期价格。记 \(\sigma_V,\sigma_W\) 为 \(V\)、\(W\) 的波动率,\(\rho_{VW}\) 为二者的相关系数。由式 (28.35),换计价单位使 \(V\) 的增长率增加

\[\alpha_V=\rho_{VW}\sigma_V\sigma_W\tag{30.3}\]

用远期利率表示

\(W\) 不好直接观察,改用 \(T\) 到 \(T^*\) 的远期利率 \(R\)(复利频率 \(m\))表示:

\[W=\frac{1}{(1+R/m)^{m(T^*-T)}}\]

由 Itô 引理,\(\sigma_WW=\sigma_RR\,\partial W/\partial R\),即

\[\sigma_WW=-\frac{\sigma_RR(T^*-T)}{(1+R/m)^{m(T^*-T)+1}}\quad\Longrightarrow\quad\sigma_W=-\frac{\sigma_RR(T^*-T)}{1+R/m}\]

于是

\[\alpha_V=-\frac{\rho_{VR}\sigma_V\sigma_RR(T^*-T)}{1+R/m}\]

这里有一个符号细节:\(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\) 额外增长:

\[E_{T^*}(V_T)=E_T(V_T)\exp\left[-\frac{\rho_{VR}\sigma_V\sigma_RR_0(T^*-T)}{1+R_0/m}\,T\right]\tag{30.4}\]

直觉:若 \(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)=E_T(V_T)\exp\left[-\frac{(-0.4)\times0.20\times0.18\times0.08\times1}{1.08}\times5\right]=1.00535\,E_T(V_T)\]

\(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_{T^*}(R_T)=E_T(R_T)\exp\left[-\frac{\sigma_R^2R_0\tau}{1+R_0\tau}T\right]\]

所以

\[E_T(R_T)=R_0\exp\left[\frac{\sigma_R^2R_0\tau T}{1+R_0\tau}\right]\]

一阶展开 \(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 货币计量时,比率为

\[W(t)=\frac{P_X(t,T)}{P_Y(t,T)}S(t)\]

其中 \(S(t)\) 是即期汇率(每单位 X 兑多少 Y)。可以看出 \(W\) 正是 \(T\) 到期的远期汇率(Y/X)。由 (28.35),\(V\) 的增长率增加

\[\alpha_V=\rho_{VW}\sigma_V\sigma_W\tag{30.5}\]

波动率、相关为常数时

\[E_X(V_T)=E_Y(V_T)\,e^{\rho_{VW}\sigma_V\sigma_WT}\]

一阶近似为

\[E_X(V_T)=E_Y(V_T)\,(1+\rho_{VW}\sigma_V\sigma_WT)\tag{30.6}\]

第 33 章的差额互换(diff swap)估值要用到它。

例 30.4 日经指数现为 15,000 日元,1 年期美元无风险利率 5%,日元 2%,指数股息率 1%。日元计价的 1 年期远期价格(式 5.8)为

\[15{,}000e^{(0.02-0.01)\times1}=15{,}150.75\]

指数波动率 20%,1 年期日元/美元远期汇率的波动率 12%,二者相关 0.3。于是 \(E_Y(V_T)=15{,}150.75\),关于 1 年期美元零息债的远期风险中性期望为

\[15{,}150.75\,e^{0.3\times0.2\times0.12\times1}=15{,}260.23\]

这就是以美元支付的日经远期价格(近似也是其期货价格)。差额约 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\) 的期望增长率增加

\[\rho\sigma_V\sigma_S\tag{30.7}\]

用"风险市场价格"的语言说:\(V\) 的风险市场价格从 0 变为 \(\rho\sigma_S\)。

Siegel 悖论

Business Snapshot 30.1 设两种货币的利率 \(r_X,r_Y\) 为常数,\(S\) 为每单位 X 的 Y 数量。外币可视为收益率等于外国无风险利率的资产,所以在 Y 货币传统风险中性世界中

\[dS=(r_Y-r_X)S\,dt+\sigma_SS\,dz\]

由 Itô 引理,

\[d\left(\frac1S\right)=(r_X-r_Y+\sigma_S^2)\frac1S\,dt-\sigma_S\frac1S\,dz\]

而 \(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\),正好抵消,得到

\[d\left(\frac1S\right)=(r_X-r_Y)\frac1S\,dt-\sigma_S\frac1S\,dz\]

悖论消失。教训很实际:多币种模拟时,必须写明每个漂移是在哪个测度下的。

白话解释:多出来的 \(\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 章的期限结构模型在一个统一的随机模型里描述整条曲线,可以直接算出这些期望值,不需要单独调整。

常见误区:

  1. 远期利率在对应的 \(T^*\) 远期测度下无偏;但支付"在 \(T\) 发生"时测度变了,必须调整。
  2. 凸性调整的大小与 \(\sigma^2T\) 成正比,长期限、高波动时不可忽略。
  3. Quanto 调整的符号取决于标的与汇率的相关性;汇率按 Y/X 还是 X/Y 报价必须前后一致,否则相关系数符号会反。

量化实战

本章内容在量化交易中的用途

定价:CMS 互换与 CMS 上限、LIBOR 后置互换、quanto 期货和期权(美元结算的日经、恒指期货,人民币结算的境外标的等)都直接用这些公式。对利率交易台而言,凸性调整是 CMS 价差交易的核心变量:CMS 的定价取决于互换期权的波动率曲面,交易员常把"CMS 利率 − 远期互换利率"当作隐含波动率的一个线性组合来交易。

风险建模:quanto 产品对"标的–汇率相关系数"有敏感度(相关性风险),而相关系数通常无法从市场直接观察。风险系统应对相关系数做压力情景,而不是只用历史估计的点值。

系统实现:在定价库里统一用"测度 + 计价单位"框架实现,比为每个产品写特例更不易出错。具体做法是:每个随机变量登记它在哪个测度下是鞅;每个产品登记它的支付时点和支付货币;库自动计算漂移修正。Siegel 悖论提醒我们,多币种蒙特卡洛中每条漂移都要写明测度。

对因子研究和股票回测:基本无直接关联。但如果你回测的是境外股指期货的跨市场策略,期货价格中的 quanto 调整会造成期货基差与"利率差 − 股息率"之间的一个系统性偏差,不要把它误认为错误定价。

Python 示例:用测度变换检验三种调整

下面的程序做三件事:

  1. 对例 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}\)。
  2. 对例 30.4,在日元远期测度下模拟相关的指数 \(V\) 与远期汇率 \(W\)(均为对数正态鞅),用 \(W_T/W_0\) 作为测度变换权重,检验 quanto 公式。
  3. 复算例 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\) 多币种模拟的测度一致性

练习

基础

  1. 判断下列支付是否需要调整,需要哪一种:(a) 1 年后支付"届时 1 年期 LIBOR × 本金",2 年后支付;(b) 1 年后支付"届时 1 年期 LIBOR × 本金",1 年后支付;(c) 3 年后以美元支付"届时 5 年期欧元互换利率 × 美元本金"。 提示:(a) 是普通利率互换的一期,不需调整;(b) 支付提前,需要凸性调整(30.2);(c) 三种都需要:互换利率的凸性调整、若支付晚于观察还要时间调整、货币错位需要 quanto 调整。

  2. 复算例 30.1,并把期限改为 10 年,计算凸性调整的大小(以 bp 计)。 提示:\(0.01\times0.04\times10/1.1=0.00364\),即约 36bp(一阶近似)。

  3. 对例 30.2,若远期互换利率波动率从 22% 升至 30%,凸性调整变为多少? 提示:调整与 \(\sigma^2\) 成正比,\(36\times(30/22)^2\approx67\)bp。

  4. 解释为什么在远期测度下期望收益率高于远期收益率,而期望价格等于远期价格。 提示:画出凸的价格–收益率曲线,用 Jensen 不等式。

  5. 例 30.4 中若相关系数为 \(-0.3\),美元计价的日经远期价格是多少? 提示:\(15{,}150.75e^{-0.0072}=15{,}042.0\)。

进阶

  1. 用 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)\)。

  2. 证明 Siegel 悖论的化解:从 \(dS=(r_Y-r_X)S\,dt+\sigma_SS\,dz\) 出发,先用 Itô 引理求 \(d(1/S)\),再用 (30.7) 换到 X 测度。 提示:见 30.3 节,关键是 \(\rho=-1\)。

  3. 一个美元结算、支付 \(\max(V_T-K,0)\) 美元的 quanto 欧式看涨,\(V\) 为日元计价指数。写出其定价公式(把 quanto 调整写成等价股息率)。 提示:在美元测度下 \(V\) 的增长率为 \(r_{JPY}-q+\rho\sigma_V\sigma_S\)(注意汇率方向定义),套入 BSM 公式,用美元利率贴现(原书习题 30.8、30.9)。

  4. 修改量化实战代码,把例 30.2 的互换利率支付也做蒙特卡洛检验:在 \(T\) 远期测度下,债券远期价格 \(G(y_T)\) 必须是鞅。一种做法是把 \(y_T\) 设为对数正态、通过数值求解漂移使 \(E[G(y_T)]=G(y_0)\),再计算 \(E(y_T)\)。 提示:用 scipy.optimize.brentq 对漂移求根,结果应接近 0.1236。

  5. 讨论:为什么说"期限结构模型(第 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。