量化交易中文教材

第 34 章 能源与商品衍生品

衍生品的标的变量常简称"标的(underlying)"。本章前半部分讨论以商品为标的的衍生品,后半部分讨论天气衍生品和保险衍生品。

第 2 章讲过商品期货,第 18 章讲过商品期货的欧式和美式期权。期货与期权同时到期时,欧式期货期权与欧式现货期权的支付相同,所以 Black 模型也可以给欧式现货期权定价。但美式现货期权和更复杂的、依赖现货价格路径的衍生品需要更精细的模型。商品价格与股票价格有两点重要不同:常有均值回归(类似利率),有时有跳跃。所以第 31 章的一些利率建模技术可以移植过来。

天气衍生品和保险衍生品有一个共同特点:标的变量没有系统性风险。某地的平均温度、某年的飓风损失,在风险中性世界和现实世界中的分布可以视为相同。因此历史数据对定价更有用,定价方法反而比金融资产更"统计"。

学习目标

  1. 说明农产品、金属、能源(原油、天然气、电力)的价格特征:库存、季节性、天气、均值回归、跳跃,以及消费资产与投资资产的区别。
  2. 理解"风险中性下期望现货价格 = 期货价格",会从期货曲线读出风险中性增长率 \(\mu(t)=\partial\ln F/\partial t\)。
  3. 能用 Hull–White 两阶段三叉树的变体建立拟合期货曲线的均值回归商品价格树,并为美式期权定价;会做季节性去季节化–插值–再季节化。
  4. 理解 HDD/CDD 的定义与天气期权、CAT 债券、超额损失再保险的结构(牛市价差)。
  5. 会用"历史分布 + 趋势调整 + 无风险贴现"为无系统性风险的标的定价,并用回归同时对冲价格风险和数量风险。

读前导读

这一章在解决什么问题。 前面各章的标的大多是股票、汇率和利率。本章换成大宗商品、天气和巨灾损失,问题仍然是"怎么定价、怎么对冲",但标的的性质变了:商品价格会均值回归、有季节性、偶尔跳跃;天气和地震损失则根本不是交易资产,也和股市几乎无关。

本章有两条主线。第一条是商品:在 CFA 一级里你学过"期货价格 = 现货 × \(e^{(r+u-y)T}\)"(\(u\) 为储存成本,\(y\) 为便利收益),但便利收益很难估计。本章换了一个更实用的思路:既然风险中性世界中期货价格就是未来现货的期望,那就直接从期货曲线读出漂移,不必单独估计 \(u\)、\(y\) 和风险溢价。在此基础上,把第 31 章利率三叉树的技术搬过来,建立一棵"自动拟合期货曲线"的均值回归价格树,为美式期权定价。

第二条是天气和保险:这些标的的风险没有系统性成分。用 CAPM 的语言说,它们的 beta 为零,所以要求回报就是无风险利率。于是定价退化成精算问题:用历史数据估计期望支付,再按无风险利率贴现。这和你在 CFA 里学的"只有系统性风险才有风险溢价"是一回事。

需要先想起来的数学。

  • 导数与对数求导。 \(\mu(t)=\frac{\partial}{\partial t}\ln F(t)\) 的意思是:期货价格随到期日变化的瞬时百分比增长率。\(\ln F\) 的变化量近似等于 \(F\) 的百分比变化。例:\(F\) 从 60.60 到 62.70,\(\ln\) 差为 0.034,与百分比变化 3.47% 很接近。\(\partial\) 是偏导数记号,这里只有一个变量 \(t\),可以当作普通导数读。见 第 00 册第 02 章 导数与泰勒展开。
  • 积分与"积分再求导"。 \(\int_0^t\mu(\tau)d\tau\) 是增长率从 0 到 \(t\) 的累计,类似把每期连续复利利率加总。对它关于 \(t\) 求导就回到 \(\mu(t)\)(微积分基本定理)。见 第 00 册第 03 章 积分。
  • 随机微分方程的读法。 \(dS/S=\mu dt+\sigma dz\) 读作"一小段时间 \(dt\) 内,价格的百分比变化 = 确定性漂移 + 波动率 × 随机冲击",\(dz\) 是均值 0、方差 \(dt\) 的正态冲击(第 14 章维纳过程)。均值回归项 \(-a\ln S\) 的意思是:\(\ln S\) 偏高时漂移为负,把价格往回拉,\(a\) 越大回拉越快。
  • 对数正态分布的期望。 若 \(\ln X\) 服从均值 \(m\)、标准差 \(s\) 的正态分布,则 \(\mathbb{E}[X]=e^{m+s^2/2}\),且 \(\mathbb{E}[\max(X-K,0)]=\mathbb{E}[X]N(d_1)-KN(d_2)\)。这就是不贴现的 BSM 公式,天气期权例子直接用它。见 第 00 册第 07 章 概率中的分析工具。
  • 多元回归。 对冲回归 \(Y=a+bP+cT+\varepsilon\) 与 CFA 二级的多元回归相同,系数就是对冲比率。

怎么读这一章。 34.1–34.3 节是市场背景,速读即可,重点记住"消费资产 vs 投资资产"和电力不可储存这两点。34.4 节是全章技术核心:先读"简单过程"和两个例子,再读三叉树构造,建议拿纸笔把 \(\alpha_1\) 算一遍;跳跃和"其他模型"第一次可只看结论。34.5–34.7 节概念简单,关键是理解"无系统性风险 → 历史期望 + 无风险贴现"这一逻辑,以及超额损失层 = 牛市价差。34.8 节很短,但回归求对冲比率的模板很实用。


34.1 农产品

农产品包括种植产品(玉米、小麦、大豆、可可、咖啡、糖、棉花、冷冻橙汁)和畜牧产品(活牛、生猪、猪腩)。价格由供需决定,美国农业部定期发布库存和产量报告。

玉米、小麦等关注库存消费比(stocks-to-use ratio):年末库存除以全年用量,通常在 20%–40%。这个比值越低,价格对供给变化越敏感,波动率越高。

  • 均值回归:价格下跌时农民减产,供给减少,推高价格;价格上涨时投入增加,压低价格。
  • 季节性:储存成本高,可储存时间有限,所以价格有季节性。天气是关键:巴西霜冻可以摧毁咖啡收成,佛罗里达飓风影响冷冻橙汁价格。种植类商品在收获前波动率最高,产量明朗后下降;生长季可能因天气出现价格跳跃。
  • 联动:很多种植产品用作饲料(CME 的玉米期货指饲料玉米),牲畜价格和屠宰时间受饲料价格、进而受天气影响。

34.2 金属

