附录 书末附录速查:术语表、DerivaGem、交易所与正态分布表
原书正文之后有约 50 页附录(PDF p.841–892):术语表、DerivaGem 软件说明、主要期货期权交易所列表、标准正态分布表,以及作者索引和主题索引。这些内容不需要精读,但在学习和工作中会反复查阅。本附录说明每部分有什么、什么时候需要回原书,并摘出几条值得直接采用的术语定义。
学习目标
- 知道原书书末附录各部分的内容和用途,需要时能快速回查。
- 掌握原书术语表中几条容易混淆的关键定义:凸性调整、远期风险中性世界、Girsanov 定理、测度与计价单位、非平稳模型、contango 与 backwardation。
- 了解 DerivaGem 的功能划分和希腊字母的计量约定,能用自己的代码复现它的示例。
- 会用正态分布表线性插值,也知道在代码中直接用
scipy.stats.norm替代查表。
读前导读
这一部分在解决什么问题。 附录不教新方法,它是一份"工具索引":遇到陌生术语查术语表,与 DerivaGem 对账时查输入和希腊字母的单位,手算考试题时查正态分布表。CFA 考试里你已经习惯查 \(z\) 表,这里的 \(N(x)\) 表是同一张表。
需要先想起来的数学。 只有两样:一是线性插值,在两个已知点之间按距离比例取值,即 \(f(x)\approx f(a)+\frac{x-a}{b-a}[f(b)-f(a)]\);二是 \(N(x)\) 的对称性 \(N(-x)=1-N(x)\),有了它,负半轴的表可以由正半轴推出。术语表中的"测度""Girsanov 定理""计价单位"若觉得陌生,回看第 28 章,并参考 第 00 册第 08 章 读懂数学证明与符号。
怎么读。 第一次只需读 A.1 的"值得直接采用的几条定义"表和 contango 的两种用法,以及 A.2 的希腊字母计量约定;其余部分需要时再查。
A.1 术语表(Glossary of Terms,PDF p.841–862)
术语表按字母顺序列出全书约 400 条术语的一句话定义,覆盖:
- 期权与策略:看涨、看跌;牛市、熊市、蝶式、日历、对角价差(bull/bear/butterfly/calendar/diagonal spread);跨式、宽跨式、strip、strap;各类奇异期权,如亚式(Asian)、障碍(barrier)、回望(lookback)、选择人(chooser)、复合(compound)、棘轮(cliquet)、缺口(gap)、Parisian、shout、彩虹(rainbow)、篮子(basket)、摆动(swing)期权。
- 利率与互换:自举(bootstrap)、平价收益率(par yield)、DV01、久期与凸性、CMS/CMT、LIBOR 后置、递增/摊还/指数本金互换、OIS、LIBOR–OIS 利差、TED 利差、互换期权、棘轮/黏性/弹性上限。
- 信用:CDS、CDO、基础相关与复合相关、风险率(hazard rate)、CVA/DVA/FVA、CSA、降级触发、错向风险(wrong-way risk)。
- 风险管理:VaR、C-VaR/预期损失(expected shortfall)、压力 VaR、历史模拟、Cornish–Fisher 展开、现金流映射、EWMA/GARCH。
- 随机过程与数值方法:维纳过程、Itô 过程与 Itô 引理、Girsanov 定理、鞅、计价单位、P/Q 测度、马尔可夫过程、跳跃扩散、方差伽马、CEV、显式/隐式有限差分、控制变量、准随机序列、Newton–Raphson、Cholesky 分解、高斯求积。
- 市场与制度:清算所/中央对手方(CCP)、保证金、SEF、ISDA、Dodd–Frank 法案、Volcker 规则、巴塞尔委员会、IMM 日期、三重到期日(triple witching)、"野卡"交易(wild card play)。
值得直接采用的几条定义
| 术语 | 原书定义要点 | 本册相关章节 |
|---|---|---|
| Convexity adjustment(凸性调整) | 原书称之为"用滥了的术语":既可以指期货利率与远期利率之间的换算调整,也可以指 Black 模型中对远期利率的调整 | 第 6 章、第 30 章 |
| Forward risk-neutral world(远期风险中性世界) | 关于某资产的远期风险中性世界,是风险市场价格等于该资产波动率的世界 | 第 28、30、32 章 |
| Girsanov's theorem(Girsanov 定理) | 换测度(如从现实世界换到风险中性世界)时,变量的期望收益改变而波动率不变 | 第 28、31、35 章 |
| Measure(测度) | 概率测度,它定义了风险市场价格 | 第 28 章 |
| Numeraire(计价单位) | 计量证券价格的单位。例:以 IBM 股票为计价单位,IBM 价格 $80、某证券价格 $50,则该证券价格记为 0.625 | 第 28、30 章 |
| Risk-neutral valuation(风险中性估值) | 由它得到的衍生品价格在所有世界中都正确,而不只是在风险中性世界中正确 | 全书 |
| Nonstationary model(非平稳模型) | 波动率参数是时间函数的模型 | 第 31.8 节的告诫 |
| Contango / normal backwardation | 期货价格高于/低于期望未来现货价格(contango 也常指期货价格高于当前现货价格) | 第 5、34 章 |
| Normal / inverted market | 期货价格随期限递增/递减 | 第 34 章 |
白话解释:表中几条关于测度的定义可以合起来读。"测度"就是一套给未来情景分配概率的方式;现实世界和风险中性世界是两套不同的概率。Girsanov 定理说的是:从一套概率换到另一套,变量的漂移会变(正是第 35 章 \(m\to m-\lambda s\) 的那一项),波动率不变。所以风险中性定价时可以放心使用从历史数据估计的波动率,却不能直接使用历史平均收益率。"计价单位"则是选什么资产当"钱"来度量价格:选现金账户得到传统风险中性世界,选零息债得到远期风险中性世界(第 30、33 章的各种调整都源于计价单位的切换)。"风险中性估值得到的价格在所有世界中都正确",意思是风险中性只是计算工具,算出来的价格不是"假设投资者风险中性"才成立的。
注意 contango 的两种用法:严格定义比较的是期货价格与期望未来现货价格(涉及风险溢价),日常用法比较的是期货价格与当前现货价格(即期限结构的形状)。量化研究中说"contango 品种展期亏损"时,用的是后一种含义,严格说应称"正向市场(normal market)"。
A.2 DerivaGem 软件说明(PDF p.863–867)
DerivaGem 3.00 是原书配套的 Excel 软件,包括三个文件:DG300.xls(计算器)、DG300 functions.xls(函数)、DG300 applications.xls(应用示例)。3.00 版新增了 CEV、Merton 跳跃扩散、方差伽马模型下的欧式期权定价,蒙特卡洛实验,由市场数据计算 LIBOR 与 OIS 零息曲线,互换与债券估值;互换、上限、互换期权可以选择 OIS 或 LIBOR 贴现。
入门示例:在 Equity_FX_Indx_Fut_Opts_Calc 表中选 Currency、Binomial American、Put;输入汇率 1.61、波动率 12%、本币利率 8%、外币利率 9%、期限 1.0 年、执行价 1.60、4 步,得期权价格 0.07099 及希腊字母;Display Tree 显示原书图 21.6 的二叉树。可以勾选 Imply Volatility 反解隐含波动率,也可以画各种图。
各工作表的功能:
| 工作表 | 功能 | 对应章节 |
|---|---|---|
| Equity_FX_Indx_Fut_Opts_Calc | 股票、外汇、指数、期货期权;BSM、二叉树(美式最多 500 步、最多显示 10 步);亚式、障碍、回望等奇异期权 | 第 13–21c、26a 章 |
| Alternative Models | CEV、跳跃扩散、方差伽马下的欧式期权,可画隐含波动率–执行价曲线(波动率微笑) | 第 20、27a 章 |
| Monte Carlo | 对数正态、跳跃扩散、方差伽马的蒙特卡洛,显示 10 次试验,可选对偶变量,显示标准误 | 第 21b 章 |
| Zero Curve | 由 LIBOR 存款利率和互换利率求 LIBOR 曲线,由 OIS 利率求 OIS 曲线(教学简化:计息期为整年分数、Actual/Actual),可比较两种贴现下的 LIBOR 曲线 | 第 4、7、9 章 |
| Bond_and_Swap_Price | 两种贴现方式下的债券和互换估值 | 第 7、9 章 |
| Bond_Options | Black 模型(仅欧式)、正态短期利率模型 (31.13)、对数正态模型 (31.18)(欧式和美式);零息曲线分段线性;执行价可为报价(clean)或现金(dirty)价,每 100 本金 | 第 29、31 章 |
| Caps_and_Swap_Options | Black 上限/下限与欧式互换期权,以及正态/对数正态短期利率模型;首个计息期可为正常长度的 0.5–1.5 倍;可选 LIBOR 或 OIS 贴现 | 第 29、31 章 |
| CDS | 由 CDS 利差求风险率或反之,假设违约只发生在付款日中点 | 第 25 章 |
| CDO | 由分档相关性计算报价(基点或预付款);积分点数默认 10(最多 30);利差 = ExpLoss × 10,000 / PVPmts,预付款 = ExpLoss − Spread × PVPmts / 10,000;可反解复合相关或基础相关 | 第 25 章 |
其他细节:股票期权最多输入 7 笔股息;非标准期权的希腊字母用扰动法计算;亚式期权的"Current Average"是起始以来的均价;回望期权对看涨用迄今最小值、对看跌用迄今最大值;利率均为连续复利、Actual/Actual。
希腊字母的计量约定(读 DerivaGem 输出或与之对账时要注意):
- 股票/外汇/指数/期货期权:Delta 为标的每上升 1 美元期权价格的变化;Gamma 为 delta 的变化;Vega 为波动率上升 1 个百分点(如 20% → 21%)的价格变化;Rho 为利率上升 1 个百分点的价格变化;Theta 为每过一个日历日的价格变化。
- 利率产品:DV01 为零息曲线平行上移 1bp 的价格变化;Gamma 为 DV01 对平行上移的变化(per % per %);Vega 为波动率参数上升 1 个百分点的价格变化。
自己写定价库时,希腊字母的单位(每 1 美元还是每 1%,每日历日还是每交易日,每年还是每天)是对账中最常见的差异来源。
金融直觉:一个具体的换算例子。BSM 公式直接求导得到的 vega 是"波动率上升 1(即 100 个百分点)时的价格变化",DerivaGem 显示的是上升 1 个百分点的变化,所以要除以 100。theta 公式给出的是每年的变化,DerivaGem 显示每个日历日的变化,要除以 365;若交易台按交易日计,则除以 252。rho 同理除以 100。对账时数字相差约 100 倍、365 倍或 252/365 倍,几乎都是单位问题。
Applications Builder(含 VBA 源码):A 二叉树收敛;B 希腊字母图;C delta 对冲表现(原书表 19.2、19.3);D 二元期权的 delta + gamma 对冲;E 三种方法计算 VaR;F 障碍期权静态复制(第 26.16 节);G 三叉树收敛(第 31.7 节例题所用)。
A.3 主要期货期权交易所(PDF p.868)
原书列出约 30 家交易所及网址,包括 ASX、BM&FBOVESPA、BSE、BOX、Bursa Malaysia、CBOE、中国金融期货交易所(CFFEX)、CME Group、大连商品交易所(DCE)、Eurex、香港期货交易所、ICE、ISE、KCBT、LME、MEFF、MEXDER、MGE、蒙特利尔交易所、NASDAQ OMX、印度 NSE、NYSE Euronext、大阪证券交易所、上海期货交易所(SHFE)、新加坡交易所、东京谷物交易所、东京金融交易所、郑州商品交易所(ZCE)。
原书还说明了近年交易所的大规模合并:CBOT 与 CME 合并为 CME Group(含 NYMEX);Euronext 与 NYSE 合并为 NYSE Euronext(拥有 AMEX、Pacific Exchange、LIFFE 和两家法国交易所);澳大利亚证券交易所与悉尼期货交易所合并为 ASX;ICE 收购了 NYBOT、IPE、Winnipeg 商品交易所,并(在原书写作时)正与 NYSE Euronext 合并;Eurex(由德意志交易所与瑞士 SIX 共同运营)收购了 ISE。合并主要由降低交易成本的规模经济驱动。
这份列表反映的是原书出版时的状况,交易所格局此后仍在变化,使用时以各交易所官网为准。
A.4 标准正态分布表(PDF p.869–870)
两张 \(N(x)\) 表分别覆盖 \(x\le0\) 与 \(x\ge0\),\(x\) 的步长为 0.01,范围约为 ±4.0,中间值用线性插值。原书的两个例子:
推导拆解:两个例子都是线性插值。以 \(N(-0.1234)\) 为例:\(-0.1234\) 位于 \(-0.12\) 和 \(-0.13\) 之间,离 \(-0.12\) 的距离是 \(0.0034\),占步长 \(0.01\) 的 34%,所以从 \(N(-0.12)\) 出发,向 \(N(-0.13)\) 移动两者差额的 34%。因为 \(x\) 更负时 \(N\) 更小,所以是减号。正态累积分布函数在小区间内近似直线,误差在第 5 位小数,手算足够。
常用值:\(N(-1)=0.1587\),\(N(-1.5)=0.0668\),\(N(-2)=0.0228\),\(N(-2.5)=0.0062\),\(N(-3)=0.00135\)(四位小数的表中印作 0.0013)。
在代码中直接用 scipy.stats.norm.cdf(以及 norm.ppf 求分位数),不需要查表。
A.5 作者索引与主题索引(PDF p.871–892)
作者索引(p.871–874)按姓氏列出被引作者及页码;主题索引(p.875–892)按字母顺序列出主题及书页码,并有子条目(例如 "Volatility smile" 下分隐含资产价格分布、股票期权、外汇期权、希腊字母等;"Zero curve" 下分期望理论、流动性偏好理论、市场分割理论、多条零息曲线等)。注意索引给的是书页码,PDF 页码要加 1。
量化实战
附录本身没有新的方法,但有两个可以直接用代码完成的核对:正态分布表的插值,以及 DerivaGem 入门示例的美式外汇看跌期权。后者是检验自己的二叉树实现的一个现成基准:把外币利率当作连续股息率即可。
import numpy as np
from scipy.stats import norm
# 原书正态分布表的线性插值 vs 直接计算
def table_N(x):
lo = np.floor(x*100)/100; hi = lo + 0.01 # 表的步长 0.01,查表值保留 4 位
Nlo, Nhi = round(norm.cdf(lo), 4), round(norm.cdf(hi), 4)
return Nlo + (x-lo)/0.01*(Nhi-Nlo)
for x in [-0.1234, 0.6278]:
print(f"N({x}): 查表插值 {table_N(x):.4f} scipy {norm.cdf(x):.6f}")
print("常用值:", {x: round(float(norm.cdf(x)), 5) for x in [-1, -1.5, -2, -2.5, -3]})
# DerivaGem 入门示例:美式外汇看跌,4 步二叉树(外币利率作为股息率)
def crr_american_put(S, K, r, q, sig, T, n):
dt = T/n; u = np.exp(sig*np.sqrt(dt)); d = 1/u
p = (np.exp((r-q)*dt) - d)/(u - d); disc = np.exp(-r*dt)
ST = S*u**np.arange(n, -1, -1)*d**np.arange(0, n+1)
V = np.maximum(K - ST, 0)
for i in range(n-1, -1, -1):
ST = S*u**np.arange(i, -1, -1)*d**np.arange(0, i+1)
V = np.maximum(disc*(p*V[:-1] + (1-p)*V[1:]), K - ST)
return V[0]
print(f"DerivaGem 示例(S=1.61, K=1.60, r=8%, rf=9%, sigma=12%, T=1, 4 步): "
f"{crr_american_put(1.61, 1.60, 0.08, 0.09, 0.12, 1.0, 4):.5f}")
关键输出:
N(-0.1234): 查表插值 0.4509 scipy 0.450895
N(0.6278): 查表插值 0.7350 scipy 0.734933
常用值: {-1: 0.15866, -1.5: 0.06681, -2: 0.02275, -2.5: 0.00621, -3: 0.00135}
DerivaGem 示例(S=1.61, K=1.60, r=8%, rf=9%, sigma=12%, T=1, 4 步): 0.07099
查表插值与精确值在第 4 位小数一致;4 步 CRR 二叉树给出 0.07099,与 DerivaGem 完全相同。
本附录小结
书末附录是工具性的:术语表用于快速查定义(几条容易混淆的定义见 A.1 的表),DerivaGem 说明告诉你每个工作表对应哪些章节以及希腊字母的计量单位,交易所列表反映原书出版时的市场格局,正态分布表在编程时可以用 scipy.stats.norm 替代,索引用于按主题回查原书页码(注意 PDF 页码 = 书页码 + 1)。
| 附录部分 | 用途 | 何时回原书 |
|---|---|---|
| 术语表 | 一句话定义约 400 条术语 | 遇到不熟的术语、需要确认原书用法时 |
| DerivaGem 说明 | 软件功能、输入约定、希腊字母单位 | 用 DerivaGem 做原书习题或与之对账时 |
| 交易所列表 | 全球主要期货期权交易所 | 了解原书时代的市场格局 |
| 正态分布表 | \(N(x)\) 查表与插值 | 手算考试题时;编程时不需要 |
| 索引 | 按作者、主题查页码 | 按主题回查原书时 |
原书对照
| 本附录小节 | 原书内容 | PDF 页码 |
|---|---|---|
| A.1 术语表 | Glossary of Terms | p.841–862 |
| A.2 DerivaGem | DerivaGem Software | p.863–867 |
| A.3 交易所 | Major Exchanges Trading Futures and Options | p.868 |
| A.4 正态分布表 | Tables for \(N(x)\) | p.869–870 |
| A.5 索引 | Author Index, Subject Index | p.871–892 |