量化交易中文教材

第 15b 章 BSM 模型(下):定价公式、隐含波动率与股息

上一章我们得到了 BSM 偏微分方程和风险中性定价原理。本章把它们变成一个可以直接计算的公式,并回答实务中马上会碰到的三个问题:公式里唯一观测不到的参数——波动率——从哪里来?股票分红怎么办?公司自己发行的认股权证与普通期权有什么不同?

本章的公式和代码是全册后续内容(希腊字母、波动率微笑、数值方法)的基础,建议读者亲手把 BSM 定价与隐含波动率求解写一遍。

学习目标

  1. 写出并会用 BSM 欧式看涨、看跌公式,能用风险中性定价完整证明看涨公式。
  2. 解释 \(N(d_1)\) 与 \(N(d_2)\) 的含义,并用极限情形检查公式是否合理。
  3. 理解隐含波动率的定义与用途,会用二分法和 Newton–Raphson 法稳健地反解,知道什么情况下无解。
  4. 处理已知离散股息的欧式期权,判断含股息的美式看涨何时可能提前行权,会用 Black 近似。
  5. 计算新发行认股权证的价值与稀释成本,说明为何已公告的权证不必再做稀释调整。

读前导读

这一章在解决什么问题

CFA 一级、二级你已经背过 BSM 公式,也知道"\(N(d_2)\) 和行权概率有关、\(N(d_1)\) 是 delta"。这一章回答的是为什么:公式是怎么从上一章的风险中性定价"期望收益按 \(r\) 贴现"一步步算出来的,\(d_1\) 和 \(d_2\) 为什么只差一个 \(\sigma\sqrt T\),\(N(d_1)\) 为什么不是概率而 \(N(d_2)\) 是。

整条推导的骨架很简单:看涨期权到期收益是 \(\max(S_T-K,0)\),把它拆成两块——"行权时拿到一股股票"减去"行权时付出 \(K\) 元现金"。第二块的期望就是 \(K\times\) 行权概率,第一块是"股票价值 \(\times\) 只在行权时才计入"的期望。两块分别算出来、再贴现,就是 BSM 公式。数学上用到的只是正态分布的积分和一个配方技巧。

后半章是实务:隐含波动率(期权市场真正的"报价单位",类似债券用收益率而不是价格报价)、离散股息、含股息美式看涨的提前行权、认股权证的稀释。

需要先想起来的数学