金、银、铂、钯、铜、锡、铅、锌、镍、铝。与农产品不同,金属价格不受天气影响,没有季节性;它们从地下开采,可分割,相对容易储存。

铜等金属几乎全部用于制造,属于消费资产(consumption asset);金、银既用于消费,也纯粹用于投资,属于投资资产(investment asset)(第 5.1 节)。分析师关注库存水平来判断短期波动;开采国与报价货币所在国不同,汇率波动也有贡献。长期价格取决于金属在各生产过程中的使用趋势、新资源的发现、勘探开采技术、地缘政治、卡特尔、环保监管。回收是潜在的供给来源(例如 20 年内可能有 10% 的金属经回收重新进入市场)。

均值回归:投资类金属通常不假设均值回归,否则投资者可以利用可预测的价格变动套利;消费类金属可能有均值回归:价格上涨使部分生产过程少用该金属,也使开采条件较差的矿变得经济,从而压低价格,反之亦然。

34.3 能源产品

能源是最重要、交易最活跃的商品之一。原油、天然气、电力都有均值回归的理由:价格上升 → 消费减少、生产增加 → 价格下行压力;价格下降 → 消费增加、部分生产变得不经济 → 价格上行压力。

原油

原油是全球最大的商品市场,全球日需求约 8,000 万桶(原书数据)。OTC 市场多年来常见 10 年期固定价格供应合同,即固定价格油换浮动价格油的互换。原油按比重和含硫量分为多个等级,两大定价基准是 Brent(北海)与 WTI(西德克萨斯中质原油)。原油炼成汽油、取暖油、燃料油、煤油等。

OTC 市场中几乎所有股票/股指衍生品都有以油为标的的版本,互换、远期、期权都很流行,可以现金或实物交割。交易所方面,CME Group 与 ICE 交易多种原油期货和期货期权:ICE 的 Brent 期货有现金结算选项,CME 的轻质低硫原油期货需实物交割,每手 1,000 桶。CME 还交易取暖油和汽油期货,每手 42,000 加仑。

天然气

1980–90 年代全球天然气市场放松管制,取消了政府垄断。供应商不一定是生产商,供应商需要应对每日需求的波动。典型 OTC 合约是在一个月内以大致均匀的速率交割指定数量的天然气;有远期、期权、互换,卖方通常负责经管道运送到指定地点。CME 合约规模为 10,000 百万英热单位(MMBtu),未平仓的合约在交割月以大致均匀的速率实物交割到路易斯安那州的 Henry Hub;ICE 在伦敦有类似合约。天然气用于建筑供暖和发电(电力又用于空调),需求有季节性,依赖天气。

电力

电力的特殊之处在于难以储存。(原书脚注:有余量的发电商会把水抽到水电站上游,以便日后发电,这是最接近储存的办法。)

一个地区任意时刻的最大供给由区内所有电厂的最大容量决定。美国有 140 个控制区(control areas),先在区内匹配供需,多余电力卖给其他控制区,这部分构成电力批发市场;跨区售电受输电线路容量限制,还有线路所有者收取的输电成本和输电损耗。空调是用电大户,夏季的需求和价格远高于冬季。不可储存性导致现货价格偶尔剧烈波动:热浪曾使现货价格在短时间内上涨 1,000%。

电力市场同样经历了放松管制。CME 有电价期货,OTC 市场有远期、期权、互换。典型合约是在特定月份、特定地点、以特定价格接收特定兆瓦时的电力。

  • 5×8 合约:当月周一至周五的非高峰时段(晚 11 点至早 7 点)供电;
  • 5×16 合约:周一至周五的高峰时段(早 7 点至晚 11 点);
  • 7×24 合约:全月每天全天候。

期权有日行权(每天提前一天通知,决定当天是否按执行价接收电力)和月行权(月初一次性决定整月是否接收)。日行权期权比月行权更有价值,因为它是一串独立期权,而月行权是对月平均的一个期权(原书习题 34.12)。

推导拆解:为什么"一串期权"比"对平均的一个期权"更值钱?设某月有 \(n\) 天,每天电价 \(S_k\),执行价 \(K\)。日行权的总支付是 \(\sum_k\max(S_k-K,0)\),月行权的支付是 \(n\max(\bar S-K,0)\),其中 \(\bar S=\frac1n\sum_kS_k\)。因为 \(\max(x,0)\) 是凸函数,有 \(\max(\bar S-K,0)\le\frac1n\sum_k\max(S_k-K,0)\):先平均再取正部,会让高价日和低价日相互抵消;先逐日取正部,低价日只是"不行权",不会抵消高价日的收益。两边乘 \(n\) 即得日行权支付不低于月行权,且电价日间波动越大,差距越大。

摆动期权(swing option,又称 take-and-pay option) 规定每天和全月必须按某价格购买电量的最小值和最大值,持有人可以在月内改变("摆动")购买速率,但改变的次数通常有上限。


34.4 商品价格建模

为衍生品定价时,通常对商品现货价格在传统风险中性世界中建模。由第 18.7 节,风险中性世界中商品的期望未来价格等于期货价格。这个事实是本节一切方法的出发点:期货曲线直接告诉我们风险中性漂移,不需要估计便利收益、储存成本或风险溢价。

简单过程

假设期望增长率只依赖时间、波动率为常数:

\[\frac{dS}{S}=\mu(t)dt+\sigma dz\tag{34.1}\]

于是 \(F(t)=\hat E[S(t)]=S(0)e^{\int_0^t\mu(\tau)d\tau}\),\(F(t)\) 为到期日为 \(t\) 的期货价格。两边取对数并求导:

\[\mu(t)=\frac{\partial}{\partial t}[\ln F(t)]\]

推导拆解:分三步。(1) 对 (34.1) 两边取风险中性期望,\(\mathbb{E}[\sigma dz]=0\),所以期望价格按 \(\mu(t)\) 的速度增长,累计 \(t\) 年后是 \(S(0)e^{\int_0^t\mu(\tau)d\tau}\)(就像利率随时间变化时的连续复利终值)。(2) 风险中性期望就是期货价格,所以 \(F(t)\) 等于这个式子;\(\hat E\) 中的帽子表示"风险中性世界中的期望"。(3) 取对数得 \(\ln F(t)=\ln S(0)+\int_0^t\mu(\tau)d\tau\),两边对 \(t\) 求导,常数 \(\ln S(0)\) 消失,积分求导回到被积函数,得 \(\mu(t)\)。离散近似就是例 34.1 的做法:相邻两个期货价格对数之差除以时间间隔。

