第 12 章 期权交易策略
第 10 章讲了单个期权的盈亏形状,第 11 章用无套利论证建立了期权价格之间的关系。本章把两者结合起来:把期权、股票、零息债券按不同方式组合,可以构造出几乎任何想要的到期盈亏形状。 本章研究三类组合:
- 期权 + 零息债券(保本票据);
- 期权 + 标的资产(备兑看涨、保护性看跌);
- 同一标的上的两个或多个期权(价差与组合)。
选择什么策略,取决于交易者对价格走势的判断和愿意承担的风险。原书给了一个清晰的"风险阶梯":极度厌恶风险但有方向观点的人可选保本票据;愿多承担一些风险可选牛市或熊市价差;再激进一些就直接买看涨或看跌。如果预期大幅波动但方向不明,风险厌恶者可选反向蝶式价差(小赚小亏),激进者选跨式或宽跨式。
本章所有盈亏图都沿用第 10 章的惯例:利润 = 到期收益 − 初始成本,不考虑货币时间价值。阅读时请随手画图——每个策略都是第 10 章四条折线的加权和,画几次就能"看一眼收益表就知道形状"。
学习目标
- 理解保本票据的构造,会分析利率、波动率、股息率和期限对其可行性的影响。
- 掌握期权与股票组合(备兑看涨、保护性看跌及其反向头寸)的盈亏形状,并能用看涨-看跌平价解释它们。
- 会构造牛市价差、熊市价差、盒式价差、蝶式价差、日历价差和对角价差,写出各自的收益表,判断各自适用的市场观点。
- 会构造跨式、条式、带式、宽跨式等组合策略,理解它们与波动率观点的关系,以及"要赚钱必须与市场观点不同"这一原则。
- 理解用一系列行权价的期权可以静态复制任意到期收益,并会由此从期权价格中提取风险中性密度。
读前导读
这一章在解决什么问题。 CFA 衍生品部分讲过备兑看涨、保护性看跌、牛熊价差、跨式,你对这些名字不陌生。本章前四节是系统化复习:每个策略都是第 10 章四条折线的加权和,盈亏形状可以靠"列收益表"机械地得出,背后的等价关系靠第 11 章的平价解释。真正的新内容在 12.5:只要行权价足够密,用期权能拼出任何到期收益函数;反过来,从期权价格可以读出市场对到期股价的概率分布。这是方差互换、VIX 指数和"从期权价格提取事件概率"的共同基础。
需要先想起来的数学。
- 分段线性函数与"拐点处斜率的变化"。 一个看涨期权 \(\max(S_T-K,0)\) 在 \(K\) 处斜率从 0 跳到 1,跳幅 +1;买 \(w\) 份就跳 \(w\)。所以"策略收益图在 \(K\) 处斜率变了多少"就等于"在 \(K\) 处净持有多少份期权"。例:牛市价差在 \(K_1\) 处斜率 +1、在 \(K_2\) 处 −1,对应买一份 \(K_1\)、卖一份 \(K_2\)。
- 绝对值。 \(|x|=\max(x,-x)\),图形是 V 字。跨式收益 \(|S_T-K|\) 就是一份看涨加一份看跌。
- 二阶导数是"斜率的变化率"。 \(f''(x)\) 衡量曲线弯曲的程度。对等距网格,\(\frac{f(x-h)-2f(x)+f(x+h)}{h^2}\approx f''(x)\)。例:\(f(x)=x^2\),\(h=1\),\(x=3\):\((4-18+16)/1=2\),正好是 \(f''=2\)。见 第 00 册第 02 章 导数与泰勒展开。
- 密度与积分。 概率密度 \(q(x)\) 本身不是概率,\(q(x)\Delta x\) 才是"落在宽度 \(\Delta x\) 的小区间里"的概率;把这些小块加总(积分)得到区间概率,全部加总为 1。见 第 00 册第 03 章 积分。
怎么读这一章。 12.2(尤其是"备兑看涨 = 卖出看跌")、12.3 的盒式价差与蝶式价差、Business Snapshot 12.2 是必读。其余策略只要会画收益表就行,不必记形状。12.5 第一次读可以先只读两个推论的结论和代码输出,等学完第 13 章的风险中性定价再回来读推导。
12.1 保本票据
构造
期权常被用来为零售市场构造保本票据(principal-protected note):票据的收益取决于股票、股指等风险资产的表现,但初始本金没有风险。这类产品对保守型投资者很有吸引力。
例 12.1 3 年期无风险利率为 6%(连续复利)。今天投资 \(1{,}000e^{-0.06\times3}=835.27\) 美元于零息债券,3 年后增长到 1,000 美元,两者之差为 \(1{,}000-835.27=164.73\) 美元。
某股票组合价值 1,000 美元,股息率 1.5%。假设该组合上 3 年期平值欧式看涨期权的价格低于 164.73 美元(按原书用 DerivaGem 的计算,组合波动率低于约 15% 时成立)。银行就可以向客户提供一份 1,000 美元的投资产品,内含:
- 一份本金 1,000 美元的 3 年期零息债券;
- 一份该股票组合的 3 年期平值欧式看涨期权。
若组合上涨,投资者得到"1,000 美元投资于该组合"在到期时的价值(零息债券支付的 1,000 美元恰好用于支付行权价);若组合下跌,期权作废,零息债券保证投资者收回 1,000 美元。
最坏情况下,投资者只是损失了这 3 年的利息、股息等收入。变体是看跌型保本票据:零息债券 + 看跌期权,适合看空者。
对散户是否划算
银行总会在产品中嵌入利润,即零息债券加期权的成本低于 1,000 美元。投资者还承担发行银行到期无力支付的信用风险——2008 年雷曼兄弟倒闭时,一些散户就在其保本票据上蒙受了损失。理论上,散户可以自己买期权、余款投资于无风险资产,也许更划算;但散户面对的期权买卖价差更宽、能拿到的利率更低,所以银行在赚钱的同时也可能为投资者增加了价值。
对银行是否可行
可行性的关键在于利率和波动率:
- 利率低时,可用于买期权的钱少。 利率 3% 时,只有 \(1{,}000-1{,}000e^{-0.03\times3}=86.07\) 美元可以买期权。
- 波动率高时,期权贵。 利率 6% 但波动率 25% 时,期权价格约为 221 美元,超过可用资金 164.73。
这两种情况下产品都无法盈利。银行可以做以下调整:提高行权价(例如组合需上涨 15% 投资者才获利);给收益设上限(相当于把看涨期权换成牛市价差,见 12.3 节);让收益取决于平均价格而非期末价格;设置敲出障碍;等等。这些调整都使期权更便宜。
延长期限也常常有效。利率 3%、波动率 15%、股息率 1.5% 时:
| 期限 | 可用于买期权的资金 | 平值看涨期权价格(原书 DerivaGem 计算) | 是否可行 |
|---|---|---|---|
| 3 年 | 86.07 | 约 119 | 否 |
| 10 年 | \(1{,}000-1{,}000e^{-0.3}=259.18\) | 约 217 | 是 |
| 20 年 | \(1{,}000-1{,}000e^{-0.6}=451.19\) | 约 281 | 是,利润更丰厚 |
股息率是关键变量:股息率越高,看涨期权越便宜,对银行越有利。若股息率为零,无论期限多长都不可能盈利。原因是第 11 章的下界 (11.4):\(c\ge S_0-Ke^{-rT}\)。对平值期权 \(S_0=K=1{,}000\),有 \(c\ge1{,}000-1{,}000e^{-rT}\),即平值看涨期权的价格不会低于零息债券节省下来的资金。
推导拆解:把"可行"写成不等式。银行可用于买期权的钱是 \(1{,}000-1{,}000e^{-rT}=K-Ke^{-rT}\)(取 \(S_0=K=1{,}000\)),可行要求 \(c<K-Ke^{-rT}\)。 无股息时,第 11 章的下界给出 \(c\ge S_0-Ke^{-rT}=K-Ke^{-rT}\),与可行条件正好相反,所以无论 \(T\) 多大都不可行。 有连续股息率 \(q\) 时,下界变成 \(c\ge S_0e^{-qT}-Ke^{-rT}\)(第 17 章会推导),比可用资金少了 \(K(1-e^{-qT})\)。这块空隙就是银行的操作空间:股息率越高、期限越长,空隙越大,表中 10 年、20 年变得可行正是这个原因。 直觉:持有看涨期权的人拿不到股息,看涨期权比"直接持股"便宜的那部分,正好来自被放弃的股息。保本票据的投资者实际上是用"放弃利息 + 放弃股息"换取了下行保护。
12.2 期权与标的资产的组合
设标的为股票。原书图 12.1 画出了四种"一份期权 + 一股股票"组合的盈亏(虚线为单个证券,实线为组合):
| 组合 | 构成 | 盈亏形状类似 |
|---|---|---|
| (a) 备兑看涨(writing a covered call) | 多头股票 + 空头看涨 | 空头看跌 |
| (b) 反向备兑看涨 | 空头股票 + 多头看涨 | 多头看跌 |
| (c) 保护性看跌(protective put) | 多头股票 + 多头看跌 | 多头看涨 |
| (d) 反向保护性看跌 | 空头股票 + 空头看跌 | 空头看涨 |
"备兑"的含义是:股价大涨时,空头看涨期权需要支付 \(S_T-K\),但持有的股票正好"覆盖"了这项负债。保护性看跌则是给持有的股票买了一份"跌破 \(K\) 的保险"。
用平价关系解释
为什么备兑看涨长得像空头看跌?把含股息的看涨-看跌平价写成
- 左边是"多头看跌 + 多头股票"(保护性看跌),右边是"多头看涨 + 现金 \(Ke^{-rT}+D\)"。现金只是把盈亏图整体平移,所以保护性看跌的形状 = 多头看涨。
- 改写为 \(S_0-c=Ke^{-rT}+D-p\):左边是"多头股票 + 空头看涨"(备兑看涨),右边是"空头看跌 + 现金",所以备兑看涨的形状 = 空头看跌。
(b) 和 (d) 分别是 (a) 和 (c) 的反向头寸,形状也取反。
这个视角很有用:备兑看涨策略本质上是卖出看跌期权。它在股价平稳或小涨时赚取期权费,但在股价大跌时几乎承担全部下跌损失,而大涨的收益被封顶。把"备兑看涨"当成低风险策略是常见误解。
12.3 价差
价差(spread)策略是指持有两个或多个同类型期权(都是看涨或都是看跌)的头寸。
牛市价差
牛市价差(bull spread):买入行权价为 \(K_1\) 的欧式看涨期权,同时卖出相同到期日、行权价更高(\(K_2>K_1\))的欧式看涨期权(原书图 12.2)。由于看涨期权价格随行权价递减,卖出的期权比买入的便宜,所以用看涨期权构造的牛市价差需要初始投资。
收益表(原书表 12.1):
| 股价区间 | 多头看涨 \(K_1\) | 空头看涨 \(K_2\) | 合计 |
|---|---|---|---|
| \(S_T\le K_1\) | 0 | 0 | 0 |
| \(K_1<S_T<K_2\) | \(S_T-K_1\) | 0 | \(S_T-K_1\) |
| \(S_T\ge K_2\) | \(S_T-K_1\) | \(-(S_T-K_2)\) | \(K_2-K_1\) |
牛市价差同时限制了上行收益和下行风险。可以这样理解:投资者持有行权价 \(K_1\) 的看涨期权,然后通过卖出 \(K_2\) 看涨期权,放弃股价超过 \(K_2\) 部分的收益,换取 \(K_2\) 期权的期权费。
按两个行权价与当前股价的关系,牛市价差分三种:
- 两个看涨期权都虚值——最激进,成本很低,以较小概率获得较高收益 \(K_2-K_1\);
- 一个实值、一个虚值;
- 两个都实值——最保守。
例 12.2 以 3 美元买入行权价 30 的 3 个月看涨期权,以 1 美元卖出行权价 35 的 3 个月看涨期权,成本 2 美元。利润:\(S_T\le30\) 时 −2;\(30<S_T<35\) 时 \(S_T-32\);\(S_T\ge35\) 时 \(5-2=3\)。
用看跌期权构造牛市价差:买入低行权价看跌、卖出高行权价看跌(原书图 12.3)。与看涨构造不同,这种构造期初有正现金流入(忽略保证金),到期收益为负或零。由平价关系可以证明两种构造的盈亏形状相同(原书习题 12.8)。
熊市价差
**熊市价差(bear spread)**适合预期股价下跌的投资者。用看跌期权构造:买入较高行权价 \(K_2\) 的看跌期权,卖出较低行权价 \(K_1\) 的看跌期权(原书图 12.4),需要初始投资。
收益表(原书表 12.2):
| 股价区间 | 多头看跌 \(K_2\) | 空头看跌 \(K_1\) | 合计 |
|---|---|---|---|
| \(S_T\le K_1\) | \(K_2-S_T\) | \(-(K_1-S_T)\) | \(K_2-K_1\) |
| \(K_1<S_T<K_2\) | \(K_2-S_T\) | 0 | \(K_2-S_T\) |
| \(S_T\ge K_2\) | 0 | 0 | 0 |
例 12.3 以 3 美元买入行权价 35 的看跌期权,以 1 美元卖出行权价 30 的看跌期权,成本 2 美元。利润:\(S_T\le30\) 时 \(5-2=3\);\(30<S_T<35\) 时 \(33-S_T\);\(S_T\ge35\) 时 −2。
熊市价差同样限制上行和下行。也可以用看涨期权构造:买入高行权价看涨、卖出低行权价看涨(原书图 12.5),期初有现金流入。
盒式价差
盒式价差(box spread)= 行权价 \(K_1\)、\(K_2\) 的看涨牛市价差 + 相同行权价的看跌熊市价差。收益表(原书表 12.3):
| 股价区间 | 看涨牛市价差 | 看跌熊市价差 | 合计 |
|---|---|---|---|
| \(S_T\le K_1\) | 0 | \(K_2-K_1\) | \(K_2-K_1\) |
| \(K_1<S_T<K_2\) | \(S_T-K_1\) | \(K_2-S_T\) | \(K_2-K_1\) |
| \(S_T\ge K_2\) | \(K_2-K_1\) | 0 | \(K_2-K_1\) |
盒式价差的到期收益恒为 \(K_2-K_1\),与股价无关。 因此它就是一张零息债券,今天的价值必须是 \((K_2-K_1)e^{-rT}\)。否则存在套利:价格过低时买入盒式价差(买 \(K_1\) 看涨、卖 \(K_2\) 看涨、买 \(K_2\) 看跌、卖 \(K_1\) 看跌);价格过高时卖出盒式价差。
金融直觉:盒式价差就是一笔用期权"包装"的借贷。买入盒式价差 = 今天付出约 \((K_2-K_1)e^{-rT}\)、到期收回 \(K_2-K_1\),等于放出一笔零息贷款;卖出盒式价差就是借款。所以从盒式价差的市场价格可以反推一个隐含利率 \(r_{\text{box}}=\frac{1}{T}\ln\frac{K_2-K_1}{\text{盒式价格}}\)。由于交易所期权有清算所担保,这个利率接近有担保的无风险利率,实务中被一些机构当作低成本的融资工具,也用来检验期权数据里的利率假设。
另一种理解:盒式价差 = 以 \(K_1\) 交割的合成远期多头(买 \(K_1\) 看涨 + 卖 \(K_1\) 看跌)+ 以 \(K_2\) 交割的合成远期空头(卖 \(K_2\) 看涨 + 买 \(K_2\) 看跌),两个远期的标的风险相互抵消,只剩下行权价之差(原书习题 12.16)。
重要提醒:盒式价差套利只对欧式期权成立。 原书 Business Snapshot 12.1 给出了一个教训:
盒式价差亏钱(Business Snapshot 12.1) 股价 50,波动率 30%,无股息,无风险利率 8%。有人提议你在 CBOE 以 5.10 美元卖出行权价 55 与 60 的 2 个月盒式价差。理论上它的收益确定为 5,现值 \(5e^{-0.08\times2/12}=4.93\),以 5.10 卖出似乎稳赚 0.17。
但 CBOE 的股票期权是美式的。原书用 DerivaGem 计算的价格:
期权 欧式 美式 看涨 60 0.26 0.26 看涨 55 0.96 0.96 看跌 60 9.46 10.00 看跌 55 5.23 5.44 看涨牛市价差的价值为 \(0.96-0.26=0.70\)(无股息时美式与欧式看涨相同)。看跌熊市价差的价值,欧式为 \(9.46-5.23=4.23\),美式为 \(10.00-5.44=4.56\)。欧式盒式价差合计 4.93,美式合计 5.26。以 5.10 卖出美式盒式价差并不是好交易——你卖出的行权价 60 看跌期权深度实值,几乎会被立即行权,你得提前付出 \(60-S\),盒式的"债券"性质就被破坏了。
蝶式价差
**蝶式价差(butterfly spread)**使用三个行权价:买入一份较低行权价 \(K_1\) 的看涨期权,买入一份较高行权价 \(K_3\) 的看涨期权,卖出两份中间行权价 \(K_2=(K_1+K_3)/2\) 的看涨期权,\(K_2\) 通常接近当前股价(原书图 12.6)。
收益表(原书表 12.4):
| 股价区间 | 多头看涨 \(K_1\) | 多头看涨 \(K_3\) | 空头两份看涨 \(K_2\) | 合计 |
|---|---|---|---|---|
| \(S_T\le K_1\) | 0 | 0 | 0 | 0 |
| \(K_1<S_T\le K_2\) | \(S_T-K_1\) | 0 | 0 | \(S_T-K_1\) |
| \(K_2<S_T<K_3\) | \(S_T-K_1\) | 0 | \(-2(S_T-K_2)\) | \(K_3-S_T\) |
| \(S_T\ge K_3\) | \(S_T-K_1\) | \(S_T-K_3\) | \(-2(S_T-K_2)\) | 0 |
收益图是一个以 \(K_2\) 为顶点的"三角形帐篷"。股价停在 \(K_2\) 附近时获利,大幅变动时小亏(亏损以初始投资为限)。蝶式价差适合认为股价不会大幅波动的投资者,初始投资小。第 11 章已经用它证明了看涨期权价格对行权价的凸性:既然收益非负,成本 \(c_1+c_3-2c_2\) 必须非负。
例(原书正文) 股价 61,6 个月欧式看涨期权价格:行权价 55 为 10,60 为 7,65 为 5。买入 55 和 65 各一份、卖出两份 60,成本 \(10+5-2\times7=1\) 美元。6 个月后,若股价高于 65 或低于 55,收益为零,净亏 1;股价在 56 到 64 之间时获利;股价恰为 60 时获得最大利润 \(5-1=4\)。
用看跌期权构造:买入低、高行权价看跌期权各一份,卖出两份中间行权价看跌期权(原书图 12.7)。由平价可以证明,若所有期权都是欧式的,两种构造的初始投资相同(原书习题 12.11)——因为两者之差只是股票与债券的线性组合,其权重 \(1+1-2=0\)。
卖出(做空)蝶式价差:卖出 \(K_1\)、\(K_3\),买入两份 \(K_2\)。股价大幅变动时获得适度利润,是押注"波动加大"的一种风险有限的方式。
日历价差
前面的价差都是到期日相同、行权价不同。**日历价差(calendar spread)**则是行权价相同、到期日不同:卖出某行权价的欧式看涨期权,同时买入相同行权价、期限更长的欧式看涨期权。长期期权更贵,所以通常需要初始投资。
盈亏图的惯例是画在短期期权到期时,假设长期期权届时按市价平仓(原书图 12.8)。其形状与蝶式价差类似:到期时股价接近行权价则获利,远高于或远低于行权价则亏损。原因如下:
- 股价很低时:短期期权作废,长期期权价值也接近零,亏损约等于建仓成本。
- 股价很高时:短期期权要支付 \(S_T-K\),长期期权价值约为 \(S_T-K\)(深度实值,时间价值很小),两者相抵,亏损同样约等于建仓成本。
- 股价接近 \(K\) 时:短期期权几乎不需支付,长期期权仍有相当的时间价值,净利显著。
按行权价相对于当前股价的位置,日历价差分为中性(neutral)(行权价接近当前股价)、看涨(bullish)(较高行权价)和看跌(bearish)(较低行权价)三种。也可以用看跌期权构造:买长期看跌、卖短期看跌(原书图 12.9)。
反向日历价差(reverse calendar spread):买入短期期权、卖出长期期权。股价远离行权价时小赚,接近时亏损。
日历价差的盈亏图依赖于"短期期权到期时长期期权值多少",这取决于届时的隐含波动率,所以日历价差本质上也是对波动率期限结构的押注。
对角价差
牛市、熊市价差是同到期日不同行权价(称为垂直价差),日历价差是同行权价不同到期日(称为水平价差)。**对角价差(diagonal spread)**的行权价和到期日都不同,能产生更丰富的盈亏形状(原书习题 12.23)。
12.4 组合
**组合(combination)**是同时持有同一股票的看涨期权和看跌期权的策略。
跨式
跨式(straddle):同时买入相同行权价、相同到期日的欧式看涨期权和看跌期权(原书图 12.10)。到期收益(原书表 12.5):
| 股价区间 | 看涨 | 看跌 | 合计 |
|---|---|---|---|
| \(S_T\le K\) | 0 | \(K-S_T\) | \(K-S_T\) |
| \(S_T>K\) | \(S_T-K\) | 0 | \(S_T-K\) |
即收益为 \(|S_T-K|\),盈亏图是一个"V"字形。到期股价接近行权价时亏损,任一方向大幅变动时都能显著获利。跨式适合预期股价将大幅变动、但不知道方向的投资者。
例(原书正文) 股价 69,买入 3 个月行权价 70 的看涨期权(4 美元)和看跌期权(3 美元),总成本 7 美元。
- 股价保持 69:看涨作废,看跌值 1,亏损 6;
- 股价恰为 70:两者都作废,亏损 7(最坏情形);
- 股价涨到 90:看涨值 20,盈利 13;
- 股价跌到 55:看跌值 15,盈利 8。
上面的买入跨式也称为底部跨式(bottom straddle)或跨式买入(straddle purchase)。反向头寸称为顶部跨式(top straddle)或卖出跨式(straddle write):卖出看涨与看跌,股价接近行权价时获利,但股价大幅变动时损失无限,风险极高。
怎样用跨式赚钱(Business Snapshot 12.2)。 假设某公司面临收购要约,或重大诉讼结果即将公布,你预期股价会大幅变动——买跨式似乎是自然的选择。但如果你的看法与市场其他参与者一致,这一预期早已反映在期权价格中:该股票的期权会比没有预期跳跃的类似股票贵得多,V 形盈亏曲线整体下移,需要更大的股价变动才能获利。要让跨式有效,你必须相信股价会大幅变动,而且这一看法不同于多数投资者。
这条原则适用于一切交易策略:市场价格已经包含了参与者的信念,任何策略要赚钱,都必须持有与市场不同的观点,并且是对的。 用量化语言说,跨式赚钱的条件是"未来实现波动率高于买入时的隐含波动率",而不仅仅是"未来波动大"。
白话解释:两个波动率先分清。隐含波动率是从期权的市场价格反推出来的波动率,代表市场"已经定价"的波动;实现波动率是事后用真实股价算出的波动率。买跨式等于按隐含波动率的价格买入波动,事后按实现波动率结算。这和你买一只债券类似:赚不赚钱不取决于"利率会下降",而取决于"利率下降得比远期利率曲线隐含的更多"。远期利率就是市场的共识,期权的隐含波动率也是。
条式与带式
- 条式(strip):一份看涨 + 两份看跌(同行权价、同到期日)。押注股价大幅变动,并认为下跌的可能性更大。
- 带式(strap):两份看涨 + 一份看跌。押注股价大幅变动,并认为上涨的可能性更大。
(原书图 12.11。)
宽跨式
宽跨式(strangle),也称底部垂直组合(bottom vertical combination):买入相同到期日、不同行权价的欧式看跌期权和看涨期权,看涨期权的行权价 \(K_2\) 高于看跌期权的行权价 \(K_1\)(原书图 12.12)。收益(原书表 12.6):
| 股价区间 | 看涨 \(K_2\) | 看跌 \(K_1\) | 合计 |
|---|---|---|---|
| \(S_T\le K_1\) | 0 | \(K_1-S_T\) | \(K_1-S_T\) |
| \(K_1<S_T<K_2\) | 0 | 0 | 0 |
| \(S_T\ge K_2\) | \(S_T-K_2\) | 0 | \(S_T-K_2\) |
与跨式相比,宽跨式的两个期权都是虚值的,更便宜;代价是股价需要变动得更远才能获利。两个行权价相距越远,股价停在中间时的损失越小,获利所需的变动越大。
卖出宽跨式称为顶部垂直组合(top vertical combination),适合认为股价不会大幅变动的投资者,但同样有无限的潜在损失。卖出宽跨式和卖出跨式是"卖波动率"策略的代表。
12.5 其他收益形态
如果对到期日 \(T\) 的每一个可能行权价都有欧式期权可交易,理论上就可以构造到期日的任意收益函数。
最简单的例子仍然是蝶式价差:买入 \(K_1\)、\(K_3\),卖出两份 \(K_2\)(\(K_3-K_2=K_2-K_1\)),收益呈一个"尖峰(spike)"(原书图 12.13)。\(K_1\) 与 \(K_3\) 越接近,尖峰越窄。把许多个很小的尖峰按需要的高度叠加起来,就能以任意精度逼近任何收益函数。
这个思想有两个重要的推论,原书在本章只是点到,我们稍作展开,因为它们在量化实务中非常常用。
推论一:静态复制
任何到期收益 \(f(S_T)\)(足够光滑)都可以用一张债券、一份远期和一串看涨期权(以及一串看跌期权)复制。设 \(f\) 在点 \(K_0\) 附近,用分段线性函数逼近:在每个行权价 \(K_i\) 处斜率变化 \(w_i\),就买入 \(w_i\) 份行权价 \(K_i\) 的看涨期权:
当行权价间隔 \(\Delta K\to0\) 时,\(w_i\to f''(K_i)\Delta K\)。于是收益 \(f(S_T)\) 的价格就是这些期权价格的加权和。这就是方差互换、波动率指数(如 VIX)的计算原理:对数收益或方差类收益可以用一串虚值期权静态复制。
推导拆解:为什么 \(w_i\to f''(K_i)\Delta K\)? 第一步,用折线逼近曲线 \(f\):在网格 \(K_0<K_1<K_2<\cdots\)(间距 \(\Delta K\))上取点,相邻两点连直线。第 \(i\) 段的斜率是 \(s_i=\frac{f(K_{i+1})-f(K_i)}{\Delta K}\)。 第二步,折线从第一段开始可以写成"起点值 + 初始斜率 × 距离",即 \(f(K_0)+s_0(S_T-K_0)\),这部分用债券和远期就能复制。之后每过一个网格点 \(K_i\),斜率从 \(s_{i-1}\) 变成 \(s_i\),用 \(w_i=s_i-s_{i-1}\) 份看涨期权 \(\max(S_T-K_i,0)\) 补上这个"拐弯"(导读里说过:一份看涨在 \(K\) 处贡献斜率跳幅 +1)。 第三步,斜率的差分除以间距是二阶导的近似:\(\frac{s_i-s_{i-1}}{\Delta K}\approx f''(K_i)\),所以 \(w_i\approx f''(K_i)\Delta K\)。 例:\(f(S)=S^2\),\(f''=2\),每隔 1 美元买 2 份看涨期权,这正是代码第 (4) 步的
w。若 \(f\) 是凹的(\(f''<0\)),对应卖出期权。
推论二:风险中性密度(Breeden–Litzenberger)
蝶式价差的成本除以尖峰"面积",就是风险中性世界中股价落在 \(K_2\) 附近的概率(按无风险利率复利)。令 \(\Delta K\to0\):
\(q(K)\) 就是市场隐含的风险中性概率密度。第 11 章证明的凸性 \(c_1-2c_2+c_3\ge0\) 正好保证了这个密度非负。风险中性密度的概念将在第 13 章正式引入。
推导拆解:用"彩票"读这个公式。间距为 \(\Delta K\) 的蝶式价差到期收益是一个底宽 \(2\Delta K\)、高 \(\Delta K\) 的三角形,面积 \((\Delta K)^2\)。把蝶式价差的份数缩放成 \(1/\Delta K\) 份,它就变成一张"股价落在 \(K\) 附近约 \(\Delta K\) 宽的区间时大约付 1 元"的彩票。 这张彩票今天的价格 \(=\frac{c_1-2c_2+c_3}{\Delta K}\)。在风险中性定价下,彩票价格 \(=e^{-rT}\times\)"中奖概率",中奖概率约为 \(q(K)\Delta K\)。 联立:\(\frac{c_1-2c_2+c_3}{\Delta K}\approx e^{-rT}q(K)\Delta K\),两边乘以 \(e^{rT}/\Delta K\) 就得到上式。 风险中性密度不是"真实世界"的概率,它把投资者对坏状态的厌恶也算进去了——崩盘状态的风险中性概率通常高于真实概率,这就是深度虚值看跌期权"显得贵"的原因。
量化实战:策略引擎、无套利检查与风险中性密度
本章内容在量化交易中的用法主要有以下几方面。
策略构建与回测。 价差和组合是期权策略库的基本模块。回测时每条腿都要单独计算成交价(按买价卖、按卖价买),多腿策略的买卖价差成本会按腿数放大;还要按组合保证金规则计算资金占用,处理到期行权和美式期权的提前指派。
波动率交易。 跨式、宽跨式是做多/做空波动率的经典工具;蝶式价差押注股价停在某个区间,对应隐含分布的峰度;日历价差押注波动率期限结构。Business Snapshot 12.2 的结论在量化语言中就是:事件驱动的波动率交易必须比较隐含波动率与你对实现波动率的独立预测,这正是"隐含波动率 vs 实现波动率"类信号(波动率风险溢价)的核心。
无套利约束。 盒式价差的价格给出市场隐含的融资利率;蝶式非负、日历价差非负(欧式且无股息时长期期权不低于短期)等约束用于清洗期权数据和构建无套利的波动率曲面。
风险中性密度与事件定价。 用 Breeden–Litzenberger 方法从期权价格提取风险中性分布,可以估计市场隐含的事件概率(如财报后股价跌破某价位的概率)和尾部风险价格,是许多宏观与事件策略的输入。
下面的示例实现了一个简洁的多腿策略盈亏引擎,复现原书例子;然后借用第 15b 章的 BSM 公式作为"理论价格生成器",验证盒式价差与两种蝶式构造的定价关系,并演示 Breeden–Litzenberger 密度提取和静态复制收益 \(S_T^2\)。
import numpy as np
from scipy.stats import norm, lognorm
# ---- 1) 多腿策略的到期收益引擎 ----
def leg_payoff(ST, kind, K, qty):
if kind == "call": return qty * np.maximum(ST - K, 0)
if kind == "put": return qty * np.maximum(K - ST, 0)
if kind == "stock": return qty * ST
if kind == "bond": return qty * K * np.ones_like(ST) # 到期支付 K 的零息债
def strategy_profit(ST, legs):
"""legs: [(kind, K, qty, premium)],qty>0 为买入;利润 = 收益 - 初始成本(不折现)"""
payoff = sum(leg_payoff(ST, k, K, q) for k, K, q, _ in legs)
cost = sum(q * prem for _, _, q, prem in legs)
return payoff - cost
show = lambda name, legs, pts: print(f"{name:10s}", {float(s): round(float(v), 2)
for s, v in zip(pts, strategy_profit(np.array(pts, float), legs))})
show("牛市价差", [("call", 30, 1, 3), ("call", 35, -1, 1)], [25, 30, 32, 35, 40]) # 例12.2
show("熊市价差", [("put", 35, 1, 3), ("put", 30, -1, 1)], [25, 30, 32, 35, 40]) # 例12.3
show("蝶式价差", [("call", 55, 1, 10), ("call", 60, -2, 7), ("call", 65, 1, 5)], [50, 56, 60, 64, 70])
show("跨式", [("call", 70, 1, 4), ("put", 70, 1, 3)], [55, 69, 70, 90])
# ---- 2) 用 BSM 理论价(第 15b 章)检验盒式价差与蝶式两种构造的成本 ----
def bs(S, K, r, T, sig, kind):
d1 = (np.log(S/K) + (r + sig**2/2)*T) / (sig*np.sqrt(T)); d2 = d1 - sig*np.sqrt(T)
return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2) if kind == "call" else \
K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)
S0, r, T, sig = 50, 0.08, 2/12, 0.30
c55, c60, p55, p60 = (bs(S0, K, r, T, sig, k) for K, k in [(55,"call"),(60,"call"),(55,"put"),(60,"put")])
print(f"\n欧式盒式价差(55/60) = {(c55-c60)+(p60-p55):.4f}, 理论 (K2-K1)e^(-rT) = {5*np.exp(-r*T):.4f}")
cb = [bs(S0, K, r, T, sig, "call") for K in (45, 50, 55)]
pb = [bs(S0, K, r, T, sig, "put") for K in (45, 50, 55)]
print(f"看涨蝶式成本 = {cb[0]-2*cb[1]+cb[2]:.4f}, 看跌蝶式成本 = {pb[0]-2*pb[1]+pb[2]:.4f}")
# ---- 3) Breeden-Litzenberger:用蝶式"尖峰"从看涨期权价格提取风险中性密度 ----
S0, r, T, sig = 100, 0.03, 0.5, 0.25
dK = 1.0
K = np.arange(40, 200 + dK, dK)
c = bs(S0, K, r, T, sig, "call")
dens = np.exp(r*T) * (c[:-2] - 2*c[1:-1] + c[2:]) / dK**2 # q(K) ≈ e^{rT} ∂²c/∂K²
Kc = K[1:-1]
true = lognorm.pdf(Kc, s=sig*np.sqrt(T), scale=S0*np.exp((r - sig**2/2)*T))
print(f"\n提取密度积分 = {dens.sum()*dK:.4f}, 与理论对数正态密度最大绝对误差 = {np.abs(dens-true).max():.2e}")
in_band = (Kc >= 90) & (Kc <= 110)
print(f"风险中性概率 P(90 <= S_T <= 110) ≈ {dens[in_band].sum()*dK:.4f}, 理论 = "
f"{lognorm.cdf(110.5, s=sig*np.sqrt(T), scale=S0*np.exp((r-sig**2/2)*T)) - lognorm.cdf(89.5, s=sig*np.sqrt(T), scale=S0*np.exp((r-sig**2/2)*T)):.4f}")
print(f"风险中性均值 = {(Kc*dens).sum()*dK:.3f}, 远期价格 S0 e^(rT) = {S0*np.exp(r*T):.3f}")
# ---- 4) 静态复制:用债券 + 远期 + 一串看涨期权逼近收益 f(S_T) = S_T^2 ----
K0 = 40.0
grid = np.arange(K0, 400 + dK, dK)
f = lambda s: s**2
slopes = np.diff(f(grid)) / dK # 分段线性插值的各段斜率
w = np.diff(slopes) # 斜率变化 = 每个行权价上看涨期权的数量
# f(S) ≈ f(K0) + slope0*(S-K0) + sum w_i max(S-K_i, 0);S<K0 的部分概率极小,忽略
price = (f(K0) + slopes[0]*(S0*np.exp(r*T) - K0)) * np.exp(-r*T) \
+ (w * bs(S0, grid[1:-1], r, T, sig, "call")).sum()
print(f"\n静态复制 S_T^2 的价格 = {price:.3f}, 解析值 S0^2 e^((r+σ²)T) = {S0**2*np.exp((r+sig**2)*T):.3f}")
关键输出:
牛市价差 {25.0: -2.0, 30.0: -2.0, 32.0: 0.0, 35.0: 3.0, 40.0: 3.0}
熊市价差 {25.0: 3.0, 30.0: 3.0, 32.0: 1.0, 35.0: -2.0, 40.0: -2.0}
蝶式价差 {50.0: -1.0, 56.0: 0.0, 60.0: 4.0, 64.0: 0.0, 70.0: -1.0}
跨式 {55.0: 8.0, 69.0: -6.0, 70.0: -7.0, 90.0: 13.0}
欧式盒式价差(55/60) = 4.9338, 理论 (K2-K1)e^(-rT) = 4.9338
看涨蝶式成本 = 1.5224, 看跌蝶式成本 = 1.5224
提取密度积分 = 1.0000, 与理论对数正态密度最大绝对误差 = 6.83e-06
风险中性概率 P(90 <= S_T <= 110) ≈ 0.4487, 理论 = 0.4488
风险中性均值 = 101.502, 远期价格 S0 e^(rT) = 101.511
静态复制 S_T^2 的价格 = 10473.526, 解析值 S0^2 e^((r+σ²)T) = 10473.362
解读:
- 引擎复现了原书例 12.2、12.3、蝶式例和跨式例的全部数字。蝶式在 56 和 64 处利润为零,正是盈利区间的边界。
- 欧式盒式价差的理论价 4.9338 与 \((K_2-K_1)e^{-rT}\) 完全一致,与 Business Snapshot 12.1 中欧式合计 4.93 相符;看涨与看跌构造的蝶式成本完全相同,验证了原书习题 12.11 的结论。
- 由看涨期权价格的二阶差分提取的密度积分为 1、与理论对数正态密度的误差在 \(10^{-5}\) 量级,均值等于远期价格 \(S_0e^{rT}\)(行权价网格截断在 200 带来微小误差)——这正是风险中性世界的特征(第 13 章)。实盘中期权价格有噪声、行权价稀疏,直接做二阶差分会产生负密度,通常先在隐含波动率空间平滑插值,再求导。
- 用 1 美元间隔的一串看涨期权静态复制 \(S_T^2\),价格误差约 0.002%,误差来源是分段线性逼近和行权价网格的截断。
本章小结
保本票据由零息债券和看涨期权构成,可行性取决于利率、波动率、股息率和期限;股息率为零时无论期限多长都不可行。期权与股票组合中,备兑看涨(买股票、卖看涨)形状类似卖出看跌,保护性看跌(买股票、买看跌)类似买入看涨,这由看涨-看跌平价直接得出。价差策略中,牛市价差和熊市价差同时限制上行和下行;盒式价差收益恒定、价值等于 \((K_2-K_1)e^{-rT}\),但只对欧式期权成立;蝶式价差押注股价停在中间行权价附近;日历价差押注到期时股价接近行权价;对角价差更为灵活。组合策略中,跨式、条式、带式、宽跨式押注大幅波动,卖出跨式与宽跨式有无限潜在损失。任何策略要赚钱,都必须与市场共识不同并且正确。只要行权价足够密集,蝶式"尖峰"可以拼出任意到期收益,由此引出静态复制和风险中性密度提取。
| 策略 | 构成(同到期日,除非注明) | 到期收益 / 要点 |
|---|---|---|
| 保本票据 | 零息债 + 平值看涨 | 最坏收回本金;需股息率 > 0 才可能可行 |
| 备兑看涨 | 多头股票 + 空头看涨 | 形状 ≈ 空头看跌 |
| 保护性看跌 | 多头股票 + 多头看跌 | 形状 ≈ 多头看涨 |
| 牛市价差 | 买 \(K_1\) 看涨、卖 \(K_2\) 看涨 | \(\min(\max(S_T-K_1,0),K_2-K_1)\) |
| 熊市价差 | 买 \(K_2\) 看跌、卖 \(K_1\) 看跌 | \(\min(\max(K_2-S_T,0),K_2-K_1)\) |
| 盒式价差 | 看涨牛市价差 + 看跌熊市价差 | 恒为 \(K_2-K_1\),价值 \((K_2-K_1)e^{-rT}\)(仅欧式) |
| 蝶式价差 | 买 \(K_1\)、\(K_3\),卖 2 份 \(K_2\) | 以 \(K_2\) 为顶点的三角形,非负 |
| 日历价差 | 卖短期、买长期,同行权价 | 短期到期时股价接近 \(K\) 获利 |
| 跨式 | 买看涨 + 买看跌,同 \(K\) | \(\lvert S_T-K\rvert\) |
| 条式 / 带式 | 1 看涨 + 2 看跌 / 2 看涨 + 1 看跌 | 押注大波动并偏向下跌 / 上涨 |
| 宽跨式 | 买 \(K_1\) 看跌 + 买 \(K_2\) 看涨 | \(\max(K_1-S_T,0)+\max(S_T-K_2,0)\) |
| 风险中性密度 | 蝶式极限 | \(q(K)=e^{rT}\,\partial^2c/\partial K^2\) |
练习
基础
-
某投资者持有股票并买入一份行权价为 \(K\) 的看跌期权。这一头寸等价于什么?用平价关系说明。 提示:保护性看跌,等价于一份看涨期权加一张面值 \(K\) 的零息债券(及股息现值)(原书习题 12.1)。
-
用看涨期权和用看跌期权分别构造一个熊市价差,并写出两者的收益表。哪一种期初有现金流入? 提示:看跌构造(买高卖低)需投资;看涨构造(买高行权价看涨、卖低行权价看涨)期初收钱(原书习题 12.2)。
-
行权价 15 和 20 的 3 个月看跌期权价格分别为 2 和 4。如何构造牛市价差和熊市价差?分别写出利润表。 提示:牛市价差:买 15 看跌、卖 20 看跌,期初收 2,利润 \(S_T\le15\) 时 −3,\(15<S_T<20\) 时 \(S_T-18\),\(S_T\ge20\) 时 +2。熊市价差反之(原书习题 12.10)。
-
行权价 50 的看涨和看跌期权分别为 3 和 4(相同到期日)。买入跨式后,股价在什么范围内会亏损? 提示:成本 7,股价在 43 与 57 之间时亏损(原书习题 12.12)。
-
跨式和宽跨式有何区别?各自适合什么样的预期? 提示:宽跨式更便宜,但需要更大的价格变动才能获利;中间区域的最大亏损更小。
进阶
-
某股票价格 40,有人预期股价将在 3 个月内有大幅跳跃,但不知方向。列出至少四种可用策略,并比较它们的成本与收益(原书习题 12.14)。 提示:跨式、宽跨式、条式、带式、卖出蝶式;要考虑市场是否已在期权价格中反映了这一预期。
-
用平价关系证明:若所有期权都是欧式的,用看涨期权和用看跌期权构造的蝶式价差初始成本相同。 提示:\(c_i-p_i=S_0-K_ie^{-rT}\)(无股息),代入 \(c_1+c_3-2c_2-(p_1+p_3-2p_2)\),得 \(-(K_1+K_3-2K_2)e^{-rT}=0\)。
-
说明为什么盒式价差的套利论证对美式期权不成立。在 Business Snapshot 12.1 的数据中,以 5.10 卖出美式盒式价差会面临什么风险? 提示:深度实值的美式看跌期权(行权价 60,股价 50)可能被立即行权,你需要立即支付 10 美元左右而盒式其他腿还未到期;美式盒式价值 5.26 > 5.10。
-
画出"买入行权价 \(K_2\) 的看涨期权 + 卖出行权价 \(K_1\) 的看跌期权"(\(K_2>K_1\))的盈亏图。当 \(K_1=K_2\) 时它变成什么? 提示:风险逆转(risk reversal),中间一段收益为零;两行权价相等时成为远期多头(原书习题 12.27)。
-
给定同一到期日、行权价间隔 \(\Delta K\) 的一组看涨期权价格,写出估计"到期股价落在 \([a,b]\) 内的风险中性概率"的方法。实盘数据中这一方法有什么困难? 提示:用 \(e^{rT}(c_{i-1}-2c_i+c_{i+1})/\Delta K\) 在 \([a,b]\) 内求和;也可用两个牛市价差之差(即数字期权)。困难:行权价稀疏、报价噪声导致负密度、深度虚值报价缺失,需在隐含波动率空间平滑后再求导。
原书推荐习题:12.4、12.22(蝶式价差构造与盈亏表);12.8、12.11(用平价证明不同构造的价差成本关系);12.14(大跳跃预期下的多策略比较);12.16(盒式价差 = 两个方向相反的合成远期);12.19、12.28(保本票据可行性的定量分析);12.24、12.26、12.27(多头寸组合的收益形态识别)。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 12.1 保本票据 | 12.1 Principal-Protected Notes | p.277–279 |
| 12.2 期权与标的资产的组合 | 12.2 Trading an Option and the Underlying Asset | p.278–281 |
| 12.3 价差 | 12.3 Spreads(含 Business Snapshot 12.1) | p.280–288 |
| 12.4 组合 | 12.4 Combinations(含 Business Snapshot 12.2) | p.288–291 |
| 12.5 其他收益形态 | 12.5 Other Payoffs | p.291–292 |
| 小结、延伸阅读与习题 | Summary, Practice Questions 12.1–12.28 | p.292–296 |
原书为 Hull《Options, Futures, and Other Derivatives》第 9 版 Global Edition(Pearson 2018),表中为 PDF 页码。原书本章还提到:指数期权管理股票组合风险与区间远期(range forward)见第 17 章,希腊字母风险管理见第 19a、19b 章,奇异期权与静态复制见第 26a、26b 章。延伸阅读:Bharadwaj & Wiggins (2001);Chaput & Ederington (2003);McMillan《Options as a Strategic Investment》;Rendleman (2001);Ronn & Ronn (1989)。