量化交易中文教材

附录 书末附录速查:术语表、DerivaGem、交易所与正态分布表

原书正文之后有约 50 页附录(PDF p.841–892):术语表、DerivaGem 软件说明、主要期货期权交易所列表、标准正态分布表,以及作者索引和主题索引。这些内容不需要精读,但在学习和工作中会反复查阅。本附录说明每部分有什么、什么时候需要回原书,并摘出几条值得直接采用的术语定义。

学习目标

  1. 知道原书书末附录各部分的内容和用途,需要时能快速回查。
  2. 掌握原书术语表中几条容易混淆的关键定义:凸性调整、远期风险中性世界、Girsanov 定理、测度与计价单位、非平稳模型、contango 与 backwardation。
  3. 了解 DerivaGem 的功能划分和希腊字母的计量约定,能用自己的代码复现它的示例。
  4. 会用正态分布表线性插值,也知道在代码中直接用 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)=N(-0.12)-0.34[N(-0.12)-N(-0.13)]=0.4522-0.34\times(0.4522-0.4483)=0.4509\]
\[N(0.6278)=N(0.62)+0.78[N(0.63)-N(0.62)]=0.7324+0.78\times(0.7357-0.7324)=0.7350\]

推导拆解:两个例子都是线性插值。以 \(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