金融直觉:\(\mu(t)\) 就是 CFA 中"持有成本模型"里的 \(r+u-y\)。期货曲线向上(contango)表示储存成本高于便利收益,向下(backwardation)表示便利收益高。本章的做法是不去拆分这三项,直接把它们的合计从市场价格中读出来。

例 34.1 2014 年 7 月末的活牛期货价格(美分/磅):

到期 2014-08 2014-10 2014-12 2015-02 2015-04 2015-06
价格 62.20 60.60 62.70 63.37 64.42 64.40

10 月到 12 月的风险中性期望增长率为 \(\ln(62.70/60.60)=0.034\),即每 2 个月 3.4%(连续复利),年化 20.4%。

例 34.2 养殖决策:现在投资 10 万美元,3、6、9 个月后各再支出 2 万美元,预计年末多出可售活牛。有两个不确定性:可售磅数(期望 30 万磅)和每磅价格(风险中性下 1 年后的期望价格为 64.40 美分,即 2015 年 6 月期货价)。无风险利率 10%。项目价值(千美元):

\[-100-20e^{-0.1\times0.25}-20e^{-0.1\times0.50}-20e^{-0.1\times0.75}+300\times0.644e^{-0.1\times1}=17.729\]

这里假设产量的不确定性没有系统性风险,且产量与价格不相关。这正是第 35 章实物期权方法的一个简单应用:用期货价格代替"现实期望价格 + 风险调整贴现率"。

金融直觉:对比你熟悉的资本预算做法。传统做法是估计"现实世界中一年后的期望牛价",再用含风险溢价的 WACC 或 CAPM 要求回报贴现,难点在于这个风险溢价不好估。这里的做法是:价格风险用期货价格"吸收"掉(期货价已经是风险中性期望,等于把风险溢价预先扣除),剩下的现金流就可以用无风险利率 10% 贴现。产量风险没有系统性成分,所以用现实期望 30 万磅即可。项目 NPV 为正的 17,729 美元。

均值回归模型

更现实的风险中性过程是

\[d\ln S=[\theta(t)-a\ln S]dt+\sigma dz\tag{34.2}\]

它与第 31 章的对数正态短期利率过程(Black–Karasinski)完全同构。有时也写作 \(dS/S=[\theta^*(t)-a\ln S]dt+\sigma dz\),由 Itô 引理两者等价,\(\theta^*(t)=\theta(t)+\frac12\sigma^2\)。

