第 15a 章 BSM 模型(上):股价分布、波动率与 BSM 偏微分方程
20 世纪 70 年代初,Fischer Black、Myron Scholes 与 Robert Merton 解决了欧式股票期权的定价问题,得到今天无人不知的 Black–Scholes–Merton 模型(简称 BSM,或 Black–Scholes 模型)。1997 年 Merton 与 Scholes 因此获得诺贝尔经济学奖,Black 已于 1995 年去世。
在他们之前,研究者其实已经会算欧式期权的期望收益(expected payoff),卡住的地方是贴现率:期权的风险随股价和时间不断变化,没人知道该用什么利率把期望收益折回今天(第 13 章二叉树已经遇到过这个问题)。Black 和 Scholes 最初借助 CAPM 建立期权要求收益与股票要求收益的关系;Merton 给出了一条更一般、也更漂亮的路线——用期权和股票构造一个在极短时间内没有风险的组合,这个组合只能赚无风险利率。这条路线不依赖 CAPM,也是本章的主线。
BSM 是整册书的核心。为了讲透,我们把原书第 15 章拆成两章:本章(15a)讲清楚模型的"地基"——股价分布、波动率的含义和估计、BSM 偏微分方程的推导以及由此而来的风险中性定价;下一章(15b)在此基础上推出定价公式,讨论隐含波动率和股息。
学习目标
- 写出几何布朗运动下 \(\ln S_T\) 的精确分布,会求股价的置信区间、期望和方差。
- 分清 \(\mu\) 与 \(\mu-\sigma^2/2\):知道哪一个是"期望收益",哪一个是"实现的连续复利收益",并能用 Jensen 不等式或算术/几何平均解释差别(波动率拖累)。
- 用对数收益估计历史波动率及其标准误,掌握交易日年化和窗口选择的经验规则。
- 独立推导 BSM 偏微分方程:说出无风险组合是什么、为什么无风险、为什么 \(\mu\) 消失。
- 会用 PDE 检验一个价格函数是否可能是可交易衍生品的价格,并用边界条件区分不同衍生品。
- 理解风险中性定价的三个步骤及其为什么在真实世界同样成立。
读前导读
这一章在解决什么问题
CFA 里你学过单步二叉树:用 \(\Delta\) 股股票加一份期权空头造出一个无风险组合,令它赚无风险利率,就能解出期权价格,而且价格里不出现"股票上涨的真实概率"。这一章做的事情完全一样,只是把"一步"切成无穷多个极短的小步。小步里股价不再只有上下两种结果,而是连续变化,所以要借助第 14 章的 Itô 引理写出期权价格的变化;然后照抄二叉树的思路——配比股票、消掉随机项、令组合赚 \(r\)——得到一个偏微分方程(PDE)。这个方程就是 BSM 方程,下一章的定价公式是它在"到期收益 \(=\max(S-K,0)\)"这个条件下的解。
前半章(15.1–15.4)是地基:股价为什么是对数正态的、"期望收益"到底指 \(\mu\) 还是 \(\mu-\sigma^2/2\)、历史波动率怎么估。这些内容和你熟悉的业绩评估直接相关——基金报告里的算术平均收益与几何平均收益之差,在连续时间里就是 \(\sigma^2/2\)。
后半章(15.5–15.7)是本章真正的核心:无风险组合 → 消去随机项 → PDE → 风险中性定价。如果只能读懂一件事,就读懂 15.6 节的三步推导,以及为什么 \(\mu\) 会在推导中消失。
需要先想起来的数学
1. 偏导数。 \(f(S,t)\) 同时依赖股价和时间。\(\partial f/\partial S\) 是"时间不动、只动股价时 \(f\) 变化的速度",\(\partial f/\partial t\) 是"股价不动、只让时间流逝时 \(f\) 变化的速度"。例:\(f=S^2t\),则 \(\partial f/\partial S=2St\)(把 \(t\) 当常数),\(\partial f/\partial t=S^2\)(把 \(S\) 当常数)。\(\partial^2f/\partial S^2\) 是对 \(S\) 再求一次导,表示斜率本身随股价变化的快慢,类似债券的凸性。见 第 00 册第 05 章 多元微积分与优化。
2. 泰勒展开与久期凸性。 债券价格变化 \(\Delta P\approx P'\Delta y+\tfrac12P''(\Delta y)^2\),一阶项是久期,二阶项是凸性。期权价格变化同理:\(\Delta f\approx f_S\Delta S+\tfrac12 f_{SS}(\Delta S)^2+f_t\Delta t\)。本章的 Itô 引理就是这个展开,再加一条规则"\((\Delta S)^2\) 在随机世界里不可忽略,它约等于 \(\sigma^2S^2\Delta t\)"。见 第 00 册第 02 章 导数与泰勒展开。
3. 对数与指数。 \(\ln(S_T/S_0)\) 是连续复利收益;\(e^{x}\) 与 \(\ln\) 互为反函数。一个有用的公式:若 \(X\) 正态、均值 \(m\)、方差 \(v\),则 \(E[e^X]=e^{m+v/2}\),多出的 \(v/2\) 就是"波动率拖累"的来源。见 第 00 册第 04 章 级数与收敛。
4. 期望是积分、Jensen 不等式。 对凹函数(如 \(\ln\)),\(E[\ln X]\le\ln E[X]\):先平均再取对数,比先取对数再平均大。例:\(X\) 等概率取 1 和 4,\(\ln E[X]=\ln2.5=0.92\),\(E[\ln X]=(0+1.39)/2=0.69\)。见 第 00 册第 07 章 概率中的分析工具。
5. 维纳过程记号。 \(dz\)(或 \(\Delta z=\epsilon\sqrt{\Delta t}\),\(\epsilon\) 是标准正态随机数)表示一个极短时间内的随机冲击,均值 0、方差 \(\Delta t\)。\(dt\) 是确定的时间增量。第 14 章已讲过,这里只需记住:\(\Delta z\) 的量级是 \(\sqrt{\Delta t}\),比 \(\Delta t\) 大得多。
怎么读这一章
必读:15.1(对数正态分布,后面所有 \(\sigma\sqrt T\) 都来自这里)、15.5、15.6、15.7。15.3 是概念澄清,读一遍理解"波动率拖累"即可。15.4 的历史波动率估计是实务操作,可以先只看例 15.4。15.6 中"永续衍生品"一段第一次可以跳过,它是解常微分方程的练习。建议顺序:15.1 → 15.5 → 15.6 → 15.7 → 回头读 15.2–15.4。
15.1 股价的对数正态性质
模型回顾
BSM 沿用第 14 章的股价模型——几何布朗运动(geometric Brownian motion, GBM):极短时间 \(\Delta t\) 内,股价的百分比变化服从正态分布
其中 \(\phi(m,v)\) 表示均值 \(m\)、方差 \(v\) 的正态分布;\(\mu\) 是股票的年化期望收益率,\(\sigma\) 是年化波动率(volatility)。连续时间写法是 \(dS=\mu S\,dt+\sigma S\,dz\),\(dz\) 是维纳过程增量。
\(\ln S_T\) 的精确分布
对 \(G=\ln S\) 用 Itô 引理(第 14 章):\(\partial G/\partial S=1/S\),\(\partial^2G/\partial S^2=-1/S^2\),\(\partial G/\partial t=0\),于是
右边的漂移和波动都是常数,所以 \(\ln S\) 是一个带常数漂移的算术布朗运动,从 0 到 \(T\) 的增量精确地(不是近似)服从正态分布:
推导拆解:Itô 引理可以理解为"带一条特殊规则的二阶泰勒展开": \(dG=G_S\,dS+G_t\,dt+\tfrac12G_{SS}(dS)^2\),其中特殊规则是 \((dS)^2=\sigma^2S^2dt\)(因为 \((dz)^2=dt\),而 \(dt\cdot dz\)、\((dt)^2\) 都更小,可以丢掉)。 代入 \(G=\ln S\):第一项 \(\frac1S(\mu S\,dt+\sigma S\,dz)=\mu\,dt+\sigma\,dz\);第二项 \(0\);第三项 \(\tfrac12\cdot(-\tfrac1{S^2})\cdot\sigma^2S^2dt=-\tfrac12\sigma^2dt\)。 三项相加就是 \(dG=(\mu-\sigma^2/2)dt+\sigma\,dz\)。那个 \(-\sigma^2/2\) 来自 \(\ln\) 的二阶导为负——也就是 \(\ln\) 的凹性。普通微积分里 \((dS)^2\) 是可以扔掉的高阶小量,在随机世界里它和 \(dt\) 同阶,扔掉就会算错。
(这一结果在第 14 章 14.7 节已经出现,这里为 BSM 的推导重新编号列出。)一个变量的对数服从正态分布,这个变量就服从对数正态分布(lognormal distribution)。\(\ln S_T\) 的标准差是 \(\sigma\sqrt T\)——不确定性随期限的平方根增长,这是后面所有公式里 \(\sigma\sqrt T\) 反复出现的原因。
例 15.1 \(S_0=40\),\(\mu=16\%\),\(\sigma=20\%\),\(T=0.5\)。 \(\ln S_T\sim\phi[\ln40+(0.16-0.02)\times0.5,\ 0.04\times0.5]=\phi(3.759,\ 0.02)\),标准差 \(\sqrt{0.02}=0.141\)。 95% 置信区间是 \(3.759\pm1.96\times0.141\),取指数得 \(32.55<S_T<56.56\)。 注意区间关于 40 并不对称:向上走了 16.56,向下只走了 7.45,这就是对数正态的右偏。
期望与方差
对数正态变量只取正值、右偏,均值、中位数、众数各不相同。利用"若 \(X\sim\phi(m,v)\),则 \(E[e^X]=e^{m+v/2}\)"可得
推导只用一行:\(E(S_T)=S_0\exp[(\mu-\sigma^2/2)T+\sigma^2T/2]=S_0e^{\mu T}\);\(E(S_T^2)=S_0^2\exp[2(\mu-\sigma^2/2)T+2\sigma^2T]=S_0^2e^{2\mu T+\sigma^2T}\),减去 \(E(S_T)^2\) 即得方差。式 (15.4) 正好说明 \(\mu\) 确实是"期望收益率":股价的期望以速率 \(\mu\) 增长。
例 15.2 \(S_0=20\),\(\mu=20\%\),\(\sigma=40\%\),\(T=1\): \(E(S_T)=20e^{0.2}=24.43\);\(\operatorname{var}(S_T)=400e^{0.4}(e^{0.16}-1)=103.54\);标准差 \(10.18\)。
股价的中位数是 \(S_0e^{(\mu-\sigma^2/2)T}\)(因为 \(\ln S_T\) 的中位数等于其均值),在例 15.2 中为 \(20e^{0.12}=22.55\),低于均值 24.43。均值被少数大涨路径拉高——这件事和下面的"期望收益陷阱"是同一枚硬币的两面。
15.2 收益率的分布
定义 \(0\) 到 \(T\) 实现的年化连续复利收益率 \(x\):\(S_T=S_0e^{xT}\),即
由 (15.2) 直接得到
两点值得记住:
- 均值是 \(\mu-\sigma^2/2\),不是 \(\mu\);
- 标准差 \(\sigma/\sqrt T\) 随 \(T\) 增加而减小。我们对"未来 20 年平均每年赚多少"的把握,比对"明年赚多少"的把握大得多。但请注意这说的是年化收益;总收益 \(xT\) 的标准差 \(\sigma\sqrt T\) 是随 \(T\) 增大的。
例 15.3 \(\mu=17\%\),\(\sigma=20\%\),\(T=3\)。均值 \(0.17-0.04/2=15\%\),标准差 \(\sqrt{0.04/3}=11.55\%\)。三年平均年收益的 95% 区间为 \(15\%\pm1.96\times11.55\%\),即 \(-7.6\%\) 到 \(37.6\%\)。
15.3 期望收益:\(\mu\) 还是 \(\mu-\sigma^2/2\)?
投资者要求的期望收益 \(\mu\) 取决于股票的系统性风险和利率水平——这本来是个麻烦的量。好消息是:我们马上会看到,用股价表示的期权价值与 \(\mu\) 完全无关。但在那之前,先澄清一个初学者几乎都会掉进去的坑。
既然短时间内的期望收益是 \(\mu\Delta t\),似乎 \(\mu\) 就是期望的连续复利收益率。错。由 (15.7),\(E(x)=\mu-\sigma^2/2\)。有两种直观解释:
解释一:算术平均与几何平均。 把时间切成很多长度为 \(\Delta t\) 的小区间,每个区间的收益 \(\Delta S_i/S_i\) 的算术平均接近 \(\mu\Delta t\);但以 \(\Delta t\) 为复利区间,整个时期真正实现的年化收益是几何平均,接近 \(\mu-\sigma^2/2\)。
解释二:Jensen 不等式。 由 (15.4),\(\ln E(S_T)=\ln S_0+\mu T\)。如果把 \(\ln E(S_T)\) 误当作 \(E[\ln S_T]\),就会得到 \(E(x)=\mu\)。但 \(\ln\) 是凹函数,\(E[\ln S_T]<\ln E(S_T)\),所以 \(E(x)<\mu\)。
金融直觉:这就是你在 CFA 业绩评估里见过的"几何平均 ≈ 算术平均 − 方差/2"。一个直观例子:涨 50% 再跌 50%,算术平均 0%,实际 \(1.5\times0.5=0.75\),亏 25%。波动越大,算术平均和真实复利增长之间的缺口越大,缺口约等于方差的一半。\(\mu\) 是"下一瞬间的期望收益",对应算术平均;\(\mu-\sigma^2/2\) 是"一条典型路径长期的复利增长率",对应几何平均。两者都对,只是回答的问题不同。
原书默认"期望收益"指 \(\mu\)。在量化实务里,\(\sigma^2/2\) 这一差额常被称作波动率拖累(volatility drag):波动率 30% 时它是 4.5 个百分点/年,绝不可忽略。
Business Snapshot 15.1 共同基金收益可能误导 某基金五年的年收益(年复利)为 15%、20%、30%、−20%、25%,算术平均 14%。但 100 美元五年后变成 \(100\times1.15\times1.20\times1.30\times0.80\times1.25=179.40\), 而按 14% 复利应是 \(100\times1.14^5=192.54\)。实际年化收益只有 12.4%(\(1.124^5\times100=179.40\))。几何平均(1.124)总小于算术平均(1.140),而几何平均才对应真实实现的收益。有些司法辖区要求基金按几何平均报告。
15.4 波动率
含义
波动率 \(\sigma\) 度量我们对股票收益的不确定程度,股票通常在 15%–60% 之间。由 (15.7),波动率可以定义为以连续复利表示的一年期收益率的标准差。
\(\Delta t\) 很小时,\(\sigma^2\Delta t\) 近似为 \(\Delta t\) 内百分比变化的方差,\(\sigma\sqrt{\Delta t}\) 近似为其标准差。例如 \(\sigma=30\%\)、\(S=50\) 时,一周百分比变化的标准差是 \(30\%\times\sqrt{1/52}=4.16\%\),即一个标准差的价格变动约为 \(50\times0.0416=2.08\) 美元。不确定性随时间跨度的平方根增长:4 周的标准差约是 1 周的 2 倍。
用历史数据估计波动率
设有 \(n+1\) 个价格观测 \(S_0,\dots,S_n\),间隔为 \(\tau\) 年。令对数收益 \(u_i=\ln(S_i/S_{i-1})\),样本标准差
由 (15.2),\(u_i\) 的标准差是 \(\sigma\sqrt\tau\),所以
(实务中常直接假设 \(\bar u=0\)。标准误公式来自正态样本方差的抽样分布:\(\operatorname{var}(s^2)\approx2\sigma^4/n\),再用 delta 方法得 \(\operatorname{sd}(s)\approx\sigma/\sqrt{2n}\),参见第 03 册第 09 章 9.9 节的 Delta 方法。)
\(n\) 取多大? 数据越多估计越准,但 \(\sigma\) 本身随时间变化,太旧的数据不相关。经验做法是用最近 90–180 天的日收盘价;或令 \(n\) 等于波动率要用到的天数——为 2 年期期权估值就用过去 2 年的日数据。更好的方法(EWMA、GARCH)见本册第 23 章与第 06 册第 03a 章。
例 15.4(表 15.1) 连续 21 个交易日的收盘价:20.00, 20.10, 19.90, 20.00, 20.50, 20.25, 20.90, 20.90, 20.90, 20.75, 20.75, 21.00, 21.10, 20.90, 20.90, 21.25, 21.40, 21.40, 21.25, 21.75, 22.00。 \(n=20\),\(\sum u_i=0.09531\),\(\sum u_i^2=0.00326\)。日收益标准差 \(\sqrt{0.00326/19-0.09531^2/(20\times19)}=0.01216\)。 取 \(\tau=1/252\),年化波动率 \(0.01216\sqrt{252}=19.3\%\),标准误 \(0.193/\sqrt{40}=3.1\%\)。
20 个观测给出的波动率估计,误差有 ±3 个百分点——这提醒我们历史波动率其实是相当"粗"的量。
股息的处理。 包含除息日的区间收益应改为 \(u_i=\ln[(S_i+D)/S_{i-1}]\)。但除息日附近的价格受税收影响,更稳妥的做法是直接剔除这些区间。
交易日还是日历日?
研究表明交易所开市时的波动率远高于闭市时,因此实务中估计和使用波动率时都忽略非交易日:
股票通常取每年 252 个交易日;期权期限也按交易日计,\(T=\text{剩余交易日数}/252\)。
Business Snapshot 15.2 波动率从何而来? 直觉上,新信息的到达造成波动。若信息按日历时间均匀到达,周五收盘到周一收盘(3 天)的收益方差应是相邻交易日的 3 倍。Fama (1965)、French (1980)、French & Roll (1986) 发现只高 22%、19%、10.7%。也许新闻多在开市时发布?Roll (1984) 研究橙汁期货——其最重要的信息是天气,任何时间到达的概率都一样——周五到周一的方差也只是相邻交易日的 1.54 倍。合理的结论是:波动率在很大程度上由交易本身造成。
15.5 BSM 微分方程背后的思想
核心直觉
BSM 微分方程是任何依赖于不付息股票的衍生品价格都必须满足的方程。推导思路与第 13 章二叉树完全相同:用衍生品和股票构造一个无风险组合,无套利要求它只赚无风险利率 \(r\)。
为什么能构造出无风险组合?因为股价和衍生品价格受同一个不确定性来源——股价变动——驱动。在极短时间内,二者完全相关,适当配比就能把这个共同的不确定性对消。
数值例。 设当前 \(\Delta c=0.4\,\Delta S\)(期权价格对股价的斜率为 0.4)。组合"买 40 股 + 卖 100 份看涨"是无风险的:股价涨 0.10,股票赚 \(40\times0.10=4\) 美元,期权空头亏 \(100\times0.04=4\) 美元。
金融直觉:这和用国债期货对冲债券组合的久期是同一件事。债券组合久期 6、期货久期 4,就按 6:4 的比例做空期货,让利率小幅变动时两边损益对消;利率大幅变动后久期会变,要重新调整。这里的 0.4 就是期权对股价的"久期"(delta),对冲比例跟着它走。
与二叉树的关键区别在于:BSM 中这个组合只在瞬间无风险。股价和时间一变,斜率就变——比如明天变成 0.5,每卖 100 份看涨就得持有 50 股,需要再买 10 股。这就是再平衡(rebalancing),第 19a 章会详细讨论。但无论斜率如何变化,在任意一个极短时间段里,无风险组合的收益都必须是无风险利率——这是 BSM 分析的全部核心。
模型假设
- 股价服从 GBM,\(\mu\)、\(\sigma\) 为常数;
- 允许卖空,且可充分使用卖空所得;
- 无交易成本和税收,证券完全可分;
- 衍生品存续期内股票不支付股息;
- 不存在无风险套利机会;
- 证券交易连续进行;
- 无风险利率 \(r\) 为常数,且对所有期限相同。
其中一部分可以放松:\(\sigma\) 和 \(r\) 可以是 \(t\) 的已知函数;利率甚至可以是随机的,只要期权到期时的股价分布仍是对数正态。股息的放松见第 15b 章和第 17 章。
15.6 BSM 偏微分方程的推导
第一步:写出股价和衍生品的动态
股价过程
设衍生品价格为 \(f(S,t)\)。由 Itô 引理
离散化:
关键观察:两式中的 \(\Delta z=\epsilon\sqrt{\Delta t}\) 是同一个随机量。所以只要配比得当,就能把它消掉。
推导拆解:先看 (15.9) 每一项从哪来。对 \(f(S,t)\) 做二阶泰勒展开:\(df=f_S\,dS+f_t\,dt+\tfrac12f_{SS}(dS)^2\)(交叉项 \(dS\,dt\) 和 \((dt)^2\) 太小,丢掉)。 代入 \(dS=\mu S\,dt+\sigma S\,dz\):\(f_S\,dS=f_S\mu S\,dt+f_S\sigma S\,dz\);\((dS)^2\) 按 Itô 规则只留下 \(\sigma^2S^2dt\),所以第三项是 \(\tfrac12f_{SS}\sigma^2S^2dt\)。 把所有 \(dt\) 项归到一起、\(dz\) 项单独放,就是 (15.9)。要点是:\(df\) 的随机部分只有 \(f_S\sigma S\,dz\),它正好是股票随机部分 \(\sigma S\,dz\) 的 \(f_S\) 倍。所以持有 \(f_S\) 股股票,随机部分就和一份衍生品完全一样——这就是下一步配比的依据。
白话解释:\(dS\) 和 \(df\) 都可以拆成"可预测的漂移"加"随机冲击"两块。关键在于两者的随机冲击来自同一个 \(dz\),只是大小不同:股票的冲击是 \(\sigma S\,dz\),衍生品是 \(f_S\sigma S\,dz\)。就像两只债券对同一个利率因子有不同的久期,按久期比例配比就能对消利率风险。
第二步:构造无风险组合
取组合:空 1 份衍生品,多 \(\partial f/\partial S\) 股股票。组合价值
在 \(\Delta t\) 内(持股数量 \(\partial f/\partial S\) 保持不变)
代入 (15.10)(15.11),含 \(\mu\) 的项和含 \(\Delta z\) 的项都两两抵消:
- \(\Delta z\) 项:\(-\frac{\partial f}{\partial S}\sigma S\Delta z+\frac{\partial f}{\partial S}\sigma S\Delta z=0\);
- \(\mu\) 项:\(-\frac{\partial f}{\partial S}\mu S\Delta t+\frac{\partial f}{\partial S}\mu S\Delta t=0\)。
剩下
这里没有任何随机项,所以组合在 \(\Delta t\) 内无风险。
推导拆解:把 (15.13) 完整展开一遍,看清每一项去了哪里。 \(-\Delta f=-f_S\mu S\Delta t-f_t\Delta t-\tfrac12f_{SS}\sigma^2S^2\Delta t-f_S\sigma S\Delta z\) \(+f_S\Delta S=+f_S\mu S\Delta t+f_S\sigma S\Delta z\) 逐列相加:第一列 \(\mu\) 项对消;最后一列 \(\Delta z\) 项对消;中间两项 \(-f_t\Delta t\) 和 \(-\tfrac12f_{SS}\sigma^2S^2\Delta t\) 没有对手,留下来,就是 (15.14)。 注意 \(\mu\) 的消失不是额外假设,而是"消掉 \(\Delta z\)"的副产品:\(\mu\) 和 \(\Delta z\) 都只通过 \(\Delta S\) 进入 \(\Delta f\),系数都是 \(f_S\),所以对冲掉 \(\Delta S\) 的一阶敞口,就同时把两者都拿掉了。 剩下的两项也有含义:\(-f_t\) 是空头吃到的时间衰减(期权多头亏时间价值,空头赚),\(-\tfrac12f_{SS}\sigma^2S^2\) 是空头付出的凸性成本。组合没有随机性,但并非没有盈亏——它的盈亏是确定的。
第三步:无套利
无风险组合必须赚无风险利率。若它赚得更多,套利者借钱买入组合;若赚得更少,就卖空组合、把钱存入无风险资产。因此
把 (15.12)(15.14) 代入:
整理得到 Black–Scholes–Merton 偏微分方程:
推导拆解:从 (15.15) 到 (15.16) 只是代数整理。左边 \(\Delta\Pi\) 用 (15.14),右边 \(\Pi\) 用 (15.12): \((-f_t-\tfrac12\sigma^2S^2f_{SS})\Delta t=r(-f+f_SS)\Delta t\)。 两边除以 \(\Delta t\),再同乘 \(-1\):\(f_t+\tfrac12\sigma^2S^2f_{SS}=rf-rSf_S\)。 把 \(rSf_S\) 移到左边,就是 (15.16)。 这是"偏微分方程",因为未知量是一个函数 \(f(S,t)\),方程约束的是它对两个变量的导数之间的关系,而不是某个数。
金融直觉:把 (15.16) 读成一张持有期损益表。左边是持有一份衍生品、并用 \(f_S\) 股股票对冲后的确定收益来源:时间流逝 \(f_t\)、凸性收益 \(\tfrac12\sigma^2S^2f_{SS}\),再加上卖空 \(f_S\) 股所得资金(或买股所需融资)的利息 \(rSf_S\);右边是把 \(f\) 这笔钱存银行的利息 \(rf\)。方程说:对冲好的期权头寸,和存银行一样赚 \(r\),不多不少。
方程的含义
- \(\mu\) 不见了。 投资者对风险的态度只通过 \(\mu\) 进入模型,而 \(\mu\) 在第二步就被对消掉了。这是下一节风险中性定价的根源。
- 方程有无穷多个解。 任何以 \(S\) 为标的的衍生品都满足它;具体是哪种衍生品由**边界条件(boundary conditions)**决定。欧式看涨:\(t=T\) 时 \(f=\max(S-K,0)\);欧式看跌:\(t=T\) 时 \(f=\max(K-S,0)\)。
- 用希腊字母的语言重读。 记 \(\Theta=\partial f/\partial t\)、\(\Delta=\partial f/\partial S\)、\(\Gamma=\partial^2f/\partial S^2\),方程就是 \(\Theta+rS\Delta+\frac12\sigma^2S^2\Gamma=rf\)。第 19b 章会看到,它把时间衰减和凸性(gamma)绑在一起:delta 中性时,赚 gamma 的钱必须用 theta 来付。
- 一个技术细节。 第二步中我们把 \(\partial f/\partial S\) 当作 \(\Delta t\) 内的常数,这正是"每隔 \(\Delta t\) 再平衡一次"的含义;严格的连续时间推导要用自融资组合的随机积分,结论相同。
例 15.5(远期合约) 不付息股票远期多头的价值 \(f=S-Ke^{-r(T-t)}\)。 \(\partial f/\partial t=-rKe^{-r(T-t)}\),\(\partial f/\partial S=1\),\(\partial^2f/\partial S^2=0\)。 左边 \(=-rKe^{-r(T-t)}+rS=r\big(S-Ke^{-r(T-t)}\big)=rf\)。✓
白话解释:第 2 点很重要。PDE 本身只是"无套利"的一般约束,所有以同一只股票为标的的衍生品——看涨、看跌、远期、障碍期权——都满足同一个方程。区分它们的是"到期时付多少"这一终值条件,以及障碍等边界上的条件。这和债券定价类似:所有现金流都按同一条收益率曲线贴现,不同债券的区别只在现金流本身。
永续衍生品:一个可以手解的例子
设某永续衍生品在股价首次触及 \(H\) 时支付固定金额 \(Q\)。它的价值与 \(t\) 无关,\(\partial f/\partial t=0\),PDE 退化为常微分方程
- \(S<H\)(需要股价上涨到 \(H\)):边界条件 \(f(0)=0\)、\(f(H)=Q\)。试 \(f=QS/H\):\(rS\cdot Q/H=rQS/H\) ✓,两个边界也满足。
- \(S>H\)(需要股价下跌到 \(H\)):边界条件 \(S\to\infty\) 时 \(f\to0\),\(f(H)=Q\)。试 \(f=Q(S/H)^{-\alpha}\),\(\alpha>0\),代入得 \(-r\alpha+\tfrac12\sigma^2\alpha(\alpha+1)-r=0\),即 \((\alpha+1)(\tfrac12\sigma^2\alpha-r)=0\),取正根 \(\alpha=2r/\sigma^2\):
原书习题 15.23 用它为永续美式看跌定价:持有人选择一个行权边界 \(H\),股价首次跌到 \(H\) 时行权得 \(K-H\),于是 \(f=(K-H)(S/H)^{-2r/\sigma^2}\),再对 \(H\) 求最优即可。
可交易衍生品的价格
反过来看:任何满足 (15.16) 的函数 \(f(S,t)\) 都是某个可交易衍生品的理论价格;不满足 (15.16) 的函数不可能是衍生品价格,否则存在套利。
- \(e^S\) 不满足方程。若某工具价格恒为 \(e^S\),就存在套利。
- \(\dfrac{e^{(\sigma^2-2r)(T-t)}}{S}\) 满足方程,它是到期支付 \(1/S_T\) 的衍生品的价格(原书习题 15.11、15.12、15.28 是同类练习)。
本章"量化实战"用有限差分把这两个例子数值检验了一遍。
15.7 风险中性定价
为什么可以假设投资者风险中性
BSM 方程只含股价、时间、波动率和无风险利率,这些量都与投资者的风险偏好无关。唯一依赖风险偏好的 \(\mu\)(风险厌恶越强,要求的 \(\mu\) 越高)在推导中被消去了。
既然风险偏好不进入方程,它就不影响方程的解。于是我们可以任意假设一种风险偏好来求解——最方便的是所有投资者都风险中性。在风险中性世界里:
- 所有投资资产的期望收益都是 \(r\)(不需要风险溢价);
- 任何现金流的现值 = 其期望值按 \(r\) 贴现。
定价三步法
对在单一时点支付的衍生品:
- 假设标的资产的期望收益为 \(r\),即令 \(\mu=r\);
- 计算衍生品到期收益的期望值;
- 按无风险利率贴现。
记风险中性期望为 \(\hat E\),则 \(f_0=e^{-rT}\hat E[\text{到期收益}]\)。
这不是"假设世界真的风险中性"
风险中性定价只是求解 BSM 方程的技巧,得到的价格在真实世界里同样正确。原因是:从风险中性世界换到风险厌恶世界时,有两件事同时变化——股价的期望增长率从 \(r\) 变成 \(\mu\),衍生品的贴现率也从 \(r\) 变成某个更高的值——两种变化恰好完全抵消。第 13 章一步二叉树里,这一点可以显式算出来;BSM 方程是它的连续时间版本。
金融直觉:用 CFA 的单步二叉树最容易看清这种抵消。\(S_0=20\),一年后 22 或 18,\(r=0\)(简化),看涨 \(K=21\) 到期支付 1 或 0。复制组合是 0.25 股股票、借 4.5 元,成本 \(0.25\times20-4.5=0.5\),这就是期权价格,里面没有用到任何概率。 风险中性下上涨概率 \(p=(20-18)/(22-18)=0.5\),期望收益 \(0.5\times1=0.5\),按 \(r=0\) 贴现得 0.5。真实世界若上涨概率是 0.7,期权期望收益变成 0.7,但期权比股票风险大得多,贴现率也要大幅提高,最后算出来仍是 0.5。"概率换了,贴现率也跟着换",两者对消,这就是风险中性定价"恰好正确"的原因。
由此也能看清 \(\mu\) 的角色:\(\mu\) 决定真实世界的行权概率、期望收益,也决定对冲策略在真实世界的盈亏分布(第 19a 章模拟中会看到),但不决定期权价格。
应用:股票远期合约
设利率恒为 \(r\)。远期多头到期价值 \(S_T-K\),
风险中性下 \(\mu=r\),由 (15.4)
所以 \(f=S_0-Ke^{-rT}\),与第 5 章用无套利得到的式 (5.5) 一致。下一章我们用同样的三步法得到 BSM 期权定价公式。
量化实战:波动率估计、波动率拖累与 PDE 检验
本章内容在量化工作中有三类直接用途。
风险模型与仓位缩放。 历史波动率(对数收益、交易日年化)是风险平价、波动率目标(vol targeting)等仓位管理方法的输入。标准误 \(\hat\sigma/\sqrt{2n}\) 告诉你:用 60 个日收益估计 25% 的波动率,误差约 ±2.3 个百分点——这决定了波动率目标策略中仓位"抖动"有多少来自估计噪声,也是选择窗口长度、是否引入 EWMA/GARCH 的依据。"波动率主要由交易产生"则意味着隔夜收益和日内收益应分开建模,节假日不应按日历日计入方差。
回测与业绩评估。 算术平均与几何平均之差 \(\sigma^2/2\) 是回测报告里最常见的陷阱之一:用日收益均值乘 252 得到的"年化收益"系统性高于真实复利增长率。对杠杆策略尤其严重——杠杆 \(L\) 倍时拖累为 \(L^2\sigma^2/2\),这也是杠杆 ETF 长期损耗的来源。
定价代码的单元测试。 任何自己写的衍生品定价函数,都可以用"是否满足 BSM 方程"做快速检验:用有限差分算 \(\partial_t f\)、\(\partial_S f\)、\(\partial_{SS}f\),看残差是否为零。
下面的代码依次:复现例 15.4;用模拟验证 (15.4)(15.5) 和 \(E(x)=\mu-\sigma^2/2\);展示波动率拖累;验证标准误公式;用 PDE 残差检验几个候选价格函数。
import numpy as np
# ---- 1) 复现例 15.4(表 15.1):历史波动率及其标准误 ----
S = np.array([20.00, 20.10, 19.90, 20.00, 20.50, 20.25, 20.90, 20.90, 20.90, 20.75,
20.75, 21.00, 21.10, 20.90, 20.90, 21.25, 21.40, 21.40, 21.25, 21.75, 22.00])
u = np.diff(np.log(S)) # u_i = ln(S_i / S_{i-1})
n = len(u)
s = u.std(ddof=1) # 日对数收益样本标准差
sigma_hat = s * np.sqrt(252) # 交易日年化
se = sigma_hat / np.sqrt(2 * n)
print(f"n={n}, sum u={u.sum():.5f}, sum u^2={np.sum(u**2):.5f}")
print(f"日波动率={s:.5f}, 年化波动率={sigma_hat:.3f}, 标准误={se:.3f}")
# ---- 2) 模拟几何布朗运动,检验对数正态性质(例 15.2)----
rng = np.random.default_rng(2024)
S0, mu, sigma, T = 20.0, 0.20, 0.40, 1.0
Z = rng.standard_normal(2_000_000)
ST = S0 * np.exp((mu - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * Z)
print(f"E(S_T): 模拟 {ST.mean():.2f} 理论 {S0*np.exp(mu*T):.2f}")
print(f"var(S_T): 模拟 {ST.var():.2f} 理论 {S0**2*np.exp(2*mu*T)*(np.exp(sigma**2*T)-1):.2f}")
print(f"E[ln(S_T/S0)]/T: 模拟 {np.log(ST/S0).mean()/T:.4f} 理论 mu-sigma^2/2 = {mu-sigma**2/2:.4f}")
# ---- 3) 波动率拖累:日度模拟 10 年,算术平均 vs 几何(连续复利)收益 ----
days, years, n_paths = 252, 10, 20000
dt = 1 / days
mu, sigma = 0.10, 0.30
eps = rng.standard_normal((n_paths, days * years))
simple_ret = mu * dt + sigma * np.sqrt(dt) * eps # 离散形式 dS/S = mu dt + sigma dz
arith = simple_ret.mean() / dt
log_growth = np.log1p(simple_ret).sum(axis=1).mean() / years
print(f"日收益算术平均年化 {arith:.4f},实现的连续复利年收益均值 {log_growth:.4f},理论 {mu - sigma**2/2:.4f}")
# ---- 4) 标准误 sigma/sqrt(2n) 的蒙特卡洛验证(真实 sigma=25%,用 60 个日收益估计)----
true_sig, n_obs = 0.25, 60
r = true_sig / np.sqrt(252) * rng.standard_normal((50000, n_obs))
est = r.std(axis=1, ddof=1) * np.sqrt(252)
print(f"估计量标准差 {est.std():.4f},公式 {true_sig/np.sqrt(2*n_obs):.4f}")
# ---- 5) 用有限差分检查一个函数是否满足 BSM 偏微分方程 ----
def pde_residual(f, S, t, r, sigma, h=1e-3, k=1e-5):
f_t = (f(S, t + k) - f(S, t - k)) / (2 * k)
f_S = (f(S + h, t) - f(S - h, t)) / (2 * h)
f_SS = (f(S + h, t) - 2 * f(S, t) + f(S - h, t)) / h**2
return f_t + r * S * f_S + 0.5 * sigma**2 * S**2 * f_SS - r * f(S, t)
r, sigma, T, K = 0.05, 0.2, 1.0, 50.0
cands = {
"远期 S-K e^{-r(T-t)}": lambda S, t: S - K * np.exp(-r * (T - t)),
"支付 1/S_T 的衍生品": lambda S, t: np.exp((sigma**2 - 2 * r) * (T - t)) / S,
"e^S(不可交易)": lambda S, t: np.exp(S),
"S^2(缺少时间因子)": lambda S, t: S**2,
}
for name, f in cands.items():
print(f"{name:<22s} 残差 = {pde_residual(f, 3.0, 0.3, r, sigma):+.6f}")
关键输出:
n=20, sum u=0.09531, sum u^2=0.00326
日波动率=0.01216, 年化波动率=0.193, 标准误=0.031
E(S_T): 模拟 24.44 理论 24.43
var(S_T): 模拟 103.87 理论 103.54
E[ln(S_T/S0)]/T: 模拟 0.1202 理论 mu-sigma^2/2 = 0.1200
日收益算术平均年化 0.0996,实现的连续复利年收益均值 0.0545,理论 0.0550
估计量标准差 0.0230,公式 0.0228
远期 S-K e^{-r(T-t)} 残差 = +0.000000
支付 1/S_T 的衍生品 残差 = -0.000000
e^S(不可交易) 残差 = +5.623951
S^2(缺少时间因子) 残差 = +0.810000
读输出时注意三点。第一,例 15.4 的数字完全复现。第二,期望收益 10%、波动率 30% 的资产,日收益均值年化后是 10%,但真实的复利增长只有约 5.5%——差额正是 \(\sigma^2/2=4.5\%\)。第三,\(S^2\) 的残差 \(0.81=(r+\sigma^2)S^2\):它不满足方程,但乘上合适的时间因子 \(e^{(r+\sigma^2)(T-t)}\) 后就满足(原书习题 15.29 的结论:支付 \(S_T^2\) 的衍生品价格为 \(S^2e^{(r+\sigma^2)(T-t)}\))。
本章小结
几何布朗运动下,\(\ln S_T\) 精确服从正态分布,股价对数正态,\(E(S_T)=S_0e^{\mu T}\);实现的年化连续复利收益服从均值 \(\mu-\sigma^2/2\)、标准差 \(\sigma/\sqrt T\) 的正态分布,\(\sigma^2/2\) 是算术与几何平均之差。波动率用对数收益的样本标准差除以 \(\sqrt\tau\) 估计,按交易日年化,标准误约 \(\hat\sigma/\sqrt{2n}\)。BSM 方程来自一个简单想法:空 1 份衍生品、多 \(\partial f/\partial S\) 股股票,股价风险在瞬间被完全对消,组合只能赚无风险利率;推导中 \(\mu\) 被消去,于是风险偏好不影响价格,可以在风险中性世界中按"令 \(\mu=r\)、求期望、按 \(r\) 贴现"来定价。
| 概念 | 公式 / 要点 |
|---|---|
| 对数正态 | \(\ln S_T\sim\phi[\ln S_0+(\mu-\sigma^2/2)T,\ \sigma^2T]\) |
| 期望与方差 | \(E(S_T)=S_0e^{\mu T}\),\(\operatorname{var}(S_T)=S_0^2e^{2\mu T}(e^{\sigma^2T}-1)\) |
| 连续复利收益 | \(x\sim\phi(\mu-\sigma^2/2,\ \sigma^2/T)\) |
| 历史波动率 | \(\hat\sigma=s/\sqrt\tau\),SE \(\approx\hat\sigma/\sqrt{2n}\),日数据 \(\tau=1/252\) |
| 无风险组合 | \(\Pi=-f+\dfrac{\partial f}{\partial S}S\) |
| BSM 方程 | \(\dfrac{\partial f}{\partial t}+rS\dfrac{\partial f}{\partial S}+\dfrac12\sigma^2S^2\dfrac{\partial^2 f}{\partial S^2}=rf\) |
| 永续触及型 | \(S>H\):\(f=Q(S/H)^{-2r/\sigma^2}\);\(S<H\):\(f=QS/H\) |
| 风险中性定价 | \(f_0=e^{-rT}\hat E[\text{收益}]\),\(\hat E(S_T)=S_0e^{rT}\) |
练习
基础
- 股价 50,\(\mu=12\%\),\(\sigma=25\%\)。求 1 年后股价的 95% 置信区间、期望和中位数。 提示:\(\ln S_T\sim\phi(\ln50+0.12-0.03125,\ 0.0625)\);区间 \(e^{4.0007\pm1.96\times0.25}\),约 33.47 到 89.19;期望 \(50e^{0.12}=56.37\);中位数 \(50e^{0.08875}=54.64\)。
- 波动率 30%,一个交易日内股价变动的标准差约为百分之多少?一年按 252 个交易日计。 提示:\(30\%/\sqrt{252}=1.89\%\)(原书习题 15.2)。
- 某基金 4 年的年收益为 +40%、−30%、+40%、−30%。算术平均与几何平均年收益各是多少?投资者 4 年后赚了还是赔了? 提示:算术平均 5%;\(1.4\times0.7=0.98\),四年后 \(0.98^2=0.9604\),几何平均约 \(-1.0\%\),赔了。
- 验证 \(f=S\,e^{\,q(t)}\) 满足 BSM 方程时 \(q(t)\) 必须是什么。这个衍生品是什么? 提示:代入得 \(q'(t)S+rS=rS\),\(q'=0\),\(f=S\),即股票本身。
- 解释为什么 BSM 方程中没有 \(\mu\),以及这是否意味着期权价格与股票的"好坏"无关。 提示:\(\mu\) 在构造无风险组合时被消去。期权价格以当前股价表示,股票前景已体现在 \(S_0\) 中;给定 \(S_0\),\(\mu\) 不再提供额外信息。
进阶
- 用 30 个周收益估计年化波动率得 28%。给出标准误和近似 95% 置信区间。若改用 150 个日收益,标准误变为多少? 提示:\(0.28/\sqrt{60}=3.6\%\),区间约 \([21\%,35\%]\);日数据 \(0.28/\sqrt{300}=1.6\%\)。
- 推导到期支付 \(S_T^n\) 的衍生品价格,并验证它满足 BSM 方程。 提示:风险中性下 \(\hat E(S_T^n)=S^n\exp\{[nr+\tfrac12n(n-1)\sigma^2](T-t)\}\),贴现得 \(f=S^n e^{[(n-1)r+\frac12 n(n-1)\sigma^2](T-t)}\),即原书习题 15.12 的 \(h(t,T)\)。
- 用 (15.17) 为永续美式看跌定价:求最优行权边界 \(H^*\) 和期权价值。 提示:最大化 \((K-H)(S/H)^{-\alpha}\),\(\alpha=2r/\sigma^2\),得 \(H^*=\alpha K/(1+\alpha)\),价值 \(\frac{K}{1+\alpha}\left(\frac{\alpha K}{(1+\alpha)S}\right)^{\alpha}\)(原书习题 15.23)。
- 若周五到周一的方差只比普通交易日高约 20%,用日历日年化(\(\sqrt{365}\))与用交易日年化(\(\sqrt{252}\))会怎样影响一周期期权的估值? 提示:日历日假设周末贡献 3 天方差,高估周末风险;按交易日计时,跨周末的期权剩余期限应按剩余交易日数计算。
- 在 BSM 推导中,若组合改为"空 1 份衍生品、多 \(h\) 股",\(h\ne\partial f/\partial S\),组合收益的方差是多少?说明为什么只有 \(h=\partial f/\partial S\) 能得到 PDE。 提示:\(\Delta\Pi\) 的随机项为 \((h-\partial f/\partial S)\sigma S\Delta z\),方差 \((h-f_S)^2\sigma^2S^2\Delta t\);只有为零时组合无风险,才能使用无套利条件。
原书推荐习题:15.1、15.3(模型假设与风险中性原理);15.7、15.9、15.27(股价与收益分布、置信区间);15.10(基金收益误导);15.2、15.26、15.28(波动率换算、历史波动率与标准误);15.11、15.12、15.29(幂型支付的定价与 PDE 验证);15.23(永续美式看跌)。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 章首导言 | Chapter 15 introduction | p.344 |
| 15.1 对数正态性质 | 15.1 Lognormal Property of Stock Prices | p.345–346 |
| 15.2 收益率分布 | 15.2 The Distribution of the Rate of Return | p.346–347 |
| 15.3 期望收益 | 15.3 The Expected Return(含 Business Snapshot 15.1) | p.347–348 |
| 15.4 波动率 | 15.4 Volatility(含表 15.1、Business Snapshot 15.2) | p.347–352 |
| 15.5 BSM 方程的思想与假设 | 15.5 The Idea Underlying the BSM Differential Equation | p.352–354 |
| 15.6 BSM 方程推导 | 15.6 Derivation of the BSM Differential Equation | p.354–357 |
| 15.7 风险中性定价 | 15.7 Risk-Neutral Valuation | p.357–358 |
| 习题 | Practice Questions | p.371–374 |
原书为 Hull《Options, Futures, and Other Derivatives》Global Edition,表中为 PDF 页码。\(E(S_T)\)、\(\operatorname{var}(S_T)\) 的证明见作者网站 Technical Note 2。延伸阅读:Black & Scholes (1973)、Merton (1973) 原始论文;Cox & Ross (1976) 风险中性定价;Fama (1965)、French (1980)、French & Roll (1986)、Roll (1984) 关于波动率成因。