1. 累积正态分布 \(N(x)\) 与密度 \(N'(x)\)。 \(N(x)=P(Z\le x)\),\(Z\) 为标准正态;\(N'(x)=\frac1{\sqrt{2\pi}}e^{-x^2/2}\) 是钟形曲线的高度。对称性:\(N(-x)=1-N(x)\)。例:\(N(0)=0.5\),\(N(1.96)=0.975\),\(N'(0)=0.399\)。见 第 00 册第 07 章 概率中的分析工具。

2. 期望是积分、截断期望。 连续变量的期望 \(E[g(V)]=\int g(v)f(v)\,dv\)。期权只在 \(V>K\) 时有收益,所以积分下限是 \(K\),这叫"截断"。例:\(Z\) 标准正态,\(E[Z\mathbf 1_{Z>0}]=\int_0^\infty z N'(z)dz=N'(0)=0.399\)。\(\mathbf 1_{A}\) 是示性函数:事件 \(A\) 发生取 1,否则取 0。见 第 00 册第 03 章 积分。

3. 积分换元。 把对 \(V\) 的积分换成对标准化变量 \(Q=(\ln V-m)/w\) 的积分,积分上下限要跟着换。就像把债券的现金流从按日期排列换成按"距今年数"排列,内容不变,只是坐标变了。见 第 00 册第 03 章 积分。

4. 配方。 \(-\tfrac12Q^2+wQ=-\tfrac12(Q-w)^2+\tfrac12w^2\)。这一步把"指数函数乘正态密度"变成"平移后的正态密度乘常数",是 BSM 证明的核心技巧。可以展开右边自己验算一次。

5. 牛顿法。 解 \(g(x)=0\):从猜测 \(x_0\) 出发,\(x_{1}=x_0-g(x_0)/g'(x_0)\),即沿切线走到零点。你在 CFA 里用计算器求 IRR/YTM 时,计算器内部做的就是这件事。见 第 00 册第 02 章 导数与泰勒展开。

怎么读这一章

核心必读:15.8 节(公式、证明、\(N(d_1)\) 与 \(N(d_2)\) 的含义、极限检查)和 15.11 节(隐含波动率)。15.8 的引理证明建议对照讲解框逐行推一遍,这是全册最值得亲手推导的一段。15.12 节股息中"美式看涨提前行权"的条件推导可以先看结论;15.10 节权证是 CFA 熟悉的稀释概念,快速阅读即可。"验证 PDE"一段第一次可以跳过,第 19a 章算希腊字母时再回来读。


15.8 BSM 定价公式

公式

第 11–13 章已经提前借用这组公式生成"理论价"、作为二叉树收敛的参照,这里给出它的正式推导与含义。不付息股票的欧式看涨与看跌期权价格为

\[c=S_0N(d_1)-Ke^{-rT}N(d_2)\tag{15.20}\]
\[p=Ke^{-rT}N(-d_2)-S_0N(-d_1)\tag{15.21}\]
\[d_1=\frac{\ln(S_0/K)+(r+\sigma^2/2)T}{\sigma\sqrt T},\qquad d_2=\frac{\ln(S_0/K)+(r-\sigma^2/2)T}{\sigma\sqrt T}=d_1-\sigma\sqrt T\]

\(N(x)\) 是标准正态分布的累积分布函数(cumulative distribution function),即标准正态变量小于 \(x\) 的概率。\(S_0\) 为当前股价,\(K\) 为执行价,\(r\) 为连续复利无风险利率,\(\sigma\) 为波动率,\(T\) 为期限。

一般时刻 \(t\) 的形式只需把 \(S_0\) 换成 \(S\)、\(T\) 换成剩余期限 \(T-t\):

\[c=SN(d_1)-Ke^{-r(T-t)}N(d_2),\quad d_1=\frac{\ln(S/K)+(r+\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}},\quad d_2=d_1-\sigma\sqrt{T-t}.\]

得到这个公式有两条路:一是在边界条件 \(c(S,T)=\max(S-K,0)\) 下求解 PDE (15.16);二是风险中性定价

\[c=e^{-rT}\hat E[\max(S_T-K,0)]\tag{15.22}\]

下面走第二条路,它只需要一个关于对数正态变量的引理。

白话解释:先看整体结构再看证明。\(\max(S_T-K,0)=S_T\mathbf 1_{S_T>K}-K\mathbf 1_{S_T>K}\)(\(\mathbf 1_{S_T>K}\) 是"行权则为 1,否则为 0")。所以看涨期权 = 一个"到期若 \(S_T>K\) 就给你一股股票"的合约,减去一个"到期若 \(S_T>K\) 就给你 \(K\) 元现金"的合约。 第二个合约好算:期望是 \(K\times\hat P(S_T>K)\),贴现后是 \(Ke^{-rT}N(d_2)\)。 第一个合约难一点:股票只在涨得高时才计入,所以期望不是"股价期望 × 概率",而要算条件期望。下面的引理就是在处理这一块,结果是 \(S_0N(d_1)\)。 两块相减就是 BSM 公式。\(S_0N(d_1)\) 和 \(Ke^{-rT}N(d_2)\) 分别是这两个"二元期权"(资产或无、现金或无)今天的价值。

证明:一个关于对数正态的引理

引理。 若 \(V\) 服从对数正态分布,\(\ln V\) 的标准差为 \(w\),则

\[E[\max(V-K,0)]=E(V)N(d_1)-KN(d_2)\tag{15A.1}\]
\[d_1=\frac{\ln[E(V)/K]+w^2/2}{w},\qquad d_2=\frac{\ln[E(V)/K]-w^2/2}{w}\]

证明。 设 \(g(V)\) 为 \(V\) 的密度,则

\[E[\max(V-K,0)]=\int_K^\infty(V-K)g(V)\,dV.\tag{15A.2}\]

记 \(\ln V\) 的均值为 \(m\)。由对数正态的期望公式 \(E(V)=e^{m+w^2/2}\),

\[m=\ln E(V)-w^2/2.\tag{15A.3}\]

作标准化 \(Q=(\ln V-m)/w\),\(Q\) 为标准正态,密度 \(h(Q)=\frac1{\sqrt{2\pi}}e^{-Q^2/2}\)。\(V=e^{Qw+m}\),\(V>K\) 等价于 \(Q>(\ln K-m)/w\),于是

\[E[\max(V-K,0)]=\int_{(\ln K-m)/w}^\infty e^{Qw+m}h(Q)\,dQ-K\int_{(\ln K-m)/w}^\infty h(Q)\,dQ.\tag{15A.5}\]

推导拆解:从 (15A.2) 到 (15A.5) 做了三件事。 第一,换元:\(V=e^{Qw+m}\),所以对 \(V\) 的积分换成对 \(Q\) 的积分,\(g(V)dV\) 换成 \(h(Q)dQ\)(两者都表示"落在这一小段的概率",换元前后概率不变)。 第二,换积分下限:\(V>K\iff\ln V>\ln K\iff Q>(\ln K-m)/w\)。 第三,把 \((V-K)\) 拆开:\(\int(V-K)h\,dQ=\int Vh\,dQ-K\int h\,dQ\),其中 \(V=e^{Qw+m}\)。 第二个积分 \(\int_{a}^\infty h(Q)dQ\) 就是 \(P(Q>a)=1-N(a)=N(-a)\),所以它等于 \(N[(m-\ln K)/w]\),这就是行权概率。

第一个被积函数可以配方:

\[e^{Qw+m}h(Q)=\frac{1}{\sqrt{2\pi}}e^{[-(Q-w)^2+2m+w^2]/2}=e^{m+w^2/2}\,h(Q-w).\]

所以

\[E[\max(V-K,0)]=e^{m+w^2/2}\int_{(\ln K-m)/w}^\infty h(Q-w)\,dQ-K\int_{(\ln K-m)/w}^\infty h(Q)\,dQ.\tag{15A.6}\]

第一个积分等于 \(1-N[(\ln K-m)/w-w]=N[(m-\ln K)/w+w]\),代入 (15A.3):

\[\frac{m-\ln K}{w}+w=\frac{\ln E(V)-w^2/2-\ln K+w^2}{w}=\frac{\ln[E(V)/K]+w^2/2}{w}=d_1 .\]

第二个积分等于 \(N[(m-\ln K)/w]=N(d_2)\)。又 \(e^{m+w^2/2}=E(V)\),引理得证。\(\square\)

推导拆解:配方这一步逐项展开如下。 \(e^{Qw+m}h(Q)=\frac1{\sqrt{2\pi}}\exp\!\big(Qw+m-\tfrac12Q^2\big)\)。 指数里 \(-\tfrac12Q^2+wQ=-\tfrac12(Q^2-2wQ+w^2)+\tfrac12w^2=-\tfrac12(Q-w)^2+\tfrac12w^2\)(加一个 \(w^2\) 再减一个 \(w^2\))。 所以整体 \(=e^{m+w^2/2}\cdot\frac1{\sqrt{2\pi}}e^{-(Q-w)^2/2}=E(V)\cdot h(Q-w)\)。 \(h(Q-w)\) 是均值为 \(w\) 的正态密度,即整条钟形曲线向右平移了 \(w\)。对它从 \(a=(\ln K-m)/w\) 积到 \(\infty\),等价于标准正态从 \(a-w\) 积到 \(\infty\),结果是 \(N(w-a)\)。 再把 \(m=\ln E(V)-w^2/2\) 代进去,就得到 \(d_1\) 的表达式。\(d_1\) 和 \(d_2\) 正好差 \(w=\sigma\sqrt T\),来源就是这次平移。

白话解释:这次平移有明确含义。"股票乘以行权示性函数"的期望里,股价高的情形权重更大(股价越高,那一股越值钱)。数学上,乘以 \(e^{Qw}\) 就是把概率重心往高股价方向推,推的距离恰好是一个 \(\sigma\sqrt T\)。所以 \(N(d_1)>N(d_2)\):在"以股票价值加权"的眼光看,行权的可能性比按普通概率看更大。第 28 章会把这个加权正式称为"以股票为计价单位的测度"。

应用到 BSM。 风险中性世界中 \(S_T\) 是对数正态的,\(\hat E(S_T)=S_0e^{rT}\),\(\ln S_T\) 的标准差 \(w=\sigma\sqrt T\)。代入引理:

\[c=e^{-rT}\left[S_0e^{rT}N(d_1)-KN(d_2)\right]=S_0N(d_1)-Ke^{-rT}N(d_2),\]
\[d_1=\frac{\ln(S_0e^{rT}/K)+\sigma^2T/2}{\sigma\sqrt T}=\frac{\ln(S_0/K)+(r+\sigma^2/2)T}{\sigma\sqrt T}.\]

看跌公式 (15.21) 可类似证明,或直接由看涨-看跌平价 \(c+Ke^{-rT}=p+S_0\) 加上 \(N(x)+N(-x)=1\) 得到。

这个引理很值得记住:后面第 17 章的 Merton 公式、第 18 章的 Black 模型,都只是把 \(E(V)\) 换成别的东西——分别是 \(S_0e^{(r-q)T}\) 和 \(F_0\)。

理解 \(N(d_1)\) 与 \(N(d_2)\)

把公式拆开看:

  • \(N(d_2)\) 是风险中性世界中看涨期权被行权的概率 \(\hat P(S_T>K)\)。
  • \(S_0N(d_1)e^{rT}\) 是风险中性世界中"\(S_T\) 若低于 \(K\) 记为 0"之后的期望,即 \(\hat E[S_T\mathbf 1_{S_T>K}]\)。

所以风险中性期望收益是 \(\hat E[S_T\mathbf 1_{S_T>K}]-K\hat P(S_T>K)=S_0N(d_1)e^{rT}-KN(d_2)\),贴现即得 (15.20)。也可以写成

\[c=e^{-rT}N(d_2)\left[\frac{S_0e^{rT}N(d_1)}{N(d_2)}-K\right]\]

各因子依次为:贴现因子、行权概率、行权条件下股价的期望值、行权时支付的执行价。

金融直觉:用例 15.6 的数字体会一下(\(S_0=42\),\(K=40\),\(N(d_1)=0.7791\),\(N(d_2)=0.7349\),\(Ke^{-rT}=38.049\),\(e^{rT}=1.0513\))。 风险中性行权概率 73.5%。若行权,你付 40 元,这部分现值 \(38.049\times0.7349=27.96\)。 若行权,你拿到股票;行权条件下股价的风险中性期望是 \(\frac{S_0e^{rT}N(d_1)}{N(d_2)}=\frac{42\times1.0513\times0.7791}{0.7349}=46.81\),高于执行价,这部分现值 \(42\times0.7791=32.72\)。 期权价值 \(32.72-27.96=4.76\)。 再看 delta:股价涨 1 元,期权大约涨 \(N(d_1)=0.78\) 元。这和债券的久期一样,是价格对标的的一阶敏感度。所以 \(N(d_1)\) 同时有两个身份:公式里"资产或无"那一块的权重,以及对冲时每份期权需要的股数。

两点提醒:(1)\(N(d_2)\) 是风险中性概率,真实世界的行权概率要把 \(d_2\) 中的 \(r\) 换成 \(\mu\)(原书习题 15.8);(2)\(N(d_1)\) 不是任何"行权概率",它的主要身份是看涨期权的 delta(第 19a 章),也是以股票为计价单位时的行权概率(第 28 章测度变换)。

极限检查

好的公式应当在极端情况下给出显然的答案。

\(S_0\) 很大。 看涨几乎必被行权,相当于交割价为 \(K\) 的远期,价值应为 \(S_0-Ke^{-rT}\)。此时 \(d_1,d_2\to+\infty\),\(N(d_1),N(d_2)\to1\),公式给出 \(S_0-Ke^{-rT}\);看跌价格 \(\to0\)。✓

\(\sigma\to0\)。 股票几乎无风险,\(S_T=S_0e^{rT}\),看涨收益为 \(\max(S_0e^{rT}-K,0)\),现值 \(\max(S_0-Ke^{-rT},0)\)。若 \(S_0>Ke^{-rT}\),则 \(\ln(S_0/K)+rT>0\),\(d_1,d_2\to+\infty\),\(c=S_0-Ke^{-rT}\);若 \(S_0<Ke^{-rT}\),则 \(d_1,d_2\to-\infty\),\(c=0\)。✓ 看跌同理趋于 \(\max(Ke^{-rT}-S_0,0)\)。

验证 PDE。 原书习题 15.17 要求直接验证 (15.20) 满足 PDE。关键恒等式是

\[SN'(d_1)=Ke^{-r(T-t)}N'(d_2),\]

推导拆解:下面的证明每一步依据如下。\(N'(x)=\frac1{\sqrt{2\pi}}e^{-x^2/2}\),所以 \(N'(d_2)/N'(d_1)=e^{-d_2^2/2+d_1^2/2}\);平方差公式 \(d_1^2-d_2^2=(d_1+d_2)(d_1-d_2)\);\(d_1-d_2=\sigma\sqrt{T-t}\),\(d_1+d_2=2[\ln(S/K)+r(T-t)]/(\sigma\sqrt{T-t})\),两者相乘再除以 2 正好是 \(\ln(S/K)+r(T-t)\)。求 \(\partial c/\partial S\) 时 \(d_1\)、\(d_2\) 都依赖 \(S\),所以要用链式法则(乘积法则加上 \(N(d_1(S))\) 对 \(S\) 求导 \(=N'(d_1)\cdot\partial d_1/\partial S\))。

证明:\(N'(d_2)/N'(d_1)=e^{(d_1^2-d_2^2)/2}=e^{(d_1+d_2)(d_1-d_2)/2}=e^{\ln(S/K)+r(T-t)}=\dfrac{S}{K}e^{r(T-t)}\)。有了它,\(\partial c/\partial S=N(d_1)+SN'(d_1)\partial d_1/\partial S-Ke^{-r(T-t)}N'(d_2)\partial d_2/\partial S=N(d_1)\)(后两项因 \(\partial d_1/\partial S=\partial d_2/\partial S\) 而抵消)。这个恒等式在第 19a、19b 章计算希腊字母时会反复用到。

美式期权与实务细节

  • 不付息股票的美式看涨永远不应提前行权(第 11 章),所以 (15.20) 也是美式看涨的价格。
  • 美式看跌没有精确的解析公式,需用二叉树等数值方法(原书第 21 章)。
  • 实务中 \(r\) 取与期权期限 \(T\) 相同的零息利率。当 \(r\) 是时间的已知函数时这在理论上正确;利率随机时,只要 \(S_T\) 对数正态且波动率参数选得恰当,也正确。期限按"剩余交易日数 / 252"计。

15.9 累积正态分布函数与数值例

计算 \(N(x)\) 可以查书末附表,在 Excel 中用 NORMSDIST,在 Python 中用 scipy.stats.norm.cdf。

例 15.6 \(S_0=42\),\(K=40\),\(r=0.1\),\(\sigma=0.2\),\(T=0.5\)。 \(d_1=\dfrac{\ln(42/40)+(0.1+0.02)\times0.5}{0.2\sqrt{0.5}}=0.7693\),\(d_2=\dfrac{\ln(42/40)+(0.1-0.02)\times0.5}{0.2\sqrt{0.5}}=0.6278\),\(Ke^{-rT}=40e^{-0.05}=38.049\)。 \(N(0.7693)=0.7791\),\(N(0.6278)=0.7349\),\(N(-0.7693)=0.2209\),\(N(-0.6278)=0.2651\)。 \(c=42\times0.7791-38.049\times0.7349=4.76\),\(p=38.049\times0.2651-42\times0.2209=0.81\)。

不计资金的时间价值,看涨买方要股价上涨 2.76 才盈亏平衡(\(40+4.76-42\)),看跌买方要股价下跌 2.81(\(42-(40-0.81)\))。


15.11 隐含波动率

定义与求解

BSM 公式中,\(S_0\)、\(K\)、\(r\)、\(T\) 都能直接观测,唯一观测不到的是 \(\sigma\)。交易员实际使用的是隐含波动率(implied volatility):使模型价格等于市场价格的那个 \(\sigma\)。

例 不付息股票欧式看涨的市场价格为 1.875,\(S_0=21\),\(K=20\),\(r=0.1\),\(T=0.25\)。(15.20) 不能解析地反解出 \(\sigma\),只能迭代:

  • 试 \(\sigma=0.20\),得 \(c=1.76\),偏低;看涨价格随 \(\sigma\) 递增,所以 \(\sigma\) 应更大。
  • 试 \(\sigma=0.30\),得 \(c=2.10\),偏高;试 \(0.25\) 仍偏高,所以 \(\sigma\in(0.20,0.25)\)。
  • 每次把区间减半(二分法),可达任意精度。答案 \(\sigma=23.5\%\)。

二分法稳健但慢(每次只减半区间)。实务多用 Newton–Raphson 法:

\[\sigma_{k+1}=\sigma_k-\frac{c_{\text{BSM}}(\sigma_k)-c_{\text{mkt}}}{\mathcal V(\sigma_k)},\qquad \mathcal V=\frac{\partial c}{\partial\sigma}=S_0\sqrt T\,N'(d_1),\]

通常 3–5 次迭代就收敛到 \(10^{-10}\)。工程上要注意三件事:

金融直觉:隐含波动率之于期权价格,正如到期收益率之于债券价格。债券价格不同票息、不同期限无法直接比,换算成 YTM 就能比;期权价格不同执行价、不同期限无法直接比,换算成隐含波动率就能比。求 YTM 时你用的是"价格对收益率的导数(修正久期 × 价格)"做牛顿迭代,求隐含波动率时用的是 vega。vega 小时迭代不稳,正像久期很短的票据,价格差一点,倒推出的收益率会差很多。

  1. 解的存在性。 看涨价格关于 \(\sigma\) 严格递增,且 \(\sigma\to0\) 时趋于下界 \(\max(S_0-Ke^{-rT},0)\)、\(\sigma\to\infty\) 时趋于上界 \(S_0\)。所以只有当市场价格严格落在这两个界之间时才有唯一解;越界的报价(常见于深度实值、报价陈旧或含提前行权溢价的美式期权)应标记为无解,而不是硬算。
  2. vega 很小时 Newton 不稳定。 深度实值或虚值期权的 vega 接近 0,牛顿步长会爆炸。稳健做法是 Newton 失败时退回二分法或 Brent 法。
  3. 深度虚实值的隐含波动率噪声大。 价格误差 \(\delta c\) 造成的隐含波动率误差约为 \(\delta c/\mathcal V\),vega 越小放大得越厉害。构建波动率曲面时通常只用平值附近和虚值一侧的期权。

美式期权的隐含波动率用二叉树配合同样的搜索得到。

用途

  • 隐含波动率反映市场对未来波动的看法,是向前看的;历史波动率是向后看的。
  • 交易员常直接用隐含波动率报价而不是用价格报价,因为它比价格稳定得多:股价一动,期权价格就变,但隐含波动率可能几乎不动。
  • 第 20 章将看到:同一标的、不同执行价和期限的期权,隐含波动率并不相同(波动率微笑),交易员用活跃期权的隐含波动率来推断其他期权的合适波动率。

VIX 指数

芝加哥期权交易所(CBOE)发布隐含波动率指数。最有名的 VIX 由大量标普 500 指数看涨、看跌期权计算,代表标普 500 的 30 天期隐含波动率,俗称"恐慌指数(fear factor)";VIX 为 15 表示 30 天隐含波动率约为 15%。计算方法见原书第 26.15 节。类似指数还有 Nasdaq 100 的 VXN、道琼斯工业指数的 VXD。

VIX 期货 2004 年上市,VIX 期权 2006 年上市,每份合约为指数 × 1,000 美元。

例 15.8 以 18.5 买入 4 月 VIX 期货,在 19.3 平仓,盈利 \((19.3-18.5)\times1{,}000=800\) 美元。

标普 500 期货和期权同时押注指数水平与波动率,VIX 期货、期权则只押注波动率。原书图 15.4 展示了 2004 年 1 月至 2013 年 6 月的 VIX:2004 年到 2007 年中多在 10–20 之间;2007 年下半年升到 30;雷曼破产后的 2008 年 10–11 月创下 80 的纪录;2010 年初回落,2010 年 5 月和 2011 年下半年因市场压力再次飙升。


15.12 股息

假设期权期内股息的金额和时间都能确定地预测(短期期权比较合理;长期期权通常改为假设已知股息率,见第 17 章)。股息按除息日(ex-dividend date)处理:除息日股价下跌股息额。严格说,因税收原因股价跌幅可能小于现金股息,期权定价中的"股息"应理解为除息日股价因股息而下跌的量——若股息 1 美元而股价通常下跌其 80%,就取 0.80。

欧式期权

把股价分成两部分:

  • 无风险部分:期权期内已知股息的现值(各笔股息从除息日按无风险利率贴现到今天);
  • 风险部分:其余。

到期时股息已经支付,无风险部分消失。所以只要把 \(S_0\) 换成风险部分、把 \(\sigma\) 理解为风险部分的波动率,BSM 公式依然正确。操作上就是:

将股价减去期权期内(除息日落在期内的)所有股息的现值,再代入 BSM。

(严格说,风险部分的波动率与整只股票的波动率不同,二者不可能同时服从 GBM;时刻 0 时前者约为后者乘以 \(S_0/(S_0-D)\),\(D\) 为股息现值。)

例 15.9 除息日在 2 个月和 5 个月后,每次 0.50 美元;\(S_0=40\),\(K=40\),\(\sigma=30\%\),\(r=9\%\),\(T=0.5\)。 股息现值 \(0.5e^{-0.09\times2/12}+0.5e^{-0.09\times5/12}=0.9742\),调整后 \(S_0=39.0258\)。 \(d_1=\dfrac{\ln(39.0258/40)+(0.09+0.045)\times0.5}{0.3\sqrt{0.5}}=0.2020\),\(d_2=0.0102\),\(N(d_1)=0.5800\),\(N(d_2)=0.4959\)。 \(c=39.0258\times0.5800-40e^{-0.045}\times0.4959=3.67\)。

一个争论。 有学者认为波动率应作用于整个股价,而不是扣除股息现值后的部分,并提出了多种数值方法(如 Areal & Rodrigues 2013 的离散股息快速树)。如果波动率来自历史数据,这些方法或许有意义;但实务中波动率几乎总是从其他期权价格隐含出来的(第 20 章),只要隐含和应用使用同一个模型,价格就是准确的,对模型细节不敏感。另外,实务中欧式期权常以标的的远期价格估值(第 18 章),不必显式估计股息;远期股价的波动率恰好等于"股价减股息现值"的波动率。所以这个两部分模型内部一致,被广泛使用。

美式看涨期权的提前行权

第 11 章证明了无股息时美式看涨不应提前行权。有股息时,提前行权只可能在除息日前的瞬间是最优的(其他时刻行权只会损失利息和期权的保险价值)。

设有 \(n\) 个除息日 \(t_1<\dots<t_n\),股息为 \(D_1,\dots,D_n\)。

最后一个除息日 \(t_n\)。 若在除息前行权,得 \(S(t_n)-K\)。若不行权,股价跌为 \(S(t_n)-D_n\),此后再无股息,期权价值由下界 (11.4) 不低于 \(S(t_n)-D_n-Ke^{-r(T-t_n)}\)。因此若

\[S(t_n)-D_n-Ke^{-r(T-t_n)}\ge S(t_n)-K\iff D_n\le K\left[1-e^{-r(T-t_n)}\right]\tag{15.24}\]

在 \(t_n\) 行权就不是最优的。反之若

\[D_n>K\left[1-e^{-r(T-t_n)}\right]\tag{15.25}\]

白话解释:(15.24) 是一笔账:除息前行权,你拿到这笔股息 \(D_n\);但你要提前付出 \(K\),损失这笔钱从 \(t_n\) 到 \(T\) 的利息 \(K[1-e^{-r(T-t_n)}]\),同时放弃剩余期限内"股价跌回 \(K\) 以下可以不行权"的保险。下界只算了利息、没算保险价值,所以当股息连利息都抵不过时,提前行权一定不划算;股息超过利息时,只有在期权深度实值、保险几乎不值钱时才划算。

那么对任何合理的股价过程,当 \(S(t_n)\) 足够高时在 \(t_n\) 行权是最优的。最后除息日离到期越近(\(T-t_n\) 越小)、股息越大,(15.25) 越容易成立。

更早的除息日 \(t_i\)(\(i<n\))。 不行权时最早的下一个行权时点是 \(t_{i+1}\),同理可得:若

\[D_i\le K\left[1-e^{-r(t_{i+1}-t_i)}\right]\tag{15.26}\]

则在 \(t_i\) 之前行权不是最优。(15.26) 近似为 \(D_i\le Kr(t_{i+1}-t_i)\):当 \(K\) 接近股价时,相当于"两次除息之间的股息率低于无风险利率",通常成立。

结论。 在许多情况下,美式看涨最可能提前行权的时点是最后一个除息日之前。若对 \(i=1,\dots,n-1\) 都满足 (15.26),且 (15.24) 也成立,提前行权就从不是最优的,美式看涨可以按欧式处理。

Black 近似

Black 建议:分别计算到期日为 \(T\) 和 \(t_n\) 的两个欧式期权价格(都用上面的股息调整法),取两者中的较大者作为美式看涨价格的近似。之所以只是近似,是因为它实际上假设持有人必须在时刻 0 就决定在 \(T\) 还是在 \(t_n\) 行权,而真实的持有人可以等到 \(t_n\) 看情况再决定——所以 Black 近似低估美式期权价值。只有一个除息日时有 Roll–Geske–Whaley 精确公式,涉及二元正态分布(作者网站 Technical Notes 4、5)。

在例 15.9 的数据下,最后除息日 \(t_n=5/12\),\(K[1-e^{-r(T-t_n)}]=40[1-e^{-0.09/12}]=0.30<0.50\),满足 (15.25),提前行权可能最优。到期日 5 个月的欧式看涨(只扣除第一笔股息)价值 3.52,小于 6 个月欧式看涨的 3.67,因此 Black 近似给出 3.67(见下面代码输出)。


15.10 认股权证与员工股票期权

普通看涨期权行权时,卖方需从市场上买股票交给买方,公司流通股数不变。认股权证(warrants)和员工股票期权(employee stock options, ESO)不同:行权时公司增发新股,以执行价卖给持有人,这会稀释现有股东。

拟新发行权证的成本

公司有 \(N\) 股,股价 \(S_0\),计划发行 \(M\) 份期权,每份可按 \(K\) 买 1 股,期限 \(T\)。设"不发行权证"时到期股价为 \(S_T\),则权益总值为 \(NS_T\)。若持有人行权,公司收到 \(MK\) 现金,权益总值变为 \(NS_T+MK\),分摊到 \(N+M\) 股,每股值 \(\frac{NS_T+MK}{N+M}\)。持有人的收益为

\[\frac{NS_T+MK}{N+M}-K=\frac{N}{N+M}(S_T-K).\]

所以每份权证的价值等于 \(\dfrac{N}{N+M}\) 份普通看涨期权(执行价 \(K\)、期限 \(T\))的价值,总成本是它的 \(M\) 倍。若发行没有带来补偿性收益,消息公布后股价会立即下跌 \(\dfrac{M}{N+M}\) 份普通看涨的价值。

例 15.7 公司有 100 万股,股价 40;拟发行 20 万份 5 年期权证,执行价 60;\(r=3\%\),\(\sigma=30\%\),无股息。 5 年期欧式看涨 BSM 价值 7.04;每份权证 \(\frac{1{,}000{,}000}{1{,}200{,}000}\times7.04=5.87\);总成本 \(200{,}000\times5.87\approx117\) 万美元;若市场认为发行毫无收益,股价下跌 1.17 至 38.83。

已发行的权证不必再调整稀释

Business Snapshot 15.3 权证、员工期权与稀释 公司有 10 万股,股价 50,意外宣布授予员工 10 万份执行价 50 的期权。若市场认为这对股东好处不大,股价立即下跌,比如跌到 45,现有股东的稀释成本为每股 5 美元、共 50 万美元。三年后股价 100,员工全部行权,每份获利 50。 有人会说"届时 10 万股每股值 100 的老股和 10 万股只付了 50 的新股合并,股价降到 75,员工每份只赚 25"——这是错的。行权早已被市场预期并反映在股价中,100 已经是"稀释后"的价格。

结论:市场有效时,稀释的影响在公告时就体现在股价里。为已发行(已公告)的权证或员工期权估值时,直接用观测到的股价,不要再做稀释调整。(也有分析师假设"权益 + 权证"总值服从对数正态,得到以权证价值表示的 BSM 型方程,见作者网站 Technical Note 3。)员工期权的其他特殊性(归属期、不可转让、提前行权)是第 16 章的主题。


量化实战:BSM 定价库与隐含波动率求解器

任何期权相关的量化系统——做市、波动率套利、风险管理、回测——底层都有两个函数:给定波动率算价格、给定价格反解隐含波动率。下面的实现:

  • bsm 支持连续股息率 \(q\)(第 17 章会用到;\(q=0\) 即本章情形)且支持 numpy 向量化;
  • implied_vol 先做无套利界检查,再用 Newton–Raphson,失败时退回 Brent 法;
  • 依次复现例 15.6、隐含波动率例子(并对比二分法的迭代次数)、模拟一条有偏斜的期权链并加上报价噪声后反解隐含波动率、用风险中性蒙特卡洛核对价格和 \(N(d_2)\)、例 15.9 与 Black 近似、例 15.7 权证。
import numpy as np
from scipy.stats import norm
from scipy.optimize import brentq

def bsm(S, K, T, r, sigma, q=0.0, kind="call"):
    """欧式期权 BSM 价格(q 为连续股息率,q=0 即不付息股票)。支持 numpy 广播。"""
    S, K, T, sigma = map(np.asarray, (S, K, T, sigma))
    d1 = (np.log(S / K) + (r - q + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    d2 = d1 - sigma * np.sqrt(T)
    if kind == "call":
        return S * np.exp(-q * T) * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)
    return K * np.exp(-r * T) * norm.cdf(-d2) - S * np.exp(-q * T) * norm.cdf(-d1)

def vega(S, K, T, r, sigma, q=0.0):
    d1 = (np.log(S / K) + (r - q + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    return S * np.exp(-q * T) * np.sqrt(T) * norm.pdf(d1)

def implied_vol(price, S, K, T, r, q=0.0, kind="call", tol=1e-10):
    """先检查无套利界,再用 Newton–Raphson(以 vega 为导数),失败时退回 Brent 法。"""
    disc_S, disc_K = S * np.exp(-q * T), K * np.exp(-r * T)
    lower = max(disc_S - disc_K, 0) if kind == "call" else max(disc_K - disc_S, 0)
    upper = disc_S if kind == "call" else disc_K
    if not (lower < price < upper):
        return np.nan                                   # 价格越界,无解
    sig = np.sqrt(2 * abs(np.log(S / K) + (r - q) * T) / T) + 0.1   # 常用初值
    for _ in range(50):
        diff = bsm(S, K, T, r, sig, q, kind) - price
        v = vega(S, K, T, r, sig, q)
        if abs(diff) < tol:
            return float(sig)
        if v < 1e-8:
            break
        sig -= diff / v
        if not (1e-4 < sig < 5):
            break
    f = lambda s: bsm(S, K, T, r, s, q, kind) - price
    return brentq(f, 1e-6, 5.0, xtol=tol)

# ---- 1) 例 15.6 ----
c = bsm(42, 40, 0.5, 0.10, 0.20); p = bsm(42, 40, 0.5, 0.10, 0.20, kind="put")
print(f"例15.6  c={c:.4f}  p={p:.4f}  平价检查 c+Ke^-rT-p-S0={c+40*np.exp(-0.05)-p-42:.2e}")

# ---- 2) 隐含波动率:原书 15.11 节的例子,二分法与 Newton 对比 ----
S, K, T, r, mkt = 21, 20, 0.25, 0.10, 1.875
lo, hi, it = 0.20, 0.30, 0
while hi - lo > 1e-6:
    mid = 0.5 * (lo + hi); it += 1
    lo, hi = (mid, hi) if bsm(S, K, T, r, mid) < mkt else (lo, mid)
print(f"二分法 {it} 次迭代: sigma={0.5*(lo+hi):.5f};Newton+Brent: {implied_vol(mkt, S, K, T, r):.5f}")
print("越界价格 0.5(低于下界 S-Ke^-rT)的隐含波动率:", implied_vol(0.5, S, K, T, r))

# ---- 3) 模拟一条期权链:带偏斜的"真实"波动率 -> 价格 -> 反解隐含波动率 ----
S0, T, r = 100.0, 0.5, 0.03
strikes = np.arange(70, 135, 5.0)
true_iv = 0.22 - 0.25 * np.log(strikes / S0) + 0.4 * np.log(strikes / S0)**2
prices = bsm(S0, strikes, T, r, true_iv)
rng = np.random.default_rng(7)
noisy = prices + rng.normal(0, 0.005, size=prices.size)          # 半个美分的报价噪声
iv_back = np.array([implied_vol(pr, S0, k, T, r) for pr, k in zip(noisy, strikes)])
for k, a, b, pr in zip(strikes, true_iv, iv_back, noisy):
    print(f"K={k:5.0f} 价格={pr:7.3f} 真实IV={a:.4f} 反解IV={b:.4f}")

# ---- 4) 风险中性蒙特卡洛核对 BSM,以及 N(d2) = 风险中性行权概率 ----
S0, K, T, r, sig = 42, 40, 0.5, 0.10, 0.20
Z = rng.standard_normal(1_000_000)
ST = S0 * np.exp((r - 0.5 * sig**2) * T + sig * np.sqrt(T) * Z)
mc = np.exp(-r * T) * np.maximum(ST - K, 0)
d2 = (np.log(S0 / K) + (r - 0.5 * sig**2) * T) / (sig * np.sqrt(T))
print(f"MC 价格 {mc.mean():.4f} ± {1.96*mc.std()/np.sqrt(mc.size):.4f};P(S_T>K)={np.mean(ST>K):.4f},N(d2)={norm.cdf(d2):.4f}")

# ---- 5) 离散股息:例 15.9 与 Black 近似 ----
S0, K, sig, r, T = 40, 40, 0.30, 0.09, 0.5
divs = [(2/12, 0.5), (5/12, 0.5)]
pv_all = sum(D * np.exp(-r * t) for t, D in divs)
c_T = bsm(S0 - pv_all, K, T, r, sig)                     # 持有到期
pv_first = divs[0][1] * np.exp(-r * divs[0][0])
c_tn = bsm(S0 - pv_first, K, 5/12, r, sig)               # 在最后除息日前行权
print(f"股息现值={pv_all:.4f}  欧式看涨={c_T:.4f}  到期日=5个月的欧式={c_tn:.4f}  Black 近似={max(c_T, c_tn):.4f}")
print(f"最后除息日能否提前行权? D_n={divs[1][1]} vs K(1-e^(-r(T-t_n)))={K*(1-np.exp(-r*(T-5/12))):.4f}")

# ---- 6) 例 15.7:认股权证 ----
c5 = bsm(40, 60, 5, 0.03, 0.30)
w = 1_000_000 / 1_200_000 * c5
print(f"5年看涨={c5:.4f}  每份权证={w:.4f}  总成本={200_000*w/1e6:.3f} 百万  股价跌幅={200_000*w/1_000_000:.3f}")

关键输出:

例15.6  c=4.7594  p=0.8086  平价检查 c+Ke^-rT-p-S0=0.00e+00
二分法 17 次迭代: sigma=0.23451;Newton+Brent: 0.23451
越界价格 0.5(低于下界 S-Ke^-rT)的隐含波动率: nan
K=   70 价格= 31.717 真实IV=0.3601 反解IV=0.3601
K=   75 价格= 26.982 真实IV=0.3250 反解IV=0.3252
K=   80 价格= 22.364 真实IV=0.2957 反解IV=0.2956
...
K=  100 价格=  6.927 真实IV=0.2200 反解IV=0.2200
...
K=  125 价格=  0.338 真实IV=0.1841 反解IV=0.1843
K=  130 价格=  0.152 真实IV=0.1819 反解IV=0.1820
MC 价格 4.7581 ± 0.0097;P(S_T>K)=0.7353,N(d2)=0.7349
股息现值=0.9742  欧式看涨=3.6712  到期日=5个月的欧式=3.5246  Black 近似=3.6712
最后除息日能否提前行权? D_n=0.5 vs K(1-e^(-r(T-t_n)))=0.2989
5年看涨=7.0402  每份权证=5.8669  总成本=1.173 百万  股价跌幅=1.173

几点观察:

  • 原书例题(4.76、0.81、23.5%、3.67、7.04、5.87)全部复现。二分法要 17 次迭代才达到 \(10^{-6}\) 精度,Newton 法一般只需 3–4 次;在需要每秒反解成千上万个报价的做市系统里,这个差别很重要。
  • 越界价格直接返回 nan。这一步不能省:真实期权数据里总有违背无套利下界的陈旧报价,若不过滤,求解器要么报错,要么返回一个毫无意义的极小波动率污染曲面。
  • 同样 0.005 的报价噪声,在平值附近(vega 大)几乎不改变隐含波动率,在 \(K=75\)、\(K=125\) 等两翼(vega 小)造成约 2 个基点的误差;真实市场的买卖价差远大于 0.005,两翼隐含波动率的不确定性要大得多。
  • 风险中性模拟的行权频率 0.7353 与 \(N(d_2)=0.7349\) 一致,印证了 \(N(d_2)\) 的概率含义。

在量化工作中,这套函数会被用来:把期权链的价格转换为隐含波动率曲面(第 20 章);比较隐含波动率与历史/预测波动率以构建波动率风险溢价策略;监控 VIX 期限结构;以及在回测中用隐含波动率而不是价格作为期权的状态变量。


本章小结

BSM 公式 \(c=S_0N(d_1)-Ke^{-rT}N(d_2)\) 可以由风险中性定价加上对数正态引理 \(E[\max(V-K,0)]=E(V)N(d_1)-KN(d_2)\) 一步得到;\(N(d_2)\) 是风险中性行权概率,\(N(d_1)\) 是看涨 delta;公式在股价极大、波动率趋零等极端情形下都给出正确的极限。波动率是唯一不可观测的参数,市场用隐含波动率报价和交流,反解时要先检查无套利界,并用 Newton 加二分/Brent 的稳健组合。已知离散股息时把股价减去期内股息现值;含股息的美式看涨只可能在除息前提前行权,最可能是最后一个除息日,Black 近似取两个欧式价格的较大者。新发行权证的价值是 \(N/(N+M)\) 份普通看涨,而已公告的权证稀释已反映在股价中。

概念 公式 / 要点
BSM 看涨 \(c=S_0N(d_1)-Ke^{-rT}N(d_2)\)
BSM 看跌 \(p=Ke^{-rT}N(-d_2)-S_0N(-d_1)\)
\(d_1,d_2\) \(d_1=\dfrac{\ln(S_0/K)+(r+\sigma^2/2)T}{\sigma\sqrt T}\),\(d_2=d_1-\sigma\sqrt T\)
对数正态引理 \(E[\max(V-K,0)]=E(V)N(d_1)-KN(d_2)\)
概率含义 \(\hat P(S_T>K)=N(d_2)\)
关键恒等式 \(SN'(d_1)=Ke^{-r(T-t)}N'(d_2)\)
隐含波动率 Newton 步 \(\sigma\leftarrow\sigma-(c(\sigma)-c_{\text{mkt}})/\mathcal V\),\(\mathcal V=S_0\sqrt TN'(d_1)\)
离散股息 \(S_0\to S_0-\text{PV(期内股息)}\)
最后除息日不提前行权 \(D_n\le K[1-e^{-r(T-t_n)}]\)
权证 每份 \(=\dfrac{N}{N+M}\times c\)

练习

基础

  1. \(S_0=52\),\(K=50\),\(r=12\%\),\(\sigma=30\%\),\(T=0.25\),求欧式看涨价格。 提示:\(d_1=0.5365\),\(d_2=0.3865\),\(c\approx5.06\)(原书习题 15.13)。
  2. \(S_0=69\),\(K=70\),\(r=5\%\),\(\sigma=35\%\),\(T=0.5\),求欧式看跌价格。 提示:\(p\approx6.40\)(原书习题 15.14)。
  3. 用例 15.6 的数据计算风险中性世界中看涨期权被行权的概率;若股票真实期望收益为 15%,真实世界的行权概率是多少? 提示:\(N(d_2)=0.7349\);把 \(d_2\) 中的 \(r=0.10\) 换成 \(\mu=0.15\) 得 \(d_2'=0.8046\),概率约 0.789。
  4. 某看涨期权市场价为 2.5,\(S_0=15\),\(K=13\),\(T=0.25\),\(r=5\%\)。求隐含波动率。 提示:迭代可得约 39.6%(原书习题 15.16)。
  5. 证明 BSM 看涨、看跌公式满足看涨-看跌平价。 提示:\(c-p=S_0[N(d_1)+N(-d_1)]-Ke^{-rT}[N(d_2)+N(-d_2)]=S_0-Ke^{-rT}\)(原书习题 15.18)。

进阶

  1. 证明 \(SN'(d_1)=Ke^{-r(T-t)}N'(d_2)\),并由此推出 \(\partial c/\partial S=N(d_1)\)。 提示:见 15.8 节"验证 PDE"(原书习题 15.17)。
  2. 股价 70,执行价 65,\(\sigma=32\%\),\(r=10\%\),\(T=0.5\),3 个月后有 1 美元股息。求欧式看涨价格,并判断美式看涨是否可能在除息日提前行权。 提示:调整后股价 \(70-e^{-0.025}=69.025\),\(c\approx10.17\);\(K[1-e^{-0.1\times0.25}]=1.60>1\),不应提前行权(原书习题 15.15 的同类计算)。
  3. 解释 Black 近似为什么会低估美式看涨价格。 提示:它强迫持有人在时刻 0 就选定行权时点,而实际持有人可在 \(t_n\) 根据股价再决定,多一个选择权(原书习题 15.20)。
  4. 一个反解器在某个看涨报价上返回了 0.1% 的隐含波动率。列出至少三种可能原因及处理办法。 提示:报价几乎等于下界(深度实值,时间价值近零);报价陈旧或买卖价中点偏离;美式期权含提前行权溢价、或股息/利率参数错误使下界计算偏差。处理:检查下界、改用虚值一侧期权、用平价反推远期替代 \(S_0\) 与股息。
  5. 公司有 50 万股,股价 30,拟发行 10 万份 3 年期执行价 35 的权证。\(r=4\%\),\(\sigma=35\%\)。估计每份权证价值和股价下跌幅度。 提示:普通看涨约 6.76,乘 \(500/600\) 得每份约 5.63,股价下跌约 \(100{,}000\times5.63/500{,}000\approx1.13\)。

原书推荐习题:15.4、15.13、15.14(BSM 基本计算);15.5、15.31(离散股息调整与提前行权判断);15.8、15.22(\(N(d_2)\) 与真实世界概率);15.16、15.19(隐含波动率,15.19 引出波动率微笑);15.17、15.18(验证 PDE 与平价);15.20、15.32(Black 近似);15.24、15.25(稀释与员工期权成本)。


原书对照

本章小节 原书章节 PDF 页码
15.8 BSM 定价公式 15.8 Black–Scholes–Merton Pricing Formulas p.358–361
15.9 累积正态分布函数 15.9 Cumulative Normal Distribution Function p.361–362
15.10 认股权证与员工期权 15.10 Warrants and Employee Stock Options(含 Business Snapshot 15.3) p.362–364
15.11 隐含波动率、VIX 15.11 Implied Volatilities p.364–365
15.12 股息 15.12 Dividends p.366–369
小结与延伸阅读 Summary, Further Reading p.369–370
习题 Practice Questions p.371–374
公式证明 Appendix: Proof of BSM Formula Using Risk-Neutral Valuation p.375–376