推导拆解:为什么 \(\ln S\) 的漂移和 \(S\) 的百分比漂移差 \(\frac12\sigma^2\)?对 \(f(S)=\ln S\) 用 Itô 引理:\(f'=1/S\),\(f''=-1/S^2\),所以 \(d\ln S=\frac{dS}{S}-\frac12\cdot\frac{1}{S^2}(dS)^2=\frac{dS}{S}-\frac12\sigma^2dt\)。最后一步用了 \((dS)^2=\sigma^2S^2dt\)(随机项平方后不消失,这是 Itô 引理与普通链式法则的唯一区别)。所以百分比漂移 = 对数漂移 + \(\frac12\sigma^2\),即 \(\theta^*=\theta+\frac12\sigma^2\)。这与 BSM 中"\(\ln S\) 的漂移是 \(r-\sigma^2/2\)"完全是同一个修正。

三叉树构造

改造第 31.7 节的两阶段方法,条件从"零息债定价正确"改为"期望价格等于期货价格"。

示例:现货 $20,1、2、3 年期期货分别为 $22、$23、$24,\(a=0.1\),\(\sigma=0.2\),\(\Delta t=1\)。

第一步:对初值为 0 的变量 \(X\) 建树,

\[dX=-aX\,dt+\sigma dz\tag{34.3}\]

\(\Delta X=0.2\sqrt3=0.3464\),节点值为 \(0,\pm0.3464,\pm0.6928\);概率与第 31 章图 31.8 相同(\(j=0\):0.1667/0.6666/0.1667;\(j=1\):0.1217/0.6566/0.2217;\(j=2\) 用向下分叉:0.8867/0.0266/0.0867;负侧对称)。

第二步:\(\ln S\) 与 \(X\) 服从相同过程,只差一个时间依赖的漂移,所以平移 \(X\) 树的节点得到 \(\ln S\) 树。初始节点平移 \(\ln20\)。设 1 年时平移 \(\alpha_1\),要求期望价格等于期货价格:

\[0.1667e^{0.3464+\alpha_1}+0.6666e^{\alpha_1}+0.1667e^{-0.3464+\alpha_1}=22\]

得 \(\alpha_1=3.071\),1 年时 \(S\) 的三个值为 30.49、21.56、15.25。

推导拆解:这个方程看似要数值求解,其实可以直接解,因为 \(e^{\alpha_1}\) 可以提到外面: \(e^{\alpha_1}\left(0.1667e^{0.3464}+0.6666+0.1667e^{-0.3464}\right)=22\)。 括号内 \(=0.1667\times1.4140+0.6666+0.1667\times0.7072\approx1.0202\),于是 \(e^{\alpha_1}=22/1.0202=21.56\),\(\alpha_1=\ln21.56=3.071\)。三个节点价格就是 \(21.56\times e^{0.3464}=30.49\)、\(21.56\)、\(21.56\times e^{-0.3464}=15.25\)。 为什么 \(\Delta X=\sigma\sqrt{3\Delta t}\)?这是第 31 章三叉树的标准取法,它让三个分支的方差与连续过程匹配,同时保证概率为正。为什么 \(j=2\) 的节点"向下分叉"?因为均值回归把远离 0 的 \(X\) 往回拉,若仍用"上、平、下"分叉,向上的概率会变成负数。

白话解释:第一步造一棵"形状正确"(波动率和均值回归速度正确)但"位置不对"的树;第二步把每一层整体上下平移,让这一层的期望价格恰好等于对应期限的期货价格。平移不改变形状,所以波动率特征保留,同时期货曲线被精确拟合。

第三步:2 年时,先算到达各节点的概率。例如节点 F(\(j=1\))的概率 \(=0.1667\times0.6566+0.6666\times0.1667=0.2206\);E、G、H、I 的概率分别为 0.0203、0.5183、0.2206、0.0203。由

\[0.0203e^{0.6928+\alpha_2}+0.2206e^{0.3464+\alpha_2}+0.5183e^{\alpha_2}+0.2206e^{-0.3464+\alpha_2}+0.0203e^{-0.6928+\alpha_2}=23\]

得 \(\alpha_2=3.099\),2 年时 \(S\) 为 44.35、31.37、22.18、15.69、11.10。3 年时同理得 45.68、32.30、22.85、16.16、11.43(原书图 34.2)。

与利率树的区别:这里用的是不贴现的到达概率(风险中性概率),而利率树用的是贴现过的 Arrow–Debreu 价格。原因是条件不同:商品树要求期望价格等于期货价格,期货价格本身就是风险中性期望,不涉及贴现;利率树要求零息债定价正确,零息债价格是贴现后的期望。

例 34.3 用图 34.2 的树为 3 年期美式看跌期权定价,执行价 20,无风险利率 3%(连续复利)。回滚得期权价值 $1.48(原书图 34.3),在节点 D、H、I 提前行权:D 处行权价值 4.75,H 处 4.31,I 处 8.90。更精确的结果需要更多时间步,并对期货价格插值得到每个时间步末的期货价格。

复算说明:本章量化实战的代码按上述树和 3% 利率回滚,得到 1.50;行权节点和行权价值(4.75、4.31、8.91)与原书一致。若利率取 4%,回滚结果为 1.476,与原书的 1.48 吻合。原书数值与所述 3% 利率之间可能存在参数或舍入上的不一致,读者以算法为准。

插值与季节性

多步建树时需要在已知的期货价格之间插值。有季节性时,插值应反映季节性。月度步长下的简单方法:

  1. 收集现货的月度历史数据,计算 12 个月移动平均;
  2. 月度季节因子 = 该月现货价格与"以该月为(近似)中心的 12 个月移动平均"之比的历年平均值;
  3. 用季节因子对已知期货价格去季节化,插值得到月度的去季节化期货价格,再乘回季节因子。

数值例:9 月、12 月期货价格为 40、44;9–12 月的季节因子为 0.95、0.85、0.80、1.10。

  • 去季节化:9 月 \(40/0.95=42.1\),12 月 \(44/1.1=40\);
  • 线性插值:10 月 41.4,11 月 40.7;
  • 再季节化:10 月 \(41.4\times0.85=35.2\),11 月 \(40.7\times0.8=32.6\)。

注意结果:10、11 月的期货价格低于 9 月和 12 月,直接线性插值(40 → 44)会给出完全错误的 41.3、42.7。

白话解释:去季节化 → 插值 → 再季节化,和财报分析里"先剔除季节性再比较环比"是同一个思路。季节因子 0.85 的意思是"10 月价格通常只有全年趋势水平的 85%"。直接在 9 月和 12 月的原始价格之间画直线,等于假设 10、11 月处于平均季节,忽略了它们是淡季;先除以季节因子把两端都换算成"趋势水平",在趋势水平上插值才合理,最后再乘回该月的季节因子。

波动率的季节性:农产品在生长季因天气不确定,波动率更大。可以用第 23 章的方法监测波动率,估计波动率的季节因子,在 (34.2)、(34.3) 中用 \(\sigma(t)\) 代替 \(\sigma\)(时间依赖波动率的三叉树见原书 Technical Notes 9、16)。

跳跃

电力和天然气因天气相关的需求冲击、农产品因天气相关的供给冲击,都会出现价格跳跃:

\[d\ln S=[\theta(t)-a\ln S]dt+\sigma dz+dp\]

\(dp\) 是产生百分比跳跃的泊松过程,类似 Merton 跳跃扩散模型(第 27.1 节)。选定跳跃频率和跳跃大小的分布后,可以算出跳跃导致的 \(t\) 时价格平均增量;确定 \(\theta(t)\) 时,用三叉树方法拟合"扣除这个增量后的期货价格"。实现可用蒙特卡洛(第 21.6、27.1 节)。

其他模型

  • Gibson–Schwartz 模型(随机便利收益):\(y\) 为便利收益(convenience yield),现货的风险中性比例漂移为 \(r-y\):
    \[\frac{dS}{S}=(r-y)dt+\sigma_1dz_1,\qquad dy=k(\alpha-y)dt+\sigma_2dz_2\]
    \(dz_1,dz_2\) 相关;为精确拟合期货价格,可以让 \(\alpha\) 随时间变化。
  • Eydeland–Geman 模型(气电随机波动率):
    \[\frac{dS}{S}=a(b-\ln S)dt+\sqrt V\,dz_1,\qquad dV=c(d-V)dt+e\sqrt V\,dz_2\]
    \(a\) 到 \(e\) 为常数,\(dz_1,dz_2\) 相关。Geman 后来在油价模型中让回归水平 \(b\) 也成为随机的。

34.5 天气衍生品

很多企业的业绩受天气影响(原书脚注:美国能源部估计美国经济的七分之一受天气风险影响),它们应该像对冲汇率、利率风险一样对冲天气风险。首批 OTC 天气衍生品于 1997 年推出。

两个关键变量:

\[\text{HDD}=\max(0,65-A),\qquad\text{CDD}=\max(0,A-65)\]

HDD 为供暖度日(heating degree days),CDD 为制冷度日(cooling degree days),\(A\) 是指定气象站当天(午夜到午夜)最高温与最低温的平均值(华氏度)。例:最高 68°F、最低 44°F,\(A=56\),HDD = 9,CDD = 0。HDD 衡量当天供暖所需的能量,CDD 衡量制冷所需的能量。注意每天的 HDD、CDD 本身就是以温度为标的、执行价 65°F 的看跌、看涨期权支付。

典型 OTC 产品:按某月累计 HDD 或 CDD 支付的远期或期权。例:交易商在 2014 年 1 月卖给客户一份 2015 年 2 月芝加哥奥黑尔机场气象站累计 HDD 的看涨期权,执行价 700,每度日 10,000 美元。若实际累计 HDD 为 820,支付 \(120\times10{,}000=120\) 万美元。这类合约常带支付上限:上限 150 万美元时,等价于一个牛市价差——多头执行价 700 的看涨 + 空头执行价 850 的看涨。

用户:多为能源生产商和消费者,也包括零售商、连锁超市、食品饮料制造商、医疗服务、农业、休闲行业公司。天气风险管理协会(WRMA)服务这个行业。

交易所:CME 自 1999 年 9 月起交易天气期货及其欧式期权,标的是某气象站当月的累计 HDD 或 CDD,月末确定后现金结算;每手为 $20 × 当月累计 HDD 或 CDD。现在覆盖全球多个城市,还有飓风、霜冻、降雪的期货和期权。

34.6 保险衍生品

衍生品用于对冲时与保险合约性质相近,都是防范不利事件。许多保险公司有衍生品交易子公司,保险公司的业务越来越像投行。

传统上,保险业用**再保险(reinsurance)**对冲巨灾(CAT)风险(飓风、地震等)。例:某保险公司对加州地震的敞口为 1 亿美元,想把它限制在 3,000 万美元。

  • 方案一:按比例(pro rata)再保险,再保 70%。若某年加州地震索赔 5,000 万美元,公司只承担 1,500 万。
  • 方案二(更流行、保费更低):购买一系列超额损失层(excess cost layers)的再保险。例如第一层赔付 3,000 万到 4,000 万之间的损失,下一层赔付 4,000 万到 5,000 万之间的损失……每一份称为超额损失再保险合约(excess-of-loss reinsurance)。

再保险人在超额损失合约中相当于卖出了总损失的牛市价差:多头执行价为层下限的看涨、空头执行价为层上限的看涨。(原书脚注:有时再保险在损失达到某水平时一次性赔付,相当于卖出现金或无现金的二元看涨期权。)

推导拆解:以 3,000 万到 4,000 万这一层为例,设总损失为 \(L\)(单位:百万美元)。再保险人的赔付是 \(\min(\max(L-30,0),10)\):损失不到 30 不赔,超过 40 封顶赔 10。这个函数恰好等于 \(\max(L-30,0)-\max(L-40,0)\),即执行价 30 的看涨减去执行价 40 的看涨。对保险公司是买入牛市价差,对再保险人是卖出。CAT 债券持有人则通过"可能损失本金"间接卖出了这份价差,高出正常水平的票息就是期权费。

巨灾赔付可能极高:1992 年 Andrew 飓风在佛罗里达造成约 150 亿美元的保险损失,超过此前 7 年佛州相关保费的总和;若它正面袭击迈阿密,估计损失会超过 400 亿美元。这类灾难推高了保险和再保险的费率。

CAT 债券是 OTC 市场替代传统再保险的最流行产品。它由保险公司的子公司发行,票息高于正常水平;作为交换,持有人提供一份超额损失再保险:视条款而定,利息或本金(或两者)可用于赔付。上例中,保险公司想覆盖 3,000 万–4,000 万这一层,可以发行总本金 1,000 万美元的 CAT 债券;若加州地震损失超过 3,000 万,持有人损失部分或全部本金。也可以发行规模大得多、只有利息面临风险的债券来覆盖同一层。

34.7 天气与保险衍生品的定价

特点一:支付中没有系统性风险(不会被市场定价的风险),所以由历史数据得到的现实世界分布也适用于风险中性世界。定价方法很直接:(1) 用历史数据估计期望支付;(2) 按无风险利率贴现。

白话解释:为什么"没有系统性风险"就能用现实世界分布?风险中性定价的本质是:把风险溢价从贴现率里挪到概率里。股票的风险中性概率会把"好结果"的权重调低,因为投资者要为承担市场风险索取补偿。如果一个标的与整体市场(或投资者的边际效用)无关,承担它的风险就不需要补偿,CAPM 中 beta = 0,要求回报 = 无风险利率,风险中性概率和现实概率也就没有理由不同。所以可以"现实期望 + 无风险贴现"。这个前提一旦不成立(见本章误区 3),就需要加风险溢价。

特点二:不确定性随时间增长的方式不同。股票价格的不确定性大约随时间的平方根增长(4 年后对数价格的标准差约为 1 年后的 2 倍);商品有均值回归,但 4 年后的不确定性仍明显大于 1 年后;天气则几乎不随时间增长:4 年后某地 2 月 HDD 的不确定性通常只比 1 年后略大。地震损失同理。

方法:收集约 50 年的历史数据估计 HDD 的分布,拟合对数正态或其他分布,计算期权的期望支付,以无风险利率贴现;可以通过分析历史趋势、纳入气象预报来改进。

例 34.4 2016 年 2 月芝加哥奥黑尔机场累计 HDD 的看涨期权,执行价 700,每度日 10,000 美元。用 50 年数据估计 HDD 服从对数正态分布,均值 710,\(\ln\text{HDD}\) 的标准差 0.07。由式 (15A.1),期望支付为

\[10{,}000\times[710N(d_1)-700N(d_2)]\]
\[d_1=\frac{\ln(710/700)+0.07^2/2}{0.07}=0.2376,\qquad d_2=\frac{\ln(710/700)-0.07^2/2}{0.07}=0.1676\]

期望支付为 250,900 美元。无风险利率 3%,于 2015 年 2 月估值(距到期 1 年):

推导拆解:式 (15A.1) 是对数正态变量的看涨期望支付:若 \(\mathbb{E}[V]=m\)、\(\ln V\) 的标准差为 \(w\),则 \(\mathbb{E}[\max(V-K,0)]=mN(d_1)-KN(d_2)\),\(d_{1,2}=\dfrac{\ln(m/K)\pm w^2/2}{w}\)。它就是把 BSM 公式中的"远期价格"换成 \(m\)、"\(\sigma\sqrt T\)"换成 \(w\)、并去掉贴现。代入:\(\ln(710/700)=0.01418\),除以 0.07 得 0.2026,加减 \(0.07/2=0.035\) 得 \(d_1=0.2376\)、\(d_2=0.1676\);\(N(d_1)\approx0.5939\),\(N(d_2)\approx0.5666\);\(710\times0.5939-700\times0.5666\approx25.09\) 度日,乘每度日 10,000 美元得约 250,900 美元。注意这个期望支付远大于"把均值 710 代进去"得到的 \((710-700)\times10{,}000=100{,}000\) 美元,差额就是波动带来的期权时间价值。

\[250{,}900e^{-0.03\times1}=243{,}400\text{ 美元}\]

趋势调整:若线性回归显示 2 月累计 HDD 每年下降 0.5(可能因全球变暖),2016 年 2 月的均值估计降到 697。(原书脚注:过去 50 年平均 710、每年降 0.5,则期初约 722.5、期末约 697.5,下一年的合理估计约为 697。)保持对数标准差不变,期望支付降为 180,400 美元,期权价值降为 175,100 美元。若长期预报认为该年 2 月特别温和,期望 HDD 还要进一步下调,期权更不值钱。

勘误说明:原书在趋势调整这一段把目标月份印成了 "February 2013"。从上下文看,期权标的始终是 2016 年 2 月的累计 HDD(估值日为 2015 年 2 月),此处应为同一目标月份。

CAT 债券的定价:Litzenberger 等人发现 CAT 债券的收益与股市收益没有统计上显著的相关性,确认它基本没有系统性风险,所以估值可以基于保险公司的精算数据。CAT 债券的收益特征是:高概率获得高于正常水平的利率,低概率遭受大额损失。投资者为什么感兴趣?考虑可能的损失后,期望收益仍高于无风险收益,而风险(至少在理论上)可以在大组合中完全分散,所以加入 CAT 债券能改善组合的风险–收益权衡。

34.8 能源生产商如何对冲风险

能源生产商面临两类风险:价格风险(能源的市场价格)和数量风险(volume risk)(能卖出多少能源)。价格会随数量调整,但关系不完美,所以两者都要考虑。价格风险用能源衍生品对冲,数量风险用天气衍生品对冲。

定义 \(Y\) 为某月利润,\(P\) 为当月平均能源价格,\(T\) 为当月相关的温度变量(HDD 或 CDD)。用历史数据回归

\[Y=a+bP+cT+\varepsilon\]

然后对该月持有 \(-b\) 单位能源远期/期货、\(-c\) 单位天气远期/期货进行对冲。同一个回归关系也可以用来比较不同期权策略的对冲效果。

金融直觉:这是 CFA 里"最小方差对冲比率 \(h^*=\rho\sigma_S/\sigma_F\)"的多元版本。单变量时,回归斜率就是最小方差对冲比率;有两个风险源时,多元回归的系数 \(b\)、\(c\) 分别是"控制住另一个变量后"利润对价格和温度的敏感度,正好用来分别确定两种对冲工具的数量。持有 \(-b\) 单位价格合约后,利润中与 \(P\) 线性相关的部分被抵消;持有 \(-c\) 单位天气合约后,与 \(T\) 线性相关的部分被抵消,剩下的只有残差 \(\varepsilon\)。


34.9 小结与常见误区

只要有需要管理的风险,衍生品市场就会创新出满足需求的产品。商品衍生品的标的包括种植的农产品、牲畜、金属和能源;估值模型通常包含均值回归,有时显式建模季节性并加入跳跃。油、气、电衍生品尤其重要,其模型复杂程度不亚于股票、汇率、利率中最复杂的模型。天气衍生品用 HDD、CDD 描述月度温度,定义交易所和 OTC 产品的支付;降雨、降雪等合约将来可能更普及。保险衍生品是保险公司管理巨灾风险的传统再保险的替代品,寿险、车险等风险将来也可能以类似方式交易。天气和保险衍生品的标的没有系统性风险,可以用历史数据估计期望支付、按无风险利率贴现来估值。

常见误区:

  1. 对投资类金属假设均值回归,会在模型中制造套利。
  2. 商品树的平移量 \(\alpha_i\) 由"期望价格等于期货价格"(不贴现)决定,与利率树的"零息债定价正确"(贴现)不同,混用会出错。
  3. "无系统性风险"是用历史期望直接贴现的前提。若天气与市场相关(例如极端天气冲击整个能源行业的股价),就需要风险溢价。
  4. 电力的日行权期权比月行权期权更有价值。

量化实战

本章内容在量化交易中的用途

商品 CTA 与期货量化。期货曲线隐含的风险中性增长率 \(\partial\ln F/\partial t\)(期限结构斜率、展期收益)是商品**期限结构因子(carry 因子)**的直接来源:期货曲线向下倾斜(backwardation)的品种做多、向上倾斜(contango)的品种做空,是商品横截面策略中最稳健的因子之一。库存消费比、季节因子可以作为基本面因子。去季节化–插值–再季节化的方法可以直接用于构建连续合约、处理季节性强的品种(农产品、天然气、电力)的展期,以及国内生猪、鸡蛋、苹果等品种的季节性研究。

定价与系统实现。均值回归的对数正态三叉树、跳跃扩散、Gibson–Schwartz 两因子模型用于商品期权、商品互换、摆动期权和储存设施、管道等实物资产的估值。国内对应场外商品期权、含权贸易和"保险 + 期货"项目:后者本质上就是农户买入的看跌期权,由期货公司在期货市场上动态对冲。

风险管理。对冲回归 \(Y=a+bP+cT\) 是"用多元回归求对冲比率"的模板,可以推广到任何同时有价格风险和数量风险的企业套保。超额损失层等于牛市价差这一认识,有助于理解尾部风险的分层转移。

组合配置。CAT 债券与股市低相关,可作为另类资产分散风险;天气衍生品的定价方法(历史分布 + 趋势调整 + 预报)是统计预测的典型应用,也提醒我们:趋势估计本身有很大的不确定性(见下面的代码)。

Python 示例:商品树、季节性、天气期权与双因子对冲

程序有四部分:

  1. 实现拟合期货曲线的均值回归商品三叉树(复现原书图 34.2),并回滚美式看跌期权(例 34.3);
  2. 季节性插值的数值例;
  3. 模拟 50 年带趋势的 HDD 历史,回归估计趋势,为 HDD 看涨期权定价,并与例 34.4 对照;
  4. 模拟能源生产商的月度利润,用 \(Y=a+bP+cT\) 求对冲比率,比较对冲前后利润的标准差。
import numpy as np
import statsmodels.api as sm
from scipy.stats import norm

# ---------- 1. 均值回归商品三叉树:拟合期货价格(图 34.2),美式看跌(例 34.3)----------
def commodity_tree(S0, futures, a, sigma, dt):
    dX = sigma*np.sqrt(3*dt); jmax = int(np.floor(0.184/(a*dt))) + 1
    def probs(j):
        x = a*j*dt
        if j == jmax:  return (7/6+0.5*(x*x-3*x), -1/3-x*x+2*x, 1/6+0.5*(x*x-x)), (0, -1, -2)
        if j == -jmax: return (1/6+0.5*(x*x+x), -1/3-x*x-2*x, 7/6+0.5*(x*x+3*x)), (2, 1, 0)
        return (1/6+0.5*(x*x-x), 2/3-x*x, 1/6+0.5*(x*x+x)), (1, 0, -1)
    reach, layers = {0: 1.0}, [{0: S0}]
    for Fm in futures:
        nxt = {}
        for j, pj in reach.items():                      # 到达概率:不贴现!
            for p, s in zip(*probs(j)):
                nxt[j+s] = nxt.get(j+s, 0.0) + pj*p
        reach = nxt
        js = np.array(sorted(reach)); q = np.array([reach[j] for j in js])
        alpha = np.log(Fm) - np.log((q*np.exp(js*dX)).sum())   # 期望价格 = 期货价格
        layers.append({j: np.exp(alpha+j*dX) for j in js})
    return layers, probs

layers, probs = commodity_tree(20.0, [22.0, 23.0, 24.0], a=0.1, sigma=0.2, dt=1.0)
for m, lay in enumerate(layers):
    print(f"第{m}年价格:", [round(float(lay[j]), 2) for j in sorted(lay, reverse=True)])

def american_put(layers, probs, K, r, dt=1.0):
    V = {j: max(K-S, 0) for j, S in layers[-1].items()}
    for m in range(len(layers)-2, -1, -1):
        Vn = {}
        for j, S in layers[m].items():
            cont = sum(p*V[j+s] for p, s in zip(*probs(j)))*np.exp(-r*dt)
            Vn[j] = max(cont, K-S)
        V = Vn
    return V[0]
for r in [0.03, 0.04]:
    print(f"3 年美式看跌 K=20, r={r:.0%}: {american_put(layers, probs, 20, r):.3f}")

# ---------- 2. 季节性插值(9-12 月例子)----------
fut = {9: 40.0, 12: 44.0}; seas = {9: 0.95, 10: 0.85, 11: 0.80, 12: 1.10}
d9, d12 = fut[9]/seas[9], fut[12]/seas[12]
for mth in [10, 11]:
    d = d9 + (d12-d9)*(mth-9)/3
    print(f"{mth} 月: 去季节化 {d:.1f} -> 期货价格估计 {d*seas[mth]:.1f}")

# ---------- 3. 天气期权:50 年 HDD 历史 + 趋势 -> 期权价值 ----------
rng = np.random.default_rng(3)
years = np.arange(1966, 2016)
hdd = (722.5 - 0.5*(years-1966)) * np.exp(rng.normal(-0.07**2/2, 0.07, len(years)))  # 模拟历史
res = sm.OLS(hdd, sm.add_constant(years-1966)).fit()
mu_next = res.params[0] + res.params[1]*(2016-1966)
sd_log = np.std(np.log(hdd/res.fittedvalues), ddof=2)
print(f"\n趋势斜率 = {res.params[1]:.2f}/年 (t={res.tvalues[1]:.1f}),2016 年 2 月均值预测 = {mu_next:.1f},对数标准差 = {sd_log:.3f}")
def hdd_call(mu, sd, K=700, unit=1e4, r=0.03, T=1.0):
    d1 = (np.log(mu/K) + sd**2/2)/sd; d2 = d1 - sd
    e = unit*(mu*norm.cdf(d1) - K*norm.cdf(d2)); return e, e*np.exp(-r*T)
for mu, label in [(710, "例34.4 无趋势"), (697, "例34.4 有趋势"), (mu_next, "本模拟数据")]:
    e, v = hdd_call(mu, 0.07 if "例" in label else sd_log)
    print(f"  {label}: 均值 {mu:.1f} -> 期望支付 {e:,.0f},现值 {v:,.0f}")
# 蒙特卡洛核对:无上限与带 150 万美元支付上限两种情形
sim = mu_next*np.exp(rng.normal(-sd_log**2/2, sd_log, 1_000_000))
print(f"  蒙特卡洛期望支付 = {1e4*np.maximum(sim-700, 0).mean():,.0f};"
      f"加 150 万上限(牛市价差)= {np.minimum(1e4*np.maximum(sim-700, 0), 1.5e6).mean():,.0f}")

# ---------- 4. 能源生产商:同时对冲价格风险与数量风险 ----------
n = 120                                        # 10 年月度数据
P = 50 + 8*rng.standard_normal(n)              # 当月平均能源价格
T = 600 + 120*rng.standard_normal(n)           # 当月 HDD
Y = 5 + 0.8*P + 0.02*T + 0.3*(P-50)*(T-600)/100 + 3*rng.standard_normal(n)   # 利润(含交叉项)
fit = sm.OLS(Y, sm.add_constant(np.column_stack([P, T]))).fit()
a_, b_, c_ = fit.params
hedged = Y - b_*(P-P.mean()) - c_*(T-T.mean())
print(f"\n回归 Y=a+bP+cT: b={b_:.3f}, c={c_:.4f}, R2={fit.rsquared:.3f}")
print(f"对冲: 做空 {b_:.3f} 单位能源期货、做空 {c_:.4f} 单位 HDD 期货;"
      f"利润标准差 {Y.std():.2f} -> {hedged.std():.2f}")

关键输出:

第0年价格: [20.0]
第1年价格: [30.49, 21.56, 15.25]
第2年价格: [44.35, 31.37, 22.18, 15.69, 11.09]
第3年价格: [45.68, 32.3, 22.85, 16.16, 11.43]
3 年美式看跌 K=20, r=3%: 1.501
3 年美式看跌 K=20, r=4%: 1.476
10 月: 去季节化 41.4 -> 期货价格估计 35.2
11 月: 去季节化 40.7 -> 期货价格估计 32.6

趋势斜率 = -0.20/年 (t=-0.4),2016 年 2 月均值预测 = 706.7,对数标准差 = 0.078
  例34.4 无趋势: 均值 710.0 -> 期望支付 250,864,现值 243,449
  例34.4 有趋势: 均值 697.0 -> 期望支付 180,390,现值 175,059
  本模拟数据: 均值 706.7 -> 期望支付 253,062,现值 245,583
  蒙特卡洛期望支付 = 253,228;加 150 万上限(牛市价差)= 251,472

回归 Y=a+bP+cT: b=0.875, c=0.0232, R2=0.723
对冲: 做空 0.875 单位能源期货、做空 0.0232 单位 HDD 期货;利润标准差 8.86 -> 4.66

读法:

  • 商品树逐位复现了原书图 34.2(2 年最低节点 11.09 与原书 11.10 的差别是舍入)。美式看跌的讨论见 34.4 节的复算说明。
  • 季节性插值复现原书的 35.2 和 32.6。
  • 天气期权部分最值得注意:模拟数据的真实趋势是每年 −0.5,但 50 年数据回归只估出 −0.20、\(t\) 值仅 −0.4。原因是每年 HDD 的随机波动(约 7%,即 50 度日)远大于每年 0.5 度日的趋势。原书的趋势调整让期权价值从 24.3 万降到 17.5 万美元,降幅近 30%——一个统计上很难确认的趋势,对价格影响却很大。实务中应结合气候学的外部证据、更长的数据或多站点的联合估计,而不是只看单站回归。这与第 05 册第 15b 章讨论的趋势估计是同一类问题:样本短时,趋势很难与随机波动区分。
  • 150 万美元的支付上限几乎不改变价值(25.3 万 → 25.1 万),因为 HDD 超过 850 的概率很小;但对卖方而言,上限截断了尾部风险。
  • 对冲回归:两个变量解释了利润 72% 的方差,对冲后利润标准差下降近一半。剩下的部分来自价格与温度的交叉项(数据生成中故意加入的非线性),线性期货对冲无法消除,需要期权等非线性工具——这正是原书说"该关系也可用于分析不同期权策略的有效性"的含义。

本章小结

商品价格由库存、季节、天气和供需反馈驱动,常有均值回归,能源(尤其电力)还有尖峰和跳跃;投资类金属则不应假设均值回归。定价的出发点是"风险中性下期望现货价格等于期货价格":简单模型中 \(\mu(t)=\partial\ln F/\partial t\);均值回归对数模型 (34.2) 可以用 Hull–White 两阶段三叉树拟合期货曲线,条件是不贴现的期望价格等于期货价格。季节性通过去季节化–插值–再季节化处理;跳跃、随机便利收益、随机波动率是常见扩展。天气衍生品以 HDD/CDD 为标的;超额损失再保险和 CAT 债券相当于损失的牛市价差。无系统性风险的标的可以用历史分布的期望支付按无风险利率贴现定价。能源生产商可用回归 \(Y=a+bP+cT\) 同时对冲价格风险和数量风险。

概念 公式 / 要点
风险中性期望 \(\hat E[S(t)]=F(t)\)
简单模型的增长率 \(\mu(t)=\partial\ln F(t)/\partial t\)
均值回归模型 \(d\ln S=[\theta(t)-a\ln S]dt+\sigma dz\)
商品三叉树平移 \(\sum_j\pi_{m,j}e^{\alpha_m+j\Delta X}=F(m\Delta t)\)(\(\pi\) 为不贴现的到达概率)
季节性插值 期货 ÷ 季节因子 → 插值 → × 季节因子
跳跃 \(+dp\)(泊松跳跃),拟合扣除跳跃均值后的期货价格
Gibson–Schwartz \(dS/S=(r-y)dt+\sigma_1dz_1\),\(dy=k(\alpha-y)dt+\sigma_2dz_2\)
HDD / CDD \(\max(0,65-A)\) / \(\max(0,A-65)\)
超额损失层、CAT 债券 损失的牛市价差
无系统性风险定价 历史期望支付 × \(e^{-rT}\)
双因子对冲 \(Y=a+bP+cT\),持有 \(-b\) 能源期货、\(-c\) 天气期货

练习

基础

  1. 某日最高温 50°F、最低温 30°F,求当天的 HDD 和 CDD。说明为什么累计 HDD 可以看作一串温度看跌期权的组合(原书习题 34.1、34.4、34.7)。 提示:\(A=40\),HDD = 25,CDD = 0。

  2. 用例 34.1 的数据计算 2014 年 12 月到 2015 年 2 月、2015 年 4 月到 6 月的风险中性年化增长率,解释为何会出现负值。 提示:\(\ln(64.40/64.42)<0\);增长率反映季节性的供需而非"预期收益"。

  3. 说明为什么投资类金属不应假设均值回归,而铜可以。

  4. 某保险公司想覆盖 5,000 万到 7,000 万美元之间的损失层。写出对应的期权组合;若改为发行 CAT 债券,本金应为多少? 提示:多头执行价 5,000 万的看涨 + 空头执行价 7,000 万的看涨;本金 2,000 万。

  5. 历史数据法与风险中性法何时给出相同的价格?比较一份 CAT 债券和一份期望损失相同的 B 级公司债,哪一个应该有更高的收益率(原书习题 34.3、34.6、34.14)? 提示:公司债的违约损失与经济周期相关,含系统性风险,应要求更高的风险溢价。

进阶

  1. 证明在 (34.1) 下 \(\ln S_T\sim\phi\left(\ln F(T)-\sigma^2T/2,\ \sigma^2T\right)\)(原书习题 34.15)。 提示:\(d\ln S=(\mu(t)-\sigma^2/2)dt+\sigma dz\),积分并用 \(\ln F(T)=\ln S_0+\int_0^T\mu\)。

  2. 解释均值回归为什么使远期(期货)价格的波动率低于现货价格的波动率,并在均值回归对数模型 (34.2) 下推导到期 \(T\) 的期货价格在 \(t\) 时的瞬时波动率为 \(\sigma e^{-a(T-t)}\)(原书习题 34.9、34.10、34.5)。 提示:现货冲击会以速度 \(a\) 衰减,远期价格只反映冲击在 \(T\) 时的残余部分。

  3. 修改本章代码:把 2 年和 3 年期货价格改为 $22 和 $25,重建树并重估美式看跌期权(原书习题 34.17)。

  4. 用模拟数据完成原书习题 34.8 的流程:生成 50 年的日温度数据(含季节项和年际噪声),计算每年 7 月的累计 CDD,拟合对数正态分布,为执行价取历史中位数的 CDD 看涨期权定价;再用自助法(bootstrap)给出价格的 90% 置信区间。 提示:价格置信区间往往很宽,这是"历史法"的主要模型风险。

  5. 电力 5×8 期权:比较一个月 22 个交易日的日行权期权与月行权期权的价值。假设每日电价独立同分布、服从对数正态,用蒙特卡洛验证日行权更有价值(原书习题 34.12)。 提示:日行权 = \(\sum_d\max(S_d-K,0)\),月行权 = \(\max(\sum_dS_d-22K,0)\),前者不小于后者(三角不等式)。

原书推荐习题:34.1、34.4、34.7(HDD/CDD 计算,以及把 HDD/CDD 看作温度期权);34.3、34.6、34.14(历史数据法与风险中性法何时一致;CAT 债券与同等期望损失的 B 级公司债);34.8(用 50 年温度数据为累计 CDD 远期定价的完整流程,适合作为数据项目);34.9、34.10、34.5(远期价格与现货价格波动率比较,均值回归导致远期波动率更低;高波动高回归的电力);34.12(电力 5×8 日行权与月行权期权);34.15(证明 \(\ln S_T\) 的分布);34.16(保险损失的按比例合约与二元合约定价);34.17(修改期货价格后重建商品三叉树并重估美式期权)。


原书对照

本章小节 原书章节 PDF 页码
章首导言 Chapter 34 introduction p.798
34.1 农产品 34.1 Agricultural Commodities p.798–799
34.2 金属 34.2 Metals p.799–800
34.3 能源产品 34.3 Energy Commodities p.800–802
34.4 商品价格建模(例 34.1–34.3,图 34.2、34.3) 34.4 Modeling Commodity Prices p.802–807
34.5 天气衍生品 34.5 Weather Derivatives p.807
34.6 保险衍生品 34.6 Insurance Derivatives p.808
34.7 天气与保险衍生品定价(例 34.4) 34.7 Pricing Weather and Insurance Derivatives p.808–810
34.8 能源生产商的对冲 34.8 How an Energy Producer Can Hedge Risks p.810
小结、延伸阅读、习题 Summary, Further Reading, Practice Questions 34.1–34.17 p.811–814

注:PDF 页码 = 书页码 + 1。