第 13 章 二叉树
第 11 章只用无套利论证就得到了期权价格的界和平价关系,但没能给出期权的确切价格。要定价,必须对股价如何变动做出假设。本章采用最简单的假设:在每个小时间段内,股价要么上涨某个百分比,要么下跌某个百分比。 把这些可能的路径画成图,就是二叉树(binomial tree)。
这个模型看起来过于简单,但它的意义远超其外表:
- 它以最透明的方式展示了期权定价的核心逻辑——无套利论证:用股票和期权构造一个无风险组合,无风险组合只能赚无风险利率,由此倒推出期权价格。
- 它引出了衍生品定价中最重要的原理——风险中性定价(risk-neutral valuation)。
- 它是一种实用的数值方法,广泛用于美式期权等没有解析解的衍生品,至今仍是交易系统中的主力定价工具之一。
- 当时间步长趋于零时,二叉树模型与第 15a、15b 章的 Black–Scholes–Merton(BSM)模型等价。本章附录将证明:欧式期权的二叉树价格收敛到 BSM 公式。
本章的构树方法来自 Cox、Ross 和 Rubinstein(1979)的重要论文,通常称为 CRR 二叉树。二叉树的更多数值细节见第 21a 章。
这是本册最需要读者亲手推导和编程的一章。 建议读完 13.1–13.3 节后立刻用纸笔复算一遍例子,读完 13.8 节后自己写一个 CRR 树程序,再对照"量化实战"中的代码。
学习目标
- 用无套利论证为单步二叉树中的期权定价,推导 \(\Delta=\frac{f_u-f_d}{S_0u-S_0d}\)、\(f=e^{-r\Delta t}[pf_u+(1-p)f_d]\)、\(p=\frac{e^{r\Delta t}-d}{u-d}\)。
- 理解风险中性定价原理:为什么期权价格与股票的真实预期收益无关;区分风险中性概率(Q 测度)与真实世界概率(P 测度)。
- 会用多步二叉树倒推为欧式和美式期权定价,并在每个节点判断是否提前行权。
- 会计算各节点的 delta,理解动态 delta 对冲。
- 掌握 CRR 参数 \(u=e^{\sigma\sqrt{\Delta t}}\)、\(d=1/u\) 的推导,以及如何把二叉树推广到股指、外汇和期货期权(只需改变 \(a\))。
- 理解二叉树价格向 BSM 公式收敛的推导思路,知道收敛的振荡特性。
读前导读
这一章在解决什么问题。 CFA 二级的单步二叉树你算过:构造对冲比率 \(h\),求风险中性概率 \(\pi\),折现期望收益。本章从同一个起点出发,走得更远:(1) 把单步推广到多步,并处理美式期权的提前行权;(2) 讲清"风险中性概率"到底是什么、为什么它不等于真实概率却能给出正确价格;(3) 把树的参数 \(u,d\) 和波动率 \(\sigma\) 连起来,这样树就不再是玩具,而是能和市场数据对接的定价工具;(4) 在附录里证明步数无穷多时,树的价格就是 Black–Scholes 公式。这一章是从"CFA 的期权常识"跨到"量化定价"的桥。
一个类比可以帮你定位:二叉树里的 \(p\) 和你在固定收益里用的"远期利率"很像——远期利率不是对未来利率的预测,而是由今天的即期曲线算出的"让无套利成立的数";\(p\) 也不是对股价上涨概率的预测,而是由今天的股价和利率算出的"让无套利成立的权重"。
需要先想起来的数学。
- 指数与对数。 \(e^{x}\) 和 \(\ln x\) 互为反函数;\(\ln(ab)=\ln a+\ln b\),\(\ln(u^j)=j\ln u\)。CRR 树里 \(u=e^{\sigma\sqrt{\Delta t}}\),所以 \(\ln u=\sigma\sqrt{\Delta t}\),股价走 \(j\) 次上、\(n-j\) 次下后 \(\ln S\) 变化 \((2j-n)\sigma\sqrt{\Delta t}\)。见 第 00 册第 04 章 级数与收敛。
- \(e^x\) 的泰勒展开与"忽略高阶项"。 \(e^x=1+x+\frac{x^2}{2}+\frac{x^3}{6}+\cdots\)。\(x\) 很小时,后面的项一个比一个小得多。例:\(x=0.01\) 时 \(e^x=1.010050\),取前两项 \(1.01\) 误差只有 \(0.00005\)。13.7 节和附录都靠它化简。记号 \(O(\Delta t^2)\)(读作"大 O")表示"和 \(\Delta t^2\) 同阶或更小的项",\(\Delta t\to0\) 时可以丢掉。见 第 00 册第 02 章 导数与泰勒展开 和 第 07 章 概率中的分析工具。
- 二项分布。 \(n\) 次独立试验、每次成功概率 \(p\),恰好成功 \(j\) 次的概率是 \(\binom{n}{j}p^j(1-p)^{n-j}\),\(\binom{n}{j}=\frac{n!}{j!(n-j)!}\) 是"从 \(n\) 步中挑出 \(j\) 步上涨"的方法数。均值 \(np\),方差 \(np(1-p)\)。
- 中心极限定理(正态近似)。 大量独立小随机量之和近似正态。二项分布 \(n\) 很大时近似 \(N(np,np(1-p))\),所以"成功次数 > α"的概率 \(\approx N\big(\frac{np-\alpha}{\sqrt{np(1-p)}}\big)\),\(N(\cdot)\) 是标准正态累积分布函数。
- 方差公式。 \(\mathrm{Var}(X)=E(X^2)-[E(X)]^2\),以及"加一个常数不改变方差"。CFA 统计里都学过。
怎么读这一章。 13.1–13.6 是核心必读,务必手算 13.1、13.3、13.5 的例子,至少写一次多步树的倒推。13.7 的推导第一次可以只看结论 \(u=e^{\sigma\sqrt{\Delta t}}\),读完本章下面的推导拆解后再回头细看。13.8–13.11 读公式和例子。附录是本章最难的部分,第一次读可以只读"结论"和"两个概率的直观含义",学完第 14、15 章再回来逐步推。量化实战的代码建议真的跑一遍,尤其是 delta 复制那一段。
13.1 单步二叉树与无套利论证
一个数值例子
当前股价 20 美元,已知 3 个月后股价要么是 22 美元,要么是 18 美元。我们要为一份 3 个月期、行权价 21 美元的欧式看涨期权定价。到期时:股价为 22 则期权值 \(22-21=1\);股价为 18 则期权值 0(原书图 13.1)。
思路:只需假设无套利。构造一个由股票和期权组成的组合,使得 3 个月后无论股价涨跌,组合价值都相同。这样的组合没有风险,无风险组合只能赚取无风险利率。由此可以算出组合今天的价值,进而得到期权价格。之所以总能构造出这样的组合,是因为只有两种证券(股票和期权)和两种可能结果。
构造组合:持有 \(\Delta\) 股股票的多头和 1 份看涨期权的空头。
- 股价涨到 22:组合价值 \(22\Delta-1\);
- 股价跌到 18:组合价值 \(18\Delta\)。
令两者相等:\(22\Delta-1=18\Delta\),得 \(\Delta=0.25\)。此时两种情形下组合价值都是 \(22\times0.25-1=18\times0.25=4.5\)。
折现:无风险组合必须赚取无风险利率。设无风险利率为 12%(连续复利),组合今天的价值为
求期权价格:记期权今天的价格为 \(f\),组合今天的价值又等于 \(20\times0.25-f=5-f\)。所以 \(5-f=4.367\),即
为什么一定是 0.633? 若期权价格高于 0.633,建立这个组合的成本低于 4.367,到期确定得到 4.5,收益率高于无风险利率——套利。若期权价格低于 0.633,反向操作(卖空股票、买入期权)就能以低于无风险利率的成本借到钱——同样是套利。实践中,可以理解为卖出 400 份期权、买入 100 股股票。
每卖出 1 份期权就需要买入 \(\Delta\) 股股票才能形成无风险组合。这个 \(\Delta\) 在期权对冲中至关重要(13.6 节和第 19a 章)。
一般化
设股价为 \(S_0\),以股票为标的的期权(或任何收益依赖于股价的衍生品)价格为 \(f\),期限为 \(T\)。在期权寿命内,股价要么上涨到 \(S_0u\)(\(u>1\)),要么下跌到 \(S_0d\)(\(d<1\))。股价上涨时期权收益为 \(f_u\),下跌时为 \(f_d\)(原书图 13.2)。
仍然考虑"多头 \(\Delta\) 股、空头 1 份期权"的组合。令两种情形下组合价值相等:
得
即 \(\Delta\) 等于在 \(T\) 时刻两个节点之间期权价格的变化与股价变化之比。
组合无风险,无套利要求它今天的成本等于到期价值的现值:
解出 \(f\):
代入式 (13.1),并整理:
记
则 \(1-p=\dfrac{u-e^{rT}}{u-d}\),于是
推导拆解:从"解出 \(f\)"到 (13.2) 的代数,逐行补全。 ① 由 \(S_0\Delta-f=(S_0u\Delta-f_u)e^{-rT}\) 移项:\(f=S_0\Delta-S_0u\Delta e^{-rT}+f_ue^{-rT}=S_0\Delta(1-ue^{-rT})+f_ue^{-rT}\)。 ② 代入 \(\Delta=\frac{f_u-f_d}{S_0(u-d)}\),\(S_0\) 约掉:\(f=\frac{(f_u-f_d)(1-ue^{-rT})}{u-d}+f_ue^{-rT}\)。 ③ 把 \(e^{-rT}\) 提到最外面:\(1-ue^{-rT}=e^{-rT}(e^{rT}-u)\),得 \(f=e^{-rT}\big[\frac{(f_u-f_d)(e^{rT}-u)}{u-d}+f_u\big]\)。 ④ 按 \(f_u\)、\(f_d\) 合并同类项。\(f_u\) 的系数:\(\frac{e^{rT}-u}{u-d}+1=\frac{e^{rT}-u+u-d}{u-d}=\frac{e^{rT}-d}{u-d}\);\(f_d\) 的系数:\(-\frac{e^{rT}-u}{u-d}=\frac{u-e^{rT}}{u-d}\)。 ⑤ 两个系数相加 \(=\frac{u-d}{u-d}=1\),所以可以记成 \(p\) 和 \(1-p\)。 这里没有任何一步用到"股价上涨的真实概率",\(p\) 是纯粹由 \(u,d,r\) 拼出来的数。
整个推导唯一用到的假设是无套利。 另外,为使 \(0<p<1\),需要 \(d<e^{rT}<u\)——这本身也是无套利条件:若 \(e^{rT}\ge u\),卖空股票、投资无风险资产就稳赚不赔;若 \(e^{rT}\le d\),借钱买股票就稳赚不赔。
验证:数值例中 \(u=1.1\),\(d=0.9\),\(r=0.12\),\(T=0.25\),\(f_u=1\),\(f_d=0\)。
与前面的结果一致。
股票的预期收益无关紧要
式 (13.2) 里没有出现股价上涨或下跌的真实概率。无论股价上涨的概率是 0.5 还是 0.9,期权价格都是 0.633。这初看违反直觉:股价上涨的可能性越大,看涨期权不是应该越值钱吗?
关键在于:我们不是在"凭空"为期权定价,而是相对于标的股票的价格为期权定价。未来涨跌的概率已经体现在今天的股价 20 美元里了,无需再计入。如果投资者普遍认为上涨概率更高,今天的股价就会更高——但给定今天的股价,期权价格与真实概率无关。
13.2 风险中性定价
原理
式 (13.2) 引出了衍生品定价中最重要的原理之一:
风险中性定价:为衍生品定价时,可以假设投资者是风险中性的——即他们不因承担更多风险而要求更高的预期收益。在这个假想的风险中性世界中算出的衍生品价格,在真实世界中同样正确。
我们生活的世界当然不是风险中性的:投资者承担的风险越高,要求的预期收益就越高。但风险中性定价"几乎奇迹般地"绕开了一个难题:我们对期权买卖双方的风险厌恶程度一无所知。直觉是:在用股价表示期权价格时,风险偏好并不重要。投资者越厌恶风险,股价越低;但联系期权价格与股价的那个公式不变。
风险中性世界的两个特征:
- 股票(以及任何投资)的预期收益率等于无风险利率;
- 期权(以及任何工具)的预期收益的折现率等于无风险利率。
\(p\) 是风险中性概率
现在重新解读式 (13.2)。若把 \(p\) 理解为风险中性世界中股价上涨的概率(由 \(d<e^{rT}<u\),\(0<p<1\) 确实是一个概率),那么 \(pf_u+(1-p)f_d\) 就是风险中性世界中期权的预期收益,式 (13.2) 说:
验证 \(p\) 确实描述了一个风险中性世界——在概率 \(p\) 下,股价的期望为
股价的期望恰好以无风险利率增长,正是风险中性世界中应有的行为。
金融直觉:另一种读法是"状态价格"。令 \(\pi_u=e^{-rT}p\)、\(\pi_d=e^{-rT}(1-p)\),它们是"上涨状态到期付 1 元"和"下跌状态到期付 1 元"这两张证券今天的价格(Arrow–Debreu 证券)。任何衍生品的价格都是 \(\pi_uf_u+\pi_df_d\),就像债券价格是各期现金流乘以折现因子之和。\(p\) 只是把状态价格"归一化"成加起来等于 1 的权重。叫它"概率"是因为它满足概率的数学性质,不是因为它描述真实世界的可能性。
风险中性定价是一个一般性的结论,可以证明它不依赖于股价演化的具体假设。用它定价的步骤是:
- 计算风险中性世界中各种结果的概率;
- 计算衍生品的预期收益;
- 按无风险利率折现。
回到单步例子
在风险中性世界中,股票的预期收益是无风险利率 12%,所以上涨概率 \(p\) 满足
即 \(4p=20e^{0.03}-18\),\(p=0.6523\)。期权的预期收益为 \(0.6523\times1+0.3477\times0=0.6523\),按无风险利率折现:\(0.6523e^{-0.03}=0.633\)。与无套利论证的结果完全相同。
真实世界与风险中性世界
强调一下:\(p\) 是风险中性世界中的上涨概率,一般不等于真实世界中的上涨概率。
假设在真实世界中股票的预期收益率为 16%,那么真实上涨概率 \(p^*\) 满足 \(22p^*+18(1-p^*)=20e^{0.16\times3/12}\),解得 \(p^*=0.7041\)。真实世界中期权的预期收益为 \(0.7041\times1=0.7041\)。
问题在于:真实世界中该用什么折现率来折现这个预期收益?股票的折现率是 16%;看涨期权比股票风险更高(杠杆更大),折现率应高于 16%,但高多少?我们不知道。反过来,由已知正确的价格 0.633 可以倒推出正确的真实世界折现率 \(R\):
(原书给出 42.58%,按四舍五入后的 \(p^*=0.7041\) 计算;用未经舍入的 \(p^*\) 算出约 42.55%。)这个 42.6% 事先根本无法知道。风险中性定价解决了这个问题:在风险中性世界里,所有资产的预期收益率(因而所有预期收益的折现率)都是无风险利率,无需知道任何风险溢价。
金融直觉:42.6% 为什么这么高?用 CAPM 的思路看。看涨期权相当于"用借来的钱买 \(\Delta\) 股股票":复制组合是 \(0.25\) 股(价值 5)加借款 \(4.367\),自有资金只有 0.633。杠杆倍数(期权弹性)约为 \(\Delta S_0/f=5/0.633\approx7.9\)。股票的风险溢价是 \(16\%-12\%=4\%\),期权的风险溢价大约放大 7.9 倍,约 32%,加上 12% 的无风险利率约 44%,与 42.6% 同一量级(差异来自离散复利和单步近似)。关键是:这个杠杆倍数会随股价变化而变,所以期权的"合适折现率"不是常数,这正是直接在真实世界定价行不通的原因。
原书习题 13.27 进一步指出:同一例子中,看跌期权对应的真实世界折现率是 −52.5%。看跌期权与股票负相关(beta 为负),是一种"保险",投资者愿意接受负的预期收益来持有它。这说明想在真实世界里"合理地"确定期权的折现率几乎是不可能的。
13.3 两步二叉树
数值例子
把上一节的例子延长:股价 20,两个时间步,每步 3 个月,每步上涨或下跌 10%;无风险利率 12%;为一份 6 个月期、行权价 21 的欧式看涨期权定价(原书图 13.3、13.4)。
树上的节点记为:初始节点 A(20);第一步后节点 B(22)、C(18);第二步后末端节点 D(24.2)、E(19.8)、F(16.2)。
第一步:末端节点的期权价值。 D:\(24.2-21=3.2\);E、F:0。
第二步:倒推到中间节点。 节点 C 通向 E 和 F,两者期权价值都是 0,所以 C 处期权价值为 0。节点 B 通向 D 和 E,每一步的 \(p=0.6523\) 不变:
第三步:倒推到初始节点。
本例中各节点的 \(u\)、\(d\) 和时间步长都相同,所以 \(p\) 处处相同。
一般化
设每个时间步长为 \(\Delta t\)(原书图 13.6)。重复应用单步结果:
把 \(f_u\)、\(f_d\) 代入式 (13.5):
这正是风险中性定价:\(p^2\)、\(2p(1-p)\)、\((1-p)^2\) 分别是到达上、中、下三个末端节点的风险中性概率(二项分布),期权价格等于风险中性预期收益按无风险利率折现。步数更多时,原理依然成立。
推导拆解:(13.10) 的代入过程。 把 \(f_u=e^{-r\Delta t}[pf_{uu}+(1-p)f_{ud}]\) 和 \(f_d=e^{-r\Delta t}[pf_{ud}+(1-p)f_{dd}]\) 代入 \(f=e^{-r\Delta t}[pf_u+(1-p)f_d]\): \(f=e^{-2r\Delta t}\big[p^2f_{uu}+p(1-p)f_{ud}+(1-p)pf_{ud}+(1-p)^2f_{dd}\big]\)。 中间两项都是 \(p(1-p)f_{ud}\),合并成 \(2p(1-p)f_{ud}\)。系数 2 的含义:到达中间节点有两条路径(先涨后跌、先跌后涨),每条概率都是 \(p(1-p)\)。三个系数 \(p^2+2p(1-p)+(1-p)^2=(p+1-p)^2=1\),正好构成一个概率分布。\(n\) 步时,到达"\(j\) 次上涨"节点的路径数是 \(\binom{n}{j}\),这就是附录 (13A.1) 中组合数的来历。 注意:这个"一次性折现"的写法只适用于欧式期权。美式期权在中间节点要和行权价值比大小,必须一步一步倒推。
13.4 看跌期权的例子
为一份 2 年期、行权价 52 的欧式看跌期权定价,股价 50。用两个时间步,每步 1 年,每步上涨或下跌 20%;无风险利率 5%(原书图 13.7)。
\(u=1.2\),\(d=0.8\),\(\Delta t=1\),
末端股价为 72、48、32,对应看跌期权价值 \(f_{uu}=0\)、\(f_{ud}=52-48=4\)、\(f_{dd}=52-32=20\)。由式 (13.10):
也可以逐步倒推:节点 B(股价 60)的期权价值为 \(e^{-0.05}(0.6282\times0+0.3718\times4)=1.4147\),节点 C(股价 40)为 \(e^{-0.05}(0.6282\times4+0.3718\times20)=9.4636\),再倒推到初始节点得到同样的 4.1923。
13.5 美式期权
二叉树最重要的实际用途之一是为美式期权定价。方法是:从树的末端开始向前倒推,在每个节点检验提前行权是否最优。
- 末端节点的期权价值与欧式期权相同(收益);
- 之前每个节点的期权价值取以下两者中较大者:
- 由式 (13.5) 给出的继续持有价值(continuation value);
- 立即行权的收益。
例子
把 13.4 节的看跌期权改为美式(原书图 13.8):
- 节点 B(股价 60):继续持有价值 1.4147;立即行权的收益为 \(52-60=-8\),不行权。节点价值取 1.4147。
- 节点 C(股价 40):继续持有价值 9.4636;立即行权的收益为 \(52-40=12\)。提前行权最优,节点价值取 12。
- 初始节点 A:继续持有价值为
\[e^{-0.05}(0.6282\times1.4147+0.3718\times12)=5.0894,\]立即行权的收益为 \(52-50=2\),不行权。
美式看跌期权的价值为 5.0894,高于欧式看跌期权的 4.1923。差额 0.8971 就是提前行权权利的价值,它来自节点 C 处的提前行权——这与第 11 章的结论一致:看跌期权深度实值时应提前行权。
13.6 Delta
定义
**Delta(\(\Delta\))**是股票期权价格的变化与标的股价变化之比,是期权交易中最重要的"希腊字母(Greek letter)"之一。它也是为每份卖出的期权构造无风险组合所需持有的股数——与 13.1 节中的 \(\Delta\) 完全相同。构建这样的无风险组合称为 delta 对冲(delta hedging)。看涨期权的 delta 为正,看跌期权的 delta 为负。
例子
- 图 13.1(单步看涨):\(\Delta=\dfrac{1-0}{22-18}=0.25\)。
- 图 13.4(两步看涨):
- 第一步:\(\Delta=\dfrac{2.0257-0}{22-18}=0.5064\);
- 第二步,若第一步上涨:\(\Delta=\dfrac{3.2-0}{24.2-19.8}=0.7273\);
- 第二步,若第一步下跌:\(\Delta=\dfrac{0-0}{19.8-16.2}=0\)。
- 图 13.7(两步看跌):
- 第一步:\(\Delta=\dfrac{1.4147-9.4636}{60-40}=-0.4024\);
- 第二步:上涨后为 \(\dfrac{0-4}{72-48}=-0.1667\),下跌后为 \(\dfrac{4-20}{48-32}=-1.0000\)。
delta 随时间变化
上面的例子表明,delta 在期权寿命内会随时间和股价不断变化。因此,要用期权和股票维持一个无风险对冲,必须定期调整股票持仓。这就是动态对冲,第 19a 章将详细讨论。
原书习题 13.8 问:两步树中能否构造一个在整个期权寿命内都无风险的静态组合?答案是不能——第一步之后 delta 变了,不调仓就不再无风险。
13.7 用 \(u\) 和 \(d\) 匹配波动率
三个参数
构造步长为 \(\Delta t\) 的二叉树需要三个参数:\(u\)、\(d\) 和 \(p\)。给定 \(u\)、\(d\) 后,\(p\) 必须使风险中性世界中的预期收益等于无风险利率:
\(u\) 和 \(d\) 则用来匹配股票的波动率。股票的波动率 \(\sigma\) 定义为:在很短的时间 \(\Delta t\) 内,股票收益率的标准差为 \(\sigma\sqrt{\Delta t}\),即方差为 \(\sigma^2\Delta t\)(第 14、15a 章会详细讨论)。
推导
在一个时间步内,股票收益率以概率 \(p\) 为 \(u-1\),以概率 \(1-p\) 为 \(d-1\)。由方差公式 \(\mathrm{Var}(X)=E(X^2)-[E(X)]^2\),匹配条件为
化简这个式子。由 \(pu+(1-p)d=e^{r\Delta t}\),方差等于 \(pu^2+(1-p)d^2-e^{2r\Delta t}\)(平移不改变方差)。又
所以匹配条件化为
用 \(e^x=1+x+x^2/2!+\cdots\) 展开,并忽略 \(\Delta t^2\) 及更高阶项,可以验证一个解是
验证:此时 \(ud=1\),\(u+d=2+\sigma^2\Delta t+O(\Delta t^2)\),
这就是 Cox、Ross、Rubinstein 使用的参数。
推导拆解:两处化简和最后的验证,逐步展开。 ① 为什么方差 \(=pu^2+(1-p)d^2-e^{2r\Delta t}\)?收益率 \(X=S_{\Delta t}/S_0-1\),而"减 1"只是平移,不改变方差,所以 \(\mathrm{Var}(X)=\mathrm{Var}(S_{\Delta t}/S_0)=E[(S_{\Delta t}/S_0)^2]-[E(S_{\Delta t}/S_0)]^2=pu^2+(1-p)d^2-(e^{r\Delta t})^2\)。最后一步用了 \(pu+(1-p)d=e^{r\Delta t}\)。 ② 为什么 \(pu^2+(1-p)d^2=(u+d)[pu+(1-p)d]-ud\)?把右边展开:\((u+d)(pu+(1-p)d)=pu^2+(1-p)ud+pud+(1-p)d^2=pu^2+(1-p)d^2+ud\),减去 \(ud\) 即得左边。这一步的目的是消掉 \(p\),让匹配条件只含 \(u,d\)。 ③ 验证 \(u=e^{\sigma\sqrt{\Delta t}}\)。记 \(x=\sigma\sqrt{\Delta t}\)(很小)。泰勒展开 \(u=1+x+\frac{x^2}{2}+\frac{x^3}{6}+\cdots\),\(d=1-x+\frac{x^2}{2}-\frac{x^3}{6}+\cdots\)。相加时奇次项抵消:\(u+d=2+x^2+O(x^4)=2+\sigma^2\Delta t+O(\Delta t^2)\)。相乘 \(ud=e^0=1\)。 ④ 再展开 \(e^{r\Delta t}\approx1+r\Delta t\),\(e^{2r\Delta t}\approx1+2r\Delta t\),代入左边:\((1+r\Delta t)(2+\sigma^2\Delta t)-1-(1+2r\Delta t)=2+\sigma^2\Delta t+2r\Delta t+r\sigma^2\Delta t^2-2-2r\Delta t=\sigma^2\Delta t+r\sigma^2\Delta t^2\)。丢掉 \(\Delta t^2\) 项就是 \(\sigma^2\Delta t\)。 为什么能丢?因为右边是 \(\sigma^2\Delta t\),相对误差是 \(r\Delta t\),步长越小越可忽略。为什么 \(u\) 里出现的是 \(\sqrt{\Delta t}\) 而不是 \(\Delta t\)?因为方差要和 \(\Delta t\) 成正比,标准差(也就是每步涨跌幅度)就得和 \(\sqrt{\Delta t}\) 成正比。这个"\(\sqrt{\Delta t}\) 规律"正是第 14 章维纳过程的核心。
真实世界中匹配波动率,结果相同
设真实世界中上涨概率为 \(p^*\),股票的预期收益率为 \(\mu\)。则 \(p^*u+(1-p^*)d=e^{\mu\Delta t}\),
用 \(p^*\) 代替 \(p\) 写出方差匹配方程,得到 \(e^{\mu\Delta t}(u+d)-ud-e^{2\mu\Delta t}=\sigma^2\Delta t\)。忽略高阶项后,解仍然是 \(u=e^{\sigma\sqrt{\Delta t}}\)、\(d=e^{-\sigma\sqrt{\Delta t}}\)。也就是说,真实世界的树与风险中性世界的树节点上的股价完全相同,只有概率不同(原书图 13.9)。
Girsanov 定理与测度变换
上述结果是 Girsanov 定理的一个体现:从风险中性世界转到真实世界时,股票的预期收益率改变,但波动率不变。更一般地,从一种风险偏好的世界转到另一种时,变量的预期增长率会改变,而波动率保持不变(第 28 章详述)。
改变风险偏好称为改变测度(changing the measure)。真实世界的测度称为 P 测度,风险中性世界的测度称为 Q 测度。本章记号中,\(p\) 是 Q 测度下的上涨概率,\(p^*\) 是 P 测度下的上涨概率。
白话解释:"测度"在这里就是"给每条路径分配概率的一套规则"。P 和 Q 用的是同一棵树(同样的节点、同样的可能结果),只是给上涨、下跌分配的权重不同。两者"认同哪些事情可能发生、哪些不可能",只是"可能性有多大"上意见不同。实务里的分工:定价、对冲、算隐含波动率用 Q;预测收益、算 VaR、做 alpha 研究用 P。把隐含概率当成真实概率去下注,是常见的错误。
13.8 二叉树公式
总结起来,步长为 \(\Delta t\) 的 CRR 二叉树由以下公式定义:
\(a\) 称为增长因子(growth factor),它是风险中性世界中标的资产在一个时间步内的期望增长倍数。13.11 节将看到,换成其他标的资产时只需改变 \(a\)。
例子
为美式看跌期权定价:\(S_0=50\),\(K=52\),\(r=5\%\),\(T=2\) 年,\(\sigma=30\%\),两步,\(\Delta t=1\):
树上节点的股价(原书图 13.10):初始 50;第一步 67.49、37.04;第二步 91.11、50、27.44。
- 末端看跌期权价值:0、2、24.56。
- 上节点(67.49):继续持有价值 \(e^{-0.05}(0.5097\times0+0.4903\times2)=0.93\),不行权。
- 下节点(37.04):继续持有价值 \(e^{-0.05}(0.5097\times2+0.4903\times24.56)=12.42\);立即行权 \(52-37.04=14.96\),行权。
- 初始节点:\(e^{-0.05}(0.5097\times0.93+0.4903\times14.96)=7.43\);立即行权收益 2,不行权。
期权价值为 7.43。注意它与 13.5 节用 \(u=1.2\)、\(d=0.8\) 得到的 5.0894 不同——那里的 \(u\)、\(d\) 是随意给定的,并不对应 30% 的波动率。
13.9 增加步数
一两步的二叉树只能给出非常粗略的近似。实务中通常把期权寿命分为 30 步或更多。30 步的树有 31 个末端节点,隐含地考虑了 \(2^{30}\)(约 10 亿)条可能的股价路径——但由于树是重组的(recombining)(先涨后跌与先跌后涨到达同一个节点),计算量只与节点数 \((n+1)(n+2)/2\) 成正比。
无论多少步,公式 (13.15)–(13.18) 都不变,只是 \(\Delta t\) 变小。例如上例改为 5 步:\(\Delta t=0.4\),
当步数增加时,二叉树对股价行为的假设趋于与 BSM 模型相同,欧式期权的二叉树价格收敛到 BSM 价格(见本章附录)。
13.10 使用 DerivaGem
原书配套的 DerivaGem 3.00 软件可以直接构造二叉树。在 Equity_FX_Indx_Fut_Opts_Calc 工作表中选择 Equity、Binomial American,输入股价 50、波动率 30%、利率 5%、期限 2、行权价 52、步数 2,选择 Put,计算得到 7.428,Display Tree 显示与图 13.10 相同的树(红色数字表示行权节点)。
步数改变时价格的变化:
| 步数 | 美式看跌价格 |
|---|---|
| 2 | 7.43 |
| 5 | 7.671 |
| 500 | 7.47(精确到两位小数) |
改为 Binomial European、500 步,欧式看跌价格为 6.76,与 Black–Scholes 公式的结果 6.76 一致。
收敛性要点:二叉树价格随步数增加以振荡的方式收敛(2 步 7.43、5 步 7.67、500 步 7.47),步数少时结果可能偏差很大,必须使用足够多的步数。本章"量化实战"会用自己写的程序复现这些数字,并展示振荡收敛的规律。
13.11 其他资产上的期权
股指、货币、期货期权的二叉树构造与股票期权完全相同,只是 \(p\) 的公式(即 \(a\))不同。节点上的期权价值(考虑提前行权之前)仍然是 \(p\) 乘上行节点价值加 \(1-p\) 乘下行节点价值,再按无风险利率折现。
支付连续股息率 \(q\) 的股票
在风险中性世界中,股票的总收益率必须是 \(r\)。股息贡献了收益率 \(q\),所以资本利得只需贡献 \(r-q\):
仍取 \(u=e^{\sigma\sqrt{\Delta t}}\)、\(d=1/u\),只需令 \(a=e^{(r-q)\Delta t}\)。
股票指数
与第 5 章期货定价的处理一致,假设指数的成分股提供股息率 \(q\),处理方法同上。
例 13.1 股指当前为 810,波动率 20%,股息率 2%,无风险利率 5%。为 6 个月期、行权价 800 的欧式看涨期权定价,用两步树。
\(\Delta t=0.25\),\(u=e^{0.2\sqrt{0.25}}=1.1052\),\(d=0.9048\),\(a=e^{(0.05-0.02)\times0.25}=1.0075\),
\[p=\frac{1.0075-0.9048}{1.1052-0.9048}=0.5126.\]每步折现因子 \(e^{-0.05\times0.25}=0.9876\)。节点指数:810;895.19、732.92;989.34、810.00、663.17。末端看涨期权价值 189.34、10.00、0;中间节点 100.66、5.06;期权价值 53.39(原书图 13.11)。
货币
外币可以看作提供外国无风险利率 \(r_f\) 收益的资产(持有外币可以按 \(r_f\) 生息),所以令 \(a=e^{(r-r_f)\Delta t}\)。
例 13.2 澳元当前价值 0.6100 美元,汇率波动率 12%,澳元无风险利率 7%,美元无风险利率 5%。为 3 个月期、行权价 0.6000 的美式看涨期权定价,用三步树。
\(\Delta t=0.08333\),\(u=e^{0.12\sqrt{0.08333}}=1.0352\),\(d=0.9660\),\(a=e^{(0.05-0.07)\times0.08333}=0.9983\),
\[p=\frac{0.9983-0.9660}{1.0352-0.9660}=0.4673.\]期权价值 0.019(原书图 13.12),部分高位节点提前行权最优——外币利率高于本币利率时,持有外币的"股息"较高,美式看涨期权可能提前行权。
期货
建立期货多头或空头不需要成本,因此在风险中性世界中期货价格的预期增长率为零(第 18 章 18.7 节详述):
即令 \(a=1\)。
例 13.3 期货价格 31,波动率 30%,无风险利率 5%。为 9 个月期、行权价 30 的美式看跌期权定价,用三步树。
\(\Delta t=0.25\),\(u=e^{0.3\times0.5}=1.1618\),\(d=0.8607\),\(a=1\),
\[p=\frac{1-0.8607}{1.1618-0.8607}=0.4626.\]期权价值 2.84(原书图 13.13)。
统一形式
其中 \(q\) 分别取:
| 标的资产 | \(q\) | \(a\) |
|---|---|---|
| 无股息股票 | 0 | \(e^{r\Delta t}\) |
| 支付连续股息率的股票 / 股指 | 股息率 \(q\) | \(e^{(r-q)\Delta t}\) |
| 外汇 | 外币无风险利率 \(r_f\) | \(e^{(r-r_f)\Delta t}\) |
| 期货 | \(r\) | 1 |
在交易系统中,\(r-q\) 通常被抽象为**持有成本(cost of carry)**参数 \(b\),使同一套定价代码适用于股票、指数、外汇和期货期权。
附录:由二叉树推导 Black–Scholes–Merton 公式
本附录证明:当步数 \(n\to\infty\) 时,欧式看涨期权的二叉树价格收敛到 BSM 公式。推导较长,但每一步都只用到二项分布和中心极限定理(概率基础见第 02 册第 04b、08 章),值得仔细读一遍。
第一步:写出 \(n\) 步树的价格
用 \(n\) 步树为行权价 \(K\)、期限 \(T\) 的欧式看涨期权定价,每步长 \(T/n\)。若 \(n\) 步中有 \(j\) 次上涨、\(n-j\) 次下跌,到期股价为 \(S_0u^jd^{n-j}\),期权收益为 \(\max(S_0u^jd^{n-j}-K,0)\)。在风险中性世界中,恰好 \(j\) 次上涨的概率服从二项分布 \(\frac{n!}{(n-j)!\,j!}p^j(1-p)^{n-j}\)。风险中性预期收益按无风险利率折现:
第二步:确定哪些项非零
收益非零当且仅当 \(S_0u^jd^{n-j}>K\),即
代入 \(u=e^{\sigma\sqrt{T/n}}\)、\(d=e^{-\sigma\sqrt{T/n}}\):
即
于是
其中
第三步:求 \(U_2\)
\(U_2\) 就是"成功概率为 \(p\) 的 \(n\) 次伯努利试验中成功次数大于 \(\alpha\)"的概率。\(n\to\infty\) 时,二项分布趋于正态分布,均值 \(np\)、标准差 \(\sqrt{np(1-p)}\)。所以
其中 \(N(\cdot)\) 是标准正态分布的累积分布函数。代入 \(\alpha\):
由
做级数展开,可得 \(p\approx\frac12+\frac{(r-\sigma^2/2)\sqrt{T/n}}{2\sigma}\)。所以 \(n\to\infty\) 时
代入式 (13A.6):
推导拆解:第三步里被省略的两处。 ① 从 (13A.5) 到 (13A.6)。分子 \(np-\alpha=np-\frac n2+\frac{\ln(S_0/K)}{2\sigma\sqrt{T/n}}=n(p-\tfrac12)+\frac{\sqrt n\ln(S_0/K)}{2\sigma\sqrt T}\)(用了 \(\sqrt{T/n}=\sqrt T/\sqrt n\))。分母 \(\sqrt n\sqrt{p(1-p)}\)。分子分母同除以 \(\sqrt n\) 就得到 (13A.6) 的两项。 ② \(p\) 的级数展开。记 \(h=T/n\)。分子 \(e^{rh}-e^{-\sigma\sqrt h}\approx(1+rh)-(1-\sigma\sqrt h+\frac{\sigma^2h}{2})=\sigma\sqrt h+(r-\frac{\sigma^2}{2})h\);分母 \(e^{\sigma\sqrt h}-e^{-\sigma\sqrt h}\approx2\sigma\sqrt h\)(奇次项相加,偶次项抵消,下一项是 \(h^{3/2}\) 阶)。相除:\(p\approx\frac12+\frac{(r-\sigma^2/2)\sqrt h}{2\sigma}\)。 ③ 取极限。\(p-\frac12\) 是 \(\sqrt h=\sqrt{T/n}\) 的量级,乘以 \(\sqrt n\) 后得到一个有限的常数 \(\frac{(r-\sigma^2/2)\sqrt T}{2\sigma}\);同时 \(p\to\frac12\) 使 \(\sqrt{p(1-p)}\to\frac12\)。把 \(\frac12\) 代入 (13A.6) 两项的分母,第一项变成 \(\frac{\ln(S_0/K)}{\sigma\sqrt T}\),第二项变成 \(\frac{(r-\sigma^2/2)\sqrt T}{\sigma}=\frac{(r-\sigma^2/2)T}{\sigma\sqrt T}\),合起来就是 (13A.7)。 这里的关键现象:每步的"偏离 1/2"非常小(\(\propto1/\sqrt n\)),但步数有 \(n\) 步,累积起来恰好有限。这和"每步方差 \(\propto1/n\)、\(n\) 步方差有限"是同一个道理。
第四步:求 \(U_1\)
把 \(U_1\) 改写为
定义
则 \(1-p^*=\frac{(1-p)d}{pu+(1-p)d}\),于是
在风险中性世界中 \(pu+(1-p)d=e^{rT/n}\),所以 \([pu+(1-p)d]^n=e^{rT}\),而求和项是"成功概率为 \(p^*\) 时成功次数大于 \(\alpha\)"的概率。同样用正态近似,并由级数展开得 \(p^*(1-p^*)\to\frac14\)、\(\sqrt n(p^*-\frac12)\to\frac{(r+\sigma^2/2)\sqrt T}{2\sigma}\),得到
结论
代入式 (13A.4):
这就是欧式看涨期权的 BSM 公式(第 15b 章将详细讨论,并用风险中性定价给出另一种推导)。
两个概率的直观含义:\(N(d_2)\) 就是 \(U_2\),即风险中性世界中期权到期被行权(\(S_T>K\))的概率;\(N(d_1)\) 是在另一个以 \(p^*\) 为上涨概率的测度下的行权概率——这个测度以股票本身作为计价单位(numéraire),第 28 章会系统讨论。
金融直觉:BSM 公式可以拆成两条腿来读。看涨期权到期时,若行权,你"收到一股股票、付出 \(K\) 元现金"。付现金那条腿今天的价值 \(=Ke^{-rT}\times\)(行权概率)\(=Ke^{-rT}N(d_2)\),这很直接。收股票那条腿的价值不是 \(S_0N(d_2)\),因为股价高的路径上行权的可能性更大、拿到的股票也更值钱,二者相关;把这种相关性计入后,权重从 \(N(d_2)\) 变成了 \(N(d_1)\)。这里的 \(p^*\)(注意:它和 13.2 节真实世界的 \(p^*\) 是不同的东西,只是记号相同)就是"按股票价值加权后的上涨概率"。另外,\(N(d_1)\) 恰好也是看涨期权的 delta,第 19a 章会用到。
量化实战:实现一个通用的 CRR 定价引擎
二叉树在量化交易系统中的地位非常稳固:
- 美式期权与提前行权:美国个股期权都是美式的,含离散股息的美式期权、可转债(可提前转换、可赎回、可回售)都需要倒推式的数值方法,二叉树是其中最简单可靠的一种,也常作为有限差分、最小二乘蒙特卡洛(LSM)等更复杂方法的基准。
- 计算复杂度:\(n\) 步树倒推的时间复杂度为 \(O(n^2)\),用一维数组滚动更新时空间复杂度为 \(O(n)\)。数百步的树在现代计算机上只需毫秒级时间。
- 收敛性处理:二叉树价格随步数振荡收敛。实务中常用相邻奇偶步数的平均、Richardson 外推或 Leisen–Reimer 等改进的树来加速收敛(二叉树的实践细节见第 21a 章)。
- 持有成本抽象:用 \(a=e^{(r-q)\Delta t}\) 把股票、指数、外汇、期货期权统一在一套代码里。
- 测度意识:定价用 Q 测度;预测收益、风险管理(VaR、情景分析)和 alpha 研究用 P 测度。混淆两者是常见错误——例如把风险中性概率当成事件的真实概率,或用真实漂移给衍生品定价。期权隐含的风险中性概率与真实概率之差(方差风险溢价、偏度溢价)本身就是可交易的因子。
下面的代码实现一个通用 CRR 引擎(支持欧式/美式、看涨/看跌、连续股息率或持有成本),并完成五项任务:复现原书全部数值例子;计算真实世界折现率;展示欧式期权价格向 BSM 价格的振荡收敛及奇偶平均的效果;提取美式看跌期权的提前行权边界;在随机抽取的"真实世界"路径上验证 delta 动态复制。BSM 公式在第 15b 章才正式讲,这里只用作收敛的参照值。
import numpy as np
from scipy.stats import norm
def tree_price(S0, K, r, T, n, kind="put", american=False, q=0.0, sigma=None, u=None, d=None):
"""CRR 二叉树。q:连续股息率 / 外币利率 r_f / 期货取 q=r(即 a=1)。
可直接给定 u、d(教学例子),否则用 u=e^{σ√Δt}, d=1/u。返回 (价格, 第一步 delta)。"""
dt = T / n
if u is None:
u = np.exp(sigma * np.sqrt(dt)); d = 1 / u
a = np.exp((r - q) * dt)
p = (a - d) / (u - d)
disc = np.exp(-r * dt)
j = np.arange(n + 1)
S = S0 * u**j * d**(n - j) # 末端节点,j 为上涨次数
V = np.maximum(S - K, 0) if kind == "call" else np.maximum(K - S, 0)
for step in range(n - 1, -1, -1):
S = S0 * u**np.arange(step + 1) * d**(step - np.arange(step + 1))
if step == 0:
delta = (V[1] - V[0]) / (S0 * u - S0 * d) # 在根节点处取第一步的 delta
V = disc * (p * V[1:] + (1 - p) * V[:-1]) # 继续持有价值 (13.5)
if american:
ex = np.maximum(S - K, 0) if kind == "call" else np.maximum(K - S, 0)
V = np.maximum(V, ex) # 与立即行权比较
return V[0], delta
def bs(S, K, r, T, sig, kind, q=0.0):
d1 = (np.log(S/K) + (r - q + sig**2/2)*T) / (sig*np.sqrt(T)); d2 = d1 - sig*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)
print("—— 原书例题复核 ——")
print("13.1 单步看涨 %.4f delta=%.4f" % tree_price(20, 21, .12, .25, 1, "call", u=1.1, d=0.9))
print("13.3 两步看涨 %.4f delta=%.4f" % tree_price(20, 21, .12, .5, 2, "call", u=1.1, d=0.9))
print("13.4 欧式看跌 %.4f delta=%.4f" % tree_price(50, 52, .05, 2, 2, "put", u=1.2, d=0.8))
print("13.5 美式看跌 %.4f" % tree_price(50, 52, .05, 2, 2, "put", True, u=1.2, d=0.8)[0])
for n in (2, 5, 500):
print(f"13.8 CRR 美式看跌 n={n:<3d} %.4f" % tree_price(50, 52, .05, 2, n, "put", True, sigma=.3)[0])
print(" CRR 欧式看跌 n=500 %.4f, BSM = %.4f" % (tree_price(50, 52, .05, 2, 500, "put", sigma=.3)[0],
bs(50, 52, .05, 2, .3, "put")))
print("例13.1 指数欧式看涨 %.2f" % tree_price(810, 800, .05, .5, 2, "call", q=.02, sigma=.2)[0])
print("例13.2 澳元美式看涨 %.4f" % tree_price(.61, .60, .05, .25, 3, "call", True, q=.07, sigma=.12)[0])
print("例13.3 期货美式看跌 %.2f" % tree_price(31, 30, .05, .75, 3, "put", True, q=.05, sigma=.3)[0])
# 真实世界折现率:股票预期收益 16% 时,单步例中看涨期权隐含的折现率
p_star = (20*np.exp(.16*.25) - 18) / 4
print(f"\n真实世界上涨概率 p* = {p_star:.4f}, 隐含折现率 = {-np.log(.633/p_star)/.25:.2%}")
# 收敛性:欧式看涨的二叉树误差随 n 振荡收敛;奇偶平均可显著改善
S0, K, r, T, sig = 50, 52, .05, 2, .3
ref = bs(S0, K, r, T, sig, "call")
print(f"\nBSM 欧式看涨 = {ref:.5f}")
print(" n 树价格 误差 (n,n+1)平均误差")
for n in (10, 11, 50, 51, 100, 101, 500, 501):
v = tree_price(S0, K, r, T, n, "call", sigma=sig)[0]
if n % 2 == 0:
avg = 0.5 * (v + tree_price(S0, K, r, T, n + 1, "call", sigma=sig)[0])
print(f"{n:4d} {v:9.5f} {v-ref:+9.5f} {avg-ref:+9.5f}")
else:
print(f"{n:4d} {v:9.5f} {v-ref:+9.5f}")
# 美式看跌的提前行权边界:每个时间点上"行权最优"的最高股价
def exercise_boundary(S0, K, r, T, n, sigma):
dt = T/n; u = np.exp(sigma*np.sqrt(dt)); d = 1/u
p = (np.exp(r*dt) - d)/(u - d); disc = np.exp(-r*dt)
V = np.maximum(K - S0*u**np.arange(n+1)*d**(n-np.arange(n+1)), 0)
bnd = {}
for step in range(n-1, -1, -1):
S = S0*u**np.arange(step+1)*d**(step-np.arange(step+1))
cont = disc*(p*V[1:] + (1-p)*V[:-1]); ex = np.maximum(K - S, 0)
V = np.maximum(cont, ex)
hit = S[(ex > cont) & (ex > 0)]
bnd[step*dt] = hit.max() if hit.size else np.nan
return bnd
b = exercise_boundary(50, 52, .05, 2, 400, .3)
print("\n美式看跌提前行权边界 S*(t):",
{t: round(float(b[min(b, key=lambda s: abs(s-t))]), 2) for t in (0.5, 1.0, 1.5, 1.9)})
# 动态 delta 复制:在二叉树世界里,按 delta 调仓的自融资组合精确复制期权收益,
# 与真实上涨概率无关(这里用 p*=0.9 的"真实世界"随机抽路径)
def replicate(S0, K, r, T, n, sigma, p_real, rng):
dt = T/n; u = np.exp(sigma*np.sqrt(dt)); d = 1/u
p = (np.exp(r*dt) - d)/(u - d); disc = np.exp(-r*dt)
# 预先算出整棵树的欧式看涨价值 V[step][j]
V = [None]*(n+1)
V[n] = np.maximum(S0*u**np.arange(n+1)*d**(n-np.arange(n+1)) - K, 0)
for step in range(n-1, -1, -1):
V[step] = disc*(p*V[step+1][1:] + (1-p)*V[step+1][:-1])
cash, j, S = V[0][0], 0, S0 # 以期权价格作为初始资金
shares = 0.0
for step in range(n):
Su, Sd = S*u, S*d
new_shares = (V[step+1][j+1] - V[step+1][j]) / (Su - Sd) # 式 (13.1)
cash -= (new_shares - shares) * S # 自融资调仓
shares = new_shares
cash *= np.exp(r*dt)
up = rng.random() < p_real
j += up; S = Su if up else Sd
return shares*S + cash - max(S - K, 0) # 复制误差
rng = np.random.default_rng(1)
errs = [replicate(50, 52, .05, 2, 50, .3, 0.9, rng) for _ in range(1000)]
print(f"1000 条真实世界路径上的 delta 复制误差:最大绝对值 = {np.max(np.abs(errs)):.2e}")
关键输出:
—— 原书例题复核 ——
13.1 单步看涨 0.6330 delta=0.2500
13.3 两步看涨 1.2822 delta=0.5064
13.4 欧式看跌 4.1927 delta=-0.4025
13.5 美式看跌 5.0896
13.8 CRR 美式看跌 n=2 7.4284
13.8 CRR 美式看跌 n=5 7.6709
13.8 CRR 美式看跌 n=500 7.4710
CRR 欧式看跌 n=500 6.7569, BSM = 6.7601
例13.1 指数欧式看涨 53.39
例13.2 澳元美式看涨 0.0189
例13.3 期货美式看跌 2.84
真实世界上涨概率 p* = 0.7041, 隐含折现率 = 42.55%
BSM 欧式看涨 = 9.70859
n 树价格 误差 (n,n+1)平均误差
10 9.69546 -0.01313 +0.05769
11 9.83710 +0.12851
50 9.73568 +0.02708 +0.01413
51 9.70977 +0.00117
100 9.72653 +0.01794 +0.00095
101 9.69255 -0.01605
500 9.70531 -0.00329 +0.00014
501 9.71217 +0.00358
美式看跌提前行权边界 S*(t): {0.5: 34.13, 1.0: 35.61, 1.5: 38.76, 1.9: 44.02}
1000 条真实世界路径上的 delta 复制误差:最大绝对值 = 1.02e-12
解读:
- 原书数字全部复现。第四位小数的微小差异(1.2822 vs 1.2823、4.1927 vs 4.1923、5.0896 vs 5.0894)来自原书手算时把 \(p\) 四舍五入到 4 位;DerivaGem 的 7.428、7.671、7.47、6.76 和例 13.1–13.3 的 53.39、0.019、2.84 都与程序结果一致。
- 振荡收敛:\(n=10\) 与 \(n=11\) 的误差分别是 −0.013 和 +0.129,符号与大小都在跳动,误差的大小取决于行权价相对于末端节点网格的位置。步数较大时,相邻奇偶步数的平均能把误差降低一个数量级以上(\(n=100\) 时从 0.018 降到 0.001;\(n=500\) 时从 0.003 降到 0.0001),但步数很少时并不保证改善(\(n=10\) 时平均反而更差)。生产系统中通常同时使用足够多的步数和改进的格式。
- 提前行权边界:对这个 2 年期美式看跌期权,距到期越近,触发提前行权的临界股价越高(\(t=0.5\) 时约 34.1,\(t=1.9\) 时约 44.0,到期时趋于 \(K=52\))。股价低于边界时持有人应立即行权。这条边界是美式期权定价的核心,没有解析解。
- delta 复制:以期权价格作为初始资金,在每个节点按式 (13.1) 调整股票持仓、其余资金按无风险利率存放,1000 条路径上的复制误差都在 \(10^{-12}\) 量级(浮点误差)。路径是按真实上涨概率 0.9 抽取的,与风险中性概率毫无关系——这就是"期权价格与真实概率无关"的最直接证明:无论世界怎样演化,复制组合都能精确交付期权收益,所以期权只能值复制成本。连续时间、离散调仓的真实世界中,复制不再精确,对冲误差与交易成本的权衡见第 19a 章。
本章小结
在单步二叉树中,持有 \(\Delta=\frac{f_u-f_d}{S_0u-S_0d}\) 股股票并卖出 1 份期权构成无风险组合,无套利要求它只赚无风险利率,由此得到 \(f=e^{-r\Delta t}[pf_u+(1-p)f_d]\),其中 \(p=\frac{a-d}{u-d}\)。期权价格与股票的真实预期收益和真实上涨概率无关,因为这些信息已体现在股价中。\(p\) 是风险中性概率:在它之下股价的期望以无风险利率增长。风险中性定价原理说,衍生品价值等于风险中性世界中的预期收益按无风险利率折现,这个结果在真实世界中同样正确;而在真实世界中直接定价则需要一个事先无法知道的折现率(单步例中看涨期权为 42.6%)。多步树从末端倒推,美式期权在每个节点取继续持有价值与立即行权收益中的较大者。delta 随节点变化,对冲需要动态调整。CRR 参数 \(u=e^{\sigma\sqrt{\Delta t}}\)、\(d=1/u\) 用于匹配波动率;真实世界与风险中性世界的树节点相同、只有概率不同,这是 Girsanov 定理的体现(P 测度与 Q 测度)。其他资产只需改变增长因子 \(a\)。步数趋于无穷时,欧式期权的二叉树价格以振荡方式收敛到 BSM 公式。
| 概念 | 公式 |
|---|---|
| 对冲比率 | \(\Delta=\dfrac{f_u-f_d}{S_0u-S_0d}\) |
| 单步定价 | \(f=e^{-r\Delta t}[pf_u+(1-p)f_d]\) |
| 风险中性概率 | \(p=\dfrac{a-d}{u-d}\),需 \(d<a<u\) |
| CRR 参数 | \(u=e^{\sigma\sqrt{\Delta t}}\),\(d=e^{-\sigma\sqrt{\Delta t}}\) |
| 增长因子 | 股票 \(e^{r\Delta t}\);股息/指数 \(e^{(r-q)\Delta t}\);外汇 \(e^{(r-r_f)\Delta t}\);期货 1 |
| 两步定价 | \(f=e^{-2r\Delta t}[p^2f_{uu}+2p(1-p)f_{ud}+(1-p)^2f_{dd}]\) |
| 美式期权 | 节点价值 = max(继续持有价值, 立即行权收益) |
| 真实世界概率 | \(p^*=\dfrac{e^{\mu\Delta t}-d}{u-d}\);树的节点与 Q 测度相同 |
| 波动率匹配 | \(e^{r\Delta t}(u+d)-ud-e^{2r\Delta t}=\sigma^2\Delta t\) |
| 极限 | \(c=S_0N(d_1)-Ke^{-rT}N(d_2)\) |
练习
基础
-
股价 40,1 个月后为 42 或 38,无风险利率 8%。分别用无套利方法和风险中性方法为 1 个月期、行权价 39 的欧式看涨期权定价。 提示:\(\Delta=3/4=0.75\),组合价值 \(38\times0.75=28.5\),\(f=40\times0.75-28.5e^{-0.08/12}=1.69\);\(p=(40e^{0.08/12}-38)/4=0.5669\),\(f=e^{-0.08/12}\times0.5669\times3=1.69\)(原书习题 13.1)。
-
股价 50,6 个月后为 45 或 55,无风险利率 10%。求 6 个月期、行权价 50 的欧式看跌期权价格。 提示:\(p=(50e^{0.05}-45)/10=0.7564\),看跌期权在下跌时值 5,\(f=e^{-0.05}\times0.2436\times5=1.16\)(原书习题 13.4)。
-
解释为什么在单步二叉树中期权价格与股票的真实上涨概率无关。 提示:期权价格是相对于股价确定的;真实概率已经反映在股价中;无风险组合的构造不需要概率。
-
股价 100,波动率 25%,无风险利率 4%,用 CRR 参数构造步长 3 个月的树,求 \(u\)、\(d\)、\(p\)。若标的是期货呢? 提示:\(u=e^{0.125}=1.1331\),\(d=0.8825\),\(a=e^{0.01}=1.0101\),\(p=0.5089\);期货 \(a=1\),\(p=(1-0.8825)/(1.1331-0.8825)=0.4688\)。
-
在 13.4 节的两步看跌例子中,验证看涨-看跌平价是否成立(需要先算出同一棵树上行权价 52 的欧式看涨期权价格)。 提示:末端看涨价值 20、0、0,\(c=e^{-0.1}\times0.6282^2\times20=7.1411\);\(p+S_0=4.1923+50=54.19\),\(c+Ke^{-rT}=7.14+52e^{-0.1}=54.19\),成立(原书习题 13.12 类似)。
进阶
-
某衍生品在 2 年后支付 \(S_T^2\)。用 13.4 节的树(\(S_0=50\),\(u=1.2\),\(d=0.8\),\(r=5\%\))为它定价。 提示:末端收益 5184、2304、1024,价格 \(e^{-0.1}(0.6282^2\times5184+2\times0.6282\times0.3718\times2304+0.3718^2\times1024)\approx2{,}953\)(原书习题 13.14 类似)。
-
证明在单步树中,若 \(e^{r\Delta t}\ge u\),则存在套利机会,并说明此时 \(p\) 会怎样。 提示:卖空股票、投资无风险资产,到期最多需付 \(S_0u\le S_0e^{r\Delta t}\);此时 \(p\ge1\),不再是概率。
-
用三步 CRR 树为下列美式看跌期权定价并找出提前行权的节点:\(S_0=40\),\(K=42\),\(r=6\%\),\(\sigma=30\%\),\(T=0.75\)。再用 500 步树计算并与欧式价格比较。 提示:直接调用本章代码中的
tree_price即可;提前行权节点集中在树的下半部分。 -
在 13.2 节的单步例子中,股票真实预期收益为 16%。计算同一看跌期权(行权价 21)的价格和它的真实世界折现率,解释为什么是负数。 提示:看跌期权上涨时值 0、下跌时值 3;\(f=e^{-0.03}\times0.3477\times3=1.0123\);真实预期收益 \(0.2959\times3=0.8878\),折现率 \(R=-4\ln(1.0123/0.8878)\approx-52.5\%\)。看跌期权的 beta 为负,是保险,投资者接受负的预期收益(原书习题 13.27)。
-
推导支付连续股息率 \(q\) 时 \(p\) 的公式,并说明为什么有高股息时美式看涨期权可能提前行权。 提示:\(pS_0u+(1-p)S_0d=S_0e^{(r-q)\Delta t}\);股息使持有期权而非股票的机会成本增加,深度实值时行权拿到股票、获得股息更划算(参见例 13.2 的外汇看涨期权)。
原书推荐习题:13.1、13.11、13.21(单步树两种方法对照,夯实无套利与风险中性定价);13.8(理解为何需要动态对冲);13.13、13.22、13.23(美式看跌的提前行权判断);13.14、13.24(非标准收益衍生品的定价);13.16、13.20、13.29(计算对冲头寸,理解 delta 的动态);13.25(步数与收敛,建议自己编程实现 CRR 树);13.27(真实世界折现率的不确定性)。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 13.1 单步二叉树与无套利论证 | 13.1 A One-Step Binomial Model and a No-Arbitrage Argument | p.297–300 |
| 13.2 风险中性定价 | 13.2 Risk-Neutral Valuation | p.300–302 |
| 13.3 两步二叉树 | 13.3 Two-Step Binomial Trees | p.302–305 |
| 13.4 看跌期权的例子 | 13.4 A Put Example | p.305–306 |
| 13.5 美式期权 | 13.5 American Options | p.306–307 |
| 13.6 Delta | 13.6 Delta | p.307–308 |
| 13.7 匹配波动率 | 13.7 Matching Volatility with u and d | p.308–310 |
| 13.8 二叉树公式 | 13.8 The Binomial Tree Formulas | p.310–311 |
| 13.9 增加步数 | 13.9 Increasing the Number of Steps | p.311–312 |
| 13.10 使用 DerivaGem | 13.10 Using DerivaGem | p.311–313 |
| 13.11 其他资产上的期权 | 13.11 Options on Other Assets | p.312–315 |
| 小结、延伸阅读 | Summary, Further Reading | p.315–316 |
| 习题 | Practice Questions 13.1–13.29 | p.317–320 |
| 附录 | Appendix: Derivation of the Black–Scholes–Merton Option-Pricing Formula from a Binomial Tree | p.321–324 |
原书为 Hull《Options, Futures, and Other Derivatives》第 9 版 Global Edition(Pearson 2018),表中为 PDF 页码。延伸阅读:Coval & Shumway (2001) 期权的预期收益;Cox, Ross & Rubinstein (1979);Rendleman & Bartter (1979) 两状态期权定价;Shreve《Stochastic Calculus for Finance I》。