量化交易中文教材

第 03 章 期货套期保值策略

学习目标

读完本章,你应当能够:

  1. 根据敞口方向判断该做空头套期保值还是多头套期保值,并说清楚对冲锁定的到底是什么价格。
  2. 定义基差(basis),推导"有效价格 \(=F_1+b_2\)",把交叉对冲下的基差风险分解为两部分,并按经验法则选择合约月份。
  3. 推导最小方差对冲比率 \(h^*=\rho\,\sigma_S/\sigma_F\),理解它就是回归斜率、对冲有效性就是 \(R^2=\rho^2\),并计算最优合约数(含尾随调整)。
  4. 用股指期货对冲股票组合:\(N^*=\beta V_A/V_F\);把组合 β 调到任意目标;理解如何借此分离选股 alpha。
  5. 设计叠加展期(stack and roll)方案,并从德国金属公司案例认识对冲中的流动性风险。
  6. 掌握 CAPM 的基本形式与假设,知道它在对冲中扮演的角色。

读前导读

这一章在解决什么问题。 手里有一笔价格风险,用期货把它抵掉,要做空还是做多、做多少张、抵掉之后还剩什么风险。CFA 三级的"用股指期货调整组合 β"公式 \(N=(\beta_T-\beta_P)/\beta_F\times V/F\),和本章 3.5.5 节是同一件事;基差的概念你也见过。

本章比 CFA 深的地方在 3.4 节:CFA 直接给出对冲比率公式,本章把它推导出来——写出对冲后头寸的方差,它是 \(h\) 的二次函数,求导令其为零,得到 \(h^*=\rho\sigma_S/\sigma_F\)。随后说明这个 \(h^*\) 恰好是 OLS 回归斜率、对冲有效性恰好是 \(R^2\)。理解这条推导之后,你会发现最小方差对冲、CAPM 的 β、配对交易的对冲比率其实是同一个数学对象,这对量化工作非常有用。另一个 CFA 不讲的点是"尾随对冲":期货逐日结算,合约张数要按"价值"而不是"数量"来配。

需要先想起来的数学。

  • 两变量线性组合的方差。 \(\operatorname{Var}(X-hY)=\operatorname{Var}(X)-2h\operatorname{Cov}(X,Y)+h^2\operatorname{Var}(Y)\),而 \(\operatorname{Cov}(X,Y)=\rho\sigma_X\sigma_Y\)。这和 CFA 中两资产组合方差 \(w_1^2\sigma_1^2+w_2^2\sigma_2^2+2w_1w_2\rho\sigma_1\sigma_2\) 是同一个公式,只是一个权重换成了 \(-h\)。见 第 00 册第 07 章 概率中的分析工具。
  • 用导数求二次函数的最小值。 \(f(h)=a h^2+b h+c\)(\(a>0\))的导数是 \(f'(h)=2ah+b\),令其为 0 得最低点 \(h=-b/(2a)\)。例:\(f(h)=h^2-4h+7\),\(f'(h)=2h-4=0\),\(h=2\),最小值 3。导数可以理解为"\(h\) 动一点点时 \(f\) 变化多少",在最低点这个变化率为零。见 第 00 册第 02 章 导数与泰勒展开。
  • 回归斜率与 \(R^2\)。 一元 OLS \(Y=a+bX+\varepsilon\) 的斜率 \(b=\operatorname{Cov}(X,Y)/\operatorname{Var}(X)\);\(R^2\) 是被 \(X\) 解释的方差比例,在一元回归中等于 \(\rho^2\)。这些你在 CFA 二级学过,本章只是把它们和"对冲"对应起来。
  • 期望的线性性。 \(\mathbb E[aX+bY]=a\mathbb E[X]+b\mathbb E[Y]\)。3.5.3 节用 CAPM 计算"组合预期收益"时反复使用。

怎么读这一章。 必读:3.3.2(有效价格 \(F_1+b_2\))、3.4.1(推导,建议拿笔跟一遍)、3.5.2–3.5.5(股指期货对冲与调整 β)。3.4.3 尾随对冲第一次读可以只记结论"用价值比 \(V_A/V_F\) 而不是数量比"。3.2 是公司金融层面的讨论,浏览即可;3.7 CAPM 附录你已熟悉,可跳过。量化实战第三部分(滚动 β 对冲分离 alpha)是本章最贴近实际工作的内容。


3.1 对冲的基本原则

完美对冲(perfect hedge)是完全消除风险的对冲,现实中极少见。因此研究期货对冲,就是研究怎样让对冲尽量接近完美。本章只考虑**"对冲后不管"(hedge-and-forget)策略:期初建仓,期末平仓,中途不调整(动态对冲见本册第 19a 章,原书第 19 章)。我们先把期货当作远期处理,忽略逐日结算,最后再介绍考虑两者差异的尾随调整**(tailing)。

目标是建立一个尽可能中和风险的头寸。若公司在未来 3 个月内,商品价格每涨 1 美分就赚 $10,000、每跌 1 美分就亏 $10,000,那么它应该建立期货空头,使价格每涨 1 美分亏 $10,000、每跌 1 美分赚 $10,000,两者正好抵消。

3.1.1 空头套期保值

空头套期保值(short hedge)即持有期货空头。适用于:已经拥有资产、预期将来出售(养猪户两个月后出售生猪);或现在没有、但将来会拥有(美国出口商 3 个月后收到欧元——欧元升值获益、贬值受损,期货空头正好反过来)。

例。 5 月 15 日,一家石油生产商签约出售 100 万桶原油,价格按 8 月 15 日的市场价确定。当前即期 $80/桶,8 月期货 $79/桶,每张合约 1,000 桶,于是做空 1,000 张。

  • 8 月 15 日若即期为 $75:卖油得 $7,500 万;8 月是交割月,期货价接近即期 $75,期货每桶赚约 $4,共 $400 万。合计约 $79/桶、$7,900 万。
  • 若即期为 $85:卖油得 $85/桶,期货每桶亏约 $6。合计仍约 $79/桶。

注意锁定的是期货价 $79,而不是当时的即期价 $80。

3.1.2 多头套期保值

多头套期保值(long hedge)即持有期货多头,适用于将来要买入资产、想现在锁定价格。

例。 1 月 15 日,一家铜加工商 5 月 15 日需要 100,000 磅铜。即期 340 美分/磅,5 月期货 320 美分/磅,COMEX 每张 25,000 磅,买 4 张,5 月 15 日平仓。

  • 若 5 月 15 日即期 325 美分:期货赚 \(100{,}000\times(3.25-3.20)=\$5{,}000\),买铜付 $325,000,净成本约 $320,000;
  • 若即期 305 美分:期货亏 \(100{,}000\times(3.20-3.05)=\$15{,}000\),买铜付 $305,000,净成本仍约 $320,000。

这比 1 月 15 日直接在现货市场买铜要好:后者要付 340 美分,还有利息和仓储成本。经常用铜的公司可能因为手头有货的便利(第 05 章的"便利收益")而愿意承担这些成本,但 5 月才需要铜的公司宜用期货。

上面两个例子都假设在交割月平仓;如果允许交割,效果基本相同,但交割成本高且不方便,对冲者通常在交割期前平仓。例子还忽略了逐日结算——实际中收益在整个对冲期内逐日实现,对效果有小的影响。

3.2 该不该对冲

支持的理由。 大多数非金融企业的专长是制造、零售、批发或服务,不擅长预测利率、汇率、商品价格。对冲这些风险,可以专注主业、避免不愉快的意外。

"股东自己会对冲"? 有人认为股东能自己对冲,不需要公司代劳。这个论点站不住:股东对公司风险的信息不如管理层;它忽略了交易成本——大额交易每美元对冲成本更低;期货合约规模常常让个人无法对冲。股东更容易做到的是分散化:同时持有用铜企业和铜生产商的股票,对铜价的总体敞口就很小。所以若公司为充分分散化的股东着想,许多情况下确实可以不对冲。

竞争者都不对冲时。 竞争压力会让产品价格随原材料成本、利率、汇率波动。原书表 3.1 比较了两家金饰制造商:TakeaChance 不对冲(与行业一致),SafeandSure 用期货对冲未来 18 个月的黄金采购成本。

金价变化 金饰价格 TakeaChance 利润 SafeandSure 利润
上涨 上涨 不变 增加
下跌 下跌 不变 减少

不对冲的公司利润率反而稳定,"对冲"的公司利润率在波动,极端情况下甚至为负。启示:设计对冲要看价格变化对公司盈利的全部影响,而不是只盯一项成本。

对冲可能让结果看起来更差。 在石油生产商的例子里,若油价涨到 $89,期货每桶亏 $10,共亏 $1,000 万,而经营上多赚了 $1,000 万。原书设计了一段总裁与财务主管的对话:总裁只看到期货亏损,认为财务主管在"玩期货",要扣他的奖金。对冲降低了公司风险,却可能增加执行者的个人风险。唯一的解决办法是事前让所有高管充分理解对冲方案,最好由董事会制定并向管理层和股东清楚传达。

商业快照:金矿公司的对冲。 开采一座金矿要数年,投产后对金价敞口巨大。不对冲的公司吸引那些想从金价上涨获益、愿意承担下跌风险的股东;对冲的公司估计未来几年每月产量,用远期或期货空头锁定全部或部分价格。如果你是投行,金矿要在 1 年后以固定价卖给你大量黄金,你可以:从央行借入黄金,立即在现货市场卖出,所得按无风险利率投资;1 年后从金矿买金归还央行。你给出的远期价反映可赚的无风险利率与付给央行的黄金租借利率(lease rate)。

3.3 基差风险

现实中的对冲不那么完美,原因有三:(1) 被对冲资产与期货标的不完全相同;(2) 买卖资产的确切日期不确定;(3) 可能需要在交割月之前平仓。这些不确定性统称基差风险(basis risk)。

3.3.1 基差的定义

\[\text{基差}=\text{被对冲资产的即期价}-\text{所用合约的期货价}.\]

(金融期货中有时反过来定义为期货价减即期价。)如果被对冲资产与期货标的相同,到期时基差应为零(第 02 章的收敛性),之前可正可负。基差增大称基差走强(strengthening),减小称基差走弱(weakening)。2013 年 5 月 14 日,黄金的基差为负,玉米、大豆近月合约的基差为正。

3.3.2 对冲锁定的有效价格

记号:\(t_1\) 建立对冲,\(t_2\) 平仓;\(S_1,S_2\) 为即期价,\(F_1,F_2\) 为期货价;\(b_1=S_1-F_1\),\(b_2=S_2-F_2\)。

空头对冲者在 \(t_2\) 卖出资产得 \(S_2\),期货盈利 \(F_1-F_2\),有效价格

\[S_2+(F_1-F_2)=F_1+b_2 .\]

多头对冲者在 \(t_2\) 买入资产付 \(S_2\),期货亏损 \(F_1-F_2\),有效支付同样是 \(F_1+b_2\)。

这个式子揭示了对冲的本质:\(F_1\) 在 \(t_1\) 已知;如果 \(b_2\) 也已知,就是完美对冲。对冲把价格风险换成了基差风险——剩下的不确定性只有 \(b_2\)。

推导拆解:空头的式子逐步写开: 第一步,卖资产收到 \(S_2\)。 第二步,期货空头在 \(t_1\) 以 \(F_1\) 卖出、\(t_2\) 以 \(F_2\) 买回平仓,盈利 \(F_1-F_2\)。 第三步,两者相加 \(S_2+F_1-F_2\),再把 \(S_2-F_2\) 合并成 \(b_2\),得 \(F_1+b_2\)。 多头同理:买资产付 \(S_2\),期货多头盈利 \(F_2-F_1\),净支付 \(S_2-(F_2-F_1)=F_1+(S_2-F_2)=F_1+b_2\)。 关键是看哪些量在 \(t_1\) 已知。\(S_2\) 和 \(F_2\) 各自都波动很大,但它们的差 \(b_2\) 通常波动小得多,因为两者受同一批供需因素驱动。对冲的作用就是把"一个大的未知数 \(S_2\)"换成"一个小的未知数 \(b_2\)"。如果被对冲资产就是期货标的、并且恰好在交割时平仓,收敛性保证 \(b_2\approx0\),有效价格就是 \(F_1\)。这也解释了 3.1.1 节为什么锁定的是期货价 $79 而不是即期价 $80。

数例:\(S_1=2.50,\ F_1=2.20,\ S_2=2.00,\ F_2=1.90\),则 \(b_1=0.30,\ b_2=0.10\),有效价格 \(2.20+0.10=\$2.30\)。

由此可见:空头对冲者遇到基差意外走强是好事(卖得更高),走弱是坏事;多头对冲者正好相反。

3.3.3 交叉对冲时的基差分解

若被对冲资产与期货标的不同,设 \(S_2^*\) 为 \(t_2\) 时期货标的资产的价格,则

\[S_2+F_1-F_2=F_1+\underbrace{(S_2^*-F_2)}_{\text{同资产基差}}+\underbrace{(S_2-S_2^*)}_{\text{资产差异基差}} .\]

第一项是即使两资产相同也存在的基差,第二项来自两资产的差异。交叉对冲时基差风险更大。

3.3.4 选择合约

选择分两部分:标的资产和交割月份。

  • 资产:被对冲资产与期货标的完全匹配时很简单;否则要分析哪种期货价格与被对冲资产价格的相关性最高。
  • 月份:即使对冲到期日恰好落在某交割月内,通常也选更晚的月份——交割月内期货价有时很不稳定,多头持有至交割月还有被迫接收实物的风险。基差风险随"对冲到期日与交割月的时间差"增大而增大。经验法则:选择尽可能接近、但晚于对冲到期日的交割月。 例如交割月为 3、6、9、12 月时,对冲在 12、1、2 月到期用 3 月合约,在 3、4、5 月到期用 6 月合约,依此类推。前提是这些合约流动性足够;实践中近月合约流动性最好,有时对冲者会用近月合约并展期(3.6 节)。

例 3.1(空头,日元)。 3 月 1 日,美国公司预计 7 月底收到 5,000 万日元。CME 日元期货交割月为 3、6、9、12 月,每张 1,250 万日元,于是做空 4 张 9 月合约。3 月 1 日期货价 0.9800 美分/日元;平仓时即期 0.9200,期货 0.9250。期货盈利 0.0550 美分/日元,平仓基差 \(-0.0050\)。有效价格

\[0.9200+0.0550=0.9750=0.9800-0.0050\ (\text{美分/日元}),\]

共收到 \(50\times0.00975\) 百万美元 = $487,500。

例 3.2(多头,原油)。 6 月 8 日,公司将在 10 或 11 月某时买 20,000 桶原油。NYMEX 原油每月都有交割,每张 1,000 桶,选 12 月合约做多 20 张,期货价 $88.00。11 月 10 日准备购买并平仓,即期 $90.00,期货 $89.10。期货盈利 $1.10/桶,最终基差 $0.90,有效价格

\[90.00-1.10=88.00+0.90=\$88.90/\text{桶},\]

共 $1,778,000。

3.4 交叉对冲与最小方差对冲比率

期货标的与被对冲资产不同就是交叉对冲(cross hedging)。例如航空公司担心航空燃油价格,但航空燃油期货交易不活跃,于是用取暖油(heating oil)期货对冲。

对冲比率(hedge ratio)是期货头寸规模与风险敞口规模之比。标的相同时自然取 1.0(例 3.2:敞口 20,000 桶,期货恰好 20,000 桶)。交叉对冲时 1.0 未必最优,应选择使对冲后头寸价值方差最小的比率。

3.4.1 推导

记 \(\Delta S\) 为对冲期内即期价的变化,\(\Delta F\) 为对冲期内期货价的变化,\(\sigma_S,\sigma_F\) 为它们的标准差,\(\rho\) 为相关系数。对每单位资产卖出 \(h\) 单位期货(空头对冲),对冲期内头寸价值变化为 \(\Delta S-h\,\Delta F\),其方差

\[v(h)=\sigma_S^2-2h\rho\,\sigma_S\sigma_F+h^2\sigma_F^2 .\]

推导拆解:这个式子来自方差的展开。把 \(X=\Delta S\),\(Y=\Delta F\): \(\operatorname{Var}(X-hY)=\mathbb E\big[(X-hY-\mathbb E[X-hY])^2\big]\)。记 \(x=X-\mathbb E X\),\(y=Y-\mathbb E Y\)(去掉均值后的偏差),括号里就是 \(x-hy\)。 展开平方:\((x-hy)^2=x^2-2hxy+h^2y^2\)。 取期望,用期望的线性性逐项拿出来:\(\mathbb E[x^2]-2h\,\mathbb E[xy]+h^2\,\mathbb E[y^2]=\sigma_S^2-2h\operatorname{Cov}(\Delta S,\Delta F)+h^2\sigma_F^2\)。 最后把协方差写成 \(\rho\sigma_S\sigma_F\) 即得原式。你会认出这就是 CFA 的两资产组合方差公式,只不过"第二个资产"的权重是 \(-h\)(做空)。

这是 \(h\) 的开口向上的二次函数(原书图 3.3 的 U 形曲线)。令 \(v'(h)=-2\rho\sigma_S\sigma_F+2h\sigma_F^2=0\),得

\[\boxed{h^*=\rho\,\frac{\sigma_S}{\sigma_F}}\tag{3.1}\]

\(h^*\) 恰好是 \(\Delta S\) 对 \(\Delta F\) 做线性回归的斜率(原书图 3.2):\(\operatorname{Cov}(\Delta S,\Delta F)/\operatorname{Var}(\Delta F)=\rho\sigma_S\sigma_F/\sigma_F^2\)。直观上,它就是"期货变动一单位时即期平均变动多少"。

推导拆解:求导这一步逐项看。\(v(h)\) 里 \(\sigma_S^2\) 与 \(h\) 无关,导数为 0;\(-2h\rho\sigma_S\sigma_F\) 是 \(h\) 的一次项,导数是系数 \(-2\rho\sigma_S\sigma_F\);\(h^2\sigma_F^2\) 的导数是 \(2h\sigma_F^2\)(用了 \((h^2)'=2h\))。令导数为零,移项、两边除以 \(2\sigma_F^2\) 就得到 (3.1)。 为什么这是最小值而不是最大值?二次项系数 \(\sigma_F^2>0\),抛物线开口向上,唯一的驻点(导数为零的点)就是最低点。也可以不用导数,用配方:\(v(h)=\sigma_F^2\big(h-\rho\sigma_S/\sigma_F\big)^2+\sigma_S^2(1-\rho^2)\),第一项非负,只有在 \(h=h^*\) 时等于零。配方的写法同时给出了最小方差 \(\sigma_S^2(1-\rho^2)\),也就是下面的对冲有效性结论。 与回归的对应:OLS 就是在选斜率 \(b\) 使残差平方和 \(\sum(\Delta S_i-a-b\,\Delta F_i)^2\) 最小,而最小方差对冲是在选 \(h\) 使 \(\operatorname{Var}(\Delta S-h\Delta F)\) 最小。两个问题的目标函数本质相同(残差的离散程度),所以答案相同。

两个特例:\(\rho=1,\ \sigma_F=\sigma_S\) 时 \(h^*=1\),期货是即期的完美镜像;\(\rho=1,\ \sigma_F=2\sigma_S\) 时 \(h^*=0.5\),期货变动总是即期的两倍。

对冲有效性(hedge effectiveness)定义为对冲消除的方差比例。把 \(h^*\) 代回:

\[v(h^*)=\sigma_S^2(1-\rho^2)\quad\Longrightarrow\quad \text{有效性}=1-\frac{v(h^*)}{\sigma_S^2}=\rho^2 ,\]

也就是回归的 \(R^2\)。若 \(\rho=0\),\(h^*=0\),最小方差对冲就是不对冲。

金融直觉:\(\rho^2\) 的"平方"让对冲效果对相关性非常敏感。\(\rho=0.928\) 时有效性 0.86,剩余标准差是原来的 \(\sqrt{1-0.86}\approx37\%\);\(\rho=0.7\) 时有效性只有 0.49,剩余标准差约为原来的 71%,对冲只把风险降了不到三成。所以交叉对冲时,相关系数从 0.9 降到 0.7 看起来变化不大,实际效果却差很多。航空公司用取暖油对冲航油、用沪深 300 期货对冲一个小盘股组合,都要先看这个数字。另外注意:\(h^*\) 与 \(\rho\) 都是用历史数据估计的,估计本身有误差,样本外的有效性通常低于样本内的 \(R^2\)。

参数估计。 \(\rho,\sigma_S,\sigma_F\) 通常用历史数据估计,隐含假设"未来在某种意义上像过去"。做法是取若干等长、不重叠的时间区间,观察每个区间的 \(\Delta S,\Delta F\)。理想的区间长度等于对冲期长度,但这常常让观测数太少,实践中会用更短的区间。

3.4.2 最优合约数

设 \(Q_A\) 为被对冲头寸的规模(单位数),\(Q_F\) 为一张期货合约的规模,期货应覆盖 \(h^*Q_A\) 单位:

\[N^*=\frac{h^*Q_A}{Q_F}.\tag{3.2}\]

例 3.3(航空燃油)。 航空公司 1 个月后要买 200 万加仑航空燃油,用取暖油期货对冲。原书表 3.2 给出 15 个月的月度数据(\(\Delta F\) 为取暖油期货价变化,\(\Delta S\) 为航空燃油价变化,美元/加仑):

月 ΔF ΔS 月 ΔF ΔS
1 0.021 0.029 9 0.048 0.043
2 0.035 0.020 10 −0.006 0.011
3 −0.046 −0.044 11 −0.036 −0.036
4 0.001 0.008 12 −0.011 −0.018
5 0.044 0.026 13 0.019 0.009
6 −0.029 −0.019 14 −0.027 −0.032
7 −0.026 −0.010 15 0.029 0.023
8 −0.029 −0.007

计算得 \(\sigma_F=0.0313\),\(\sigma_S=0.0263\),\(\rho=0.928\),

\[h^*=0.928\times\frac{0.0263}{0.0313}=0.78 .\]

CME 取暖油期货每张 42,000 加仑,

\[N^*=\frac{0.78\times2{,}000{,}000}{42{,}000}\approx37\ \text{张}.\]

(本表的负号在精读笔记抽取时曾丢失,本教材已用 \(\sigma_F,\sigma_S,\rho\) 的原书数值反算恢复,"量化实战"中的代码给出了验证。)

3.4.3 尾随对冲

以上分析对远期是正确的。期货逐日结算,实际上是一连串的一日对冲。因此分析者有时改用一日百分比变化:设 \(\hat\rho\) 为即期与期货一日收益率的相关系数,\(\hat\sigma_S,\hat\sigma_F\) 为其标准差。当前即期价 \(S\)、期货价 \(F\),则一日价格变化的标准差为 \(S\hat\sigma_S\) 和 \(F\hat\sigma_F\),一日对冲比率为 \(\hat\rho\,S\hat\sigma_S/(F\hat\sigma_F)\),次日所需合约数为

\[N^*=\hat\rho\,\frac{S\hat\sigma_S\,Q_A}{F\hat\sigma_F\,Q_F}=\hat h\,\frac{V_A}{V_F},\qquad \hat h=\hat\rho\,\frac{\hat\sigma_S}{\hat\sigma_F},\tag{3.3}\]

其中 \(V_A=SQ_A\) 是被对冲头寸的美元价值,\(V_F=FQ_F\) 是一张期货的美元价值。理论上应每天按最新的 \(V_A,V_F\) 调整头寸,这就是尾随调整(tailing the hedge);实践中每天变化很小,常被忽略。

白话解释:(3.3) 只是做了一次单位换算。\(\hat\sigma_S\)、\(\hat\sigma_F\) 是百分比变化的标准差,乘上当前价格才变成美元变化的标准差:\(S\hat\sigma_S\) 和 \(F\hat\sigma_F\)。把它们代入 (3.1) 得到"每单位资产对应多少单位期货",再乘 \(Q_A/Q_F\) 换成张数,整理后就是 \(\hat h\cdot SQ_A/(FQ_F)=\hat h\,V_A/V_F\)。 和 (3.2) 相比,差别在于多了因子 \(S/F\)。在数例中 \(S/F=28/27\approx1.037\),张数从 11.2 变成 11.6。当期货价明显偏离即期价时(比如期限长、利率高,第 05 章的 \(F=Se^{rT}\)),这个因子才会明显不等于 1。 为什么要"每天调整"?因为期货每天结算一次,今天的盈亏只取决于今天的价格变动,所以"一份对冲"实际上是"一连串一日对冲",每一天都应按当天的价值比配张数。这和后面第 19 章期权的 delta 对冲需要动态调整是同一种思想。

数例(原书习题 3.26 思路):\(\hat h=0.95\times0.43/0.40=1.021\),敞口 55,000 单位、每张期货 5,000 单位,即期 28、期货 27。不尾随:\(1.021\times55{,}000/5{,}000\approx11.2\),取 11 张;尾随:\(1.021\times(55{,}000\times28)/(5{,}000\times27)\approx11.6\),取 12 张。

3.5 股指期货与组合 β 管理

3.5.1 股票指数

股票指数跟踪一个假想股票组合的价值变化。某时点个股权重等于假想组合投资于该股的比例。指数通常不含股息,跟踪的是资本利得(全收益指数 total return index 例外,它假设股息再投资)。即使假想组合固定,权重也会变:涨得多的股票权重自动上升。价格加权指数由每只股票各一股构成,权重与股价成正比,拆股时要调整;市值加权指数的权重与市值成正比,自动反映拆股、股票股利和增发。

原书表 3.3(2013 年 5 月 14 日 CME 股指期货)中的三个代表:

  • 道琼斯工业平均指数(DJIA):30 只蓝筹股,价格加权;$10 × 指数和 Mini DJIA($5 × 指数),Mini 最活跃。
  • S&P 500:500 只股票,市值加权;$250 × 指数和 Mini S&P 500($50 × 指数),Mini 最活跃。6 月 Mini 前结算 1630.75,最新 1646.00,成交 1,397,446;9 月 1625.00;12 月 1618.50。
  • Nasdaq-100:$100 × 指数和 Mini($20 × 指数)。

股指期货现金结算;S&P 500 合约按交割月第三个星期五的开盘价结算。

3.5.2 对冲合约数

设 \(V_A\) 为组合现值,\(V_F\) 为一张期货的现值(期货价 × 合约乘数)。若组合就是指数本身,对冲比率取 1.0,由 (3.3) 应做空

\[N^*=\frac{V_A}{V_F}.\tag{3.4}\]

例:$5,050,000 的组合复制 S&P 500,期货价 1,010,每张 $250 × 指数,\(V_F=252{,}500\),做空 20 张。

组合不复制指数时,用 CAPM(见 3.7 节)。贝塔(\(\beta\))是组合超额收益对指数超额收益回归的斜率。\(\beta=2\) 的组合,超额收益约为指数的两倍,就需要两倍的合约:

\[\boxed{N^*=\beta\,\frac{V_A}{V_F}}\tag{3.5}\]

这里假设期货到期日接近对冲到期日。与 (3.3) 对比可知 \(\hat h=\beta\):前者是组合一日收益对期货一日收益回归的斜率,后者是组合收益对指数收益回归的斜率,含义一致。

3.5.3 完整数例:检验公式

用 4 个月期 S&P 500 期货对冲未来 3 个月组合价值。指数 1,000,期货价 1,010,组合 $5,050,000,无风险利率 4%/年,指数股息率 1%/年,组合 \(\beta=1.5\)。

\[N^*=1.5\times\frac{5{,}050{,}000}{252{,}500}=30\ \text{张空头}.\]

若 3 个月后指数为 900、期货为 902:

  • 期货盈利 \(30\times(1010-902)\times250=\$810{,}000\);
  • 指数跌 10%,加上 3 个月股息 0.25%,指数投资者收益 \(-9.75\%\);3 个月无风险收益约 1%;
  • CAPM:组合预期收益 \(-\) 无风险收益 \(=1.5\times\)(指数收益 \(-\) 无风险收益),所以组合预期收益 \(=1.0+1.5\times(-9.75-1.0)=-15.125\%\);
  • 组合预期价值(含股息)\(5{,}050{,}000\times(1-0.15125)=\$4{,}286{,}187\),加上期货盈利,总价值 $5,096,187。

原书表 3.4 对五种情景做了同样计算:

3 个月后指数 900 950 1,000 1,050 1,100
3 个月后期货价 902 952 1,003 1,053 1,103
期货头寸盈亏($) 810,000 435,000 52,500 −322,500 −697,500
市场收益 −9.750% −4.750% 0.250% 5.250% 10.250%
组合预期收益 −15.125% −7.625% −0.125% 7.375% 14.875%
组合预期价值($) 4,286,187 4,664,937 5,043,687 5,422,437 5,801,187
头寸总价值($) 5,096,187 5,099,937 5,096,187 5,099,937 5,103,687

无论指数怎么走,头寸总价值都约为 $5,100,000,相当于 3 个月赚了约 1% 的无风险收益。表中的期货价与第 05 章的定价公式 \(F=Se^{(r-q)T}\) 一致(剩 1 个月时 \(900\,e^{0.03/12}\approx902\))。表 3.4 假设股息率可预测、利率不变、组合收益与指数收益完全相关,现实中这些都不完全成立,对冲效果会差一些。

推导拆解:为什么总价值总是约 $5,100,000,即恰好赚到无风险利率?把两条腿用符号写出来。记指数收益(含股息)为 \(R_M\),3 个月无风险收益为 \(r_f\)(约 1%)。 组合腿:按 CAPM,组合收益 \(=r_f+\beta(R_M-r_f)\),所以组合价值 \(=V_A\big[1+r_f+\beta(R_M-r_f)\big]\)。 期货腿:期货价里已经包含了"利率减股息"的持有成本(第 05 章),所以空头期货的盈利近似等于 \(-\beta V_A(R_M-r_f)\),即"指数收益超过无风险收益的部分"被反向抵掉。 两者相加,含 \(\beta(R_M-r_f)\) 的项正好消去,剩下 \(V_A(1+r_f)\approx5{,}050{,}000\times1.01=5{,}100{,}500\)。表中各情景与此相差几千美元,来自期货价取整和期货还剩 1 个月未到期。 这里的要点是:期货空头对冲掉的是超额收益 \(R_M-r_f\),不是总收益 \(R_M\)。这就是为什么对冲后得到的是无风险利率而不是零,也是为什么 3.5.4 节说对冲后组合收益 = 无风险利率 + alpha。

3.5.4 为什么要对冲股票组合

既然对冲后只赚无风险利率,为什么不直接卖掉组合买国债?两个理由:

  1. 对冲者相信自己选股好。 他不确定大盘表现,但相信组合(经 β 调整后)能跑赢市场。指数期货对冲消除市场风险,只留下相对市场的表现——也就是 alpha。
  2. 长期持有、短期保护。 打算长期持有组合,只需要在不确定的市场中获得短期保护,卖出再买回的交易成本太高。

3.5.5 改变组合的 β

继续上例:完全对冲(β → 0)需做空 30 张;把 β 从 1.5 降到 0.75,做空 15 张;把 β 升到 2.0,做多 10 张。一般地,把 β 从 \(\beta\) 调到 \(\beta^*\):

\[\beta>\beta^*:\ \text{做空}\ (\beta-\beta^*)\frac{V_A}{V_F}\ \text{张};\qquad \beta<\beta^*:\ \text{做多}\ (\beta^*-\beta)\frac{V_A}{V_F}\ \text{张}.\]

锁定选股收益的例子。 4 月持有某股票 20,000 股,每股 $100,β 估计为 1.1,用 8 月 S&P 500 期货(价格 1,500,$250 × 指数)对冲 3 个月。\(V_A=2{,}000{,}000\),\(V_F=375{,}000\),

\[N^*=1.1\times\frac{2{,}000{,}000}{375{,}000}=5.87\approx6\ \text{张},\]

7 月平仓。若股价跌到 $90、期货跌到 1,300:股票亏 $200,000,期货赚 \(6\times250\times(1500-1300)=\$300{,}000\),净赚 $100,000——因为该股跌幅小于 β = 1.1 的分散组合应有的跌幅。如果市场上涨而该股涨幅超过 β = 1.1 的组合,同样获利。

3.6 叠加与展期

当对冲到期日晚于所有可用期货的交割日时,就要平掉一个合约、在更晚交割的合约上建立相同头寸,即向前展期(rolling forward),可以多次进行,称为叠加展期(stack and roll)。对 \(T\) 时出售资产的空头对冲:

  • \(t_1\):做空合约 1;
  • \(t_2\):平合约 1,做空合约 2;
  • ……
  • \(t_n\):平合约 \(n-1\),做空合约 \(n\);
  • \(T\):平合约 \(n\)。

例(原书表 3.5)。 2014 年 4 月,公司将在 2015 年 6 月卖出 100,000 桶油,对冲比率 1.0(不做尾随),即期 $89。只有最近 6 个交割月流动性足够。做空 100 张 2014 年 10 月合约;2014 年 9 月展期到 2015 年 3 月合约;2015 年 2 月再展期到 2015 年 7 月合约。

日期 2014-04 2014-09 2015-02 2015-06
2014 年 10 月期货 88.20 87.40
2015 年 3 月期货 87.00 86.50
2015 年 7 月期货 86.30 85.90
即期 89.00 86.00

期货每桶收益

\[(88.20-87.40)+(87.00-86.50)+(86.30-85.90)=1.70 .\]

油价从 $89 跌到 $86,期货只补偿了 $1.70,看似不够。但期货价低于即期价时,本来就不能指望完全补偿;最多只能锁定"假如 2015 年 6 月合约活跃交易时"的期货价。每次展期时新旧合约的价差(这里分别是 87.40→87.00、86.50→86.30)就是展期收益/成本的来源。

金融直觉:把 1.70 重新分组就能看清它的来源: \(1.70=(88.20-85.90)-(87.40-87.00)-(86.50-86.30)=2.30-0.40-0.20\)。 第一项 2.30 是"第一张合约的开仓价"减"最后一张合约的平仓价",反映整条期货曲线的下移。后两项是两次展期的成本:每次展期,空头买回近月(较贵)、卖出远月(较便宜),在反向市场(远月低于近月,本例即是)每次都要吃一点价差;在正常市场则反过来赚价差。 最终的有效售价是 \(86.00+1.70=87.70\),比期初即期价 89 低 1.30。这 1.30 并不是对冲失败,而是期初期货曲线本身就低于即期价,再加上展期时的价差。按 1.0 对冲比率展期,能锁定的是"一串期货价",不是"今天的即期价"。这与 CFA 中把商品期货收益拆成"即期收益 + 展期收益 + 抵押收益"的框架一致。

实践做法。 公司通常每个月都有敞口,使用流动性最好的 1 个月期货:开始时叠加足够的合约覆盖到对冲期末的全部敞口,一个月后全部平仓,滚动到新的 1 个月合约,覆盖剩余敞口,依此类推。

商业快照:德国金属公司(MG)的对冲失败。 1990 年代初,MG 向客户出售了大量 5–10 年期、固定价格的取暖油和汽油供应合约,价格比市价高 6–8 美分;它用短期期货多头滚动展期来对冲。随后油价下跌,期货多头被要求追加保证金,造成巨大的短期现金流出。策略设计者认为这些流出最终会被长期固定价合约的正现金流抵消,但高管与银行对现金消耗感到恐慌,平掉全部对冲头寸,并与客户协议放弃固定价合约,损失 $13.3 亿。教训:对冲端与被对冲端的现金流时间错配会造成流动性问题,规划对冲时必须考虑。

3.7 附录:资本资产定价模型

CAPM(capital asset pricing model)把资产的预期收益与风险联系起来。风险分为两类:系统风险(systematic risk)与整个市场的收益相关,不可分散;非系统风险(nonsystematic risk)是资产特有的,可以通过大组合分散。CAPM 认为预期收益只应取决于系统风险:

\[E(R)=R_F+\beta\,(R_M-R_F),\tag{3A.1}\]

\(R_M\) 是市场组合收益(通常用 S&P 500 等分散化指数近似),\(R_F\) 是无风险收益,\(\beta\) 衡量系统风险,可用历史数据中资产超额收益对市场超额收益回归的斜率估计。\(\beta=0\) 时预期收益等于无风险利率;\(\beta=1\) 时等于市场收益。例:\(R_F=5\%\),\(R_M=13\%\),\(\beta=0.75\),预期收益 \(0.05+0.75\times(0.13-0.05)=11\%\)。

推导所需的假设:(1) 投资者只关心收益的期望与标准差;(2) 两资产收益相关仅因各自与市场相关(单因子);(3) 投资者关注单期收益且期限相同;(4) 可按同一无风险利率借贷;(5) 税收不影响决策;(6) 所有投资者对期望、标准差、相关性的估计相同。这些假设至多近似成立,但 CAPM 是组合管理与业绩评估的常用基准。

对单只股票,CAPM 并不能很好地预测实际收益;对充分分散的组合要好得多。因此"分散组合收益 \(=R_F+\beta(R_M-R_F)\)"可以作为 3.5 节对冲分散组合的基础。组合的 β 等于成分股 β 的加权平均。


量化实战

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

  1. 市场中性 / alpha 组合。 \(N^*=\beta V_A/V_F\) 是股票多头组合用股指期货对冲 β 的标准公式,例如在中国市场用 IF、IH、IC、IM 合约对冲沪深 300、上证 50、中证 500、中证 1000 风格的选股组合;改变 β 的公式用于战术性仓位调整。
  2. 对冲比率就是回归。 最小方差对冲比率、因子暴露(时间序列 β)、配对交易中的对冲比率,在数学上是同一件事——OLS 斜率。估计窗口长度、是否重叠、参数稳定性等问题在三处完全相同(回归方法见第 05 册第 04–07 章)。\(R^2=\rho^2\) 直接告诉你对冲能消除多少方差。
  3. 基差成本必须进回测。 对冲锁定的是 \(F_1+b_2\) 而不是即期价。若股指期货长期贴水(期货低于现货),空头对冲者在基差收敛过程中持续承担成本;回测 alpha 策略时,必须用真实的期货价格序列计算对冲腿盈亏,而不是用"指数收益"代替。
  4. 展期与流动性压力测试。 连续合约构造、展期时点、展期收益(roll yield)是 CTA 和商品期限结构策略的基础;MG 案例提醒必须对对冲腿的保证金现金流做压力测试。
  5. 尾随调整 = 定期再平衡。 系统中需按 \(V_A/V_F\) 定期重算对冲手数,并处理合约张数取整带来的残余敞口。

Python 示例:复现例 3.3 与表 3.4,并做一次"滚动 β 对冲"

import numpy as np
import pandas as pd
import statsmodels.api as sm

# ---- 1. 例3.3 航空燃油交叉对冲(原书表3.2)----
dF = np.array([0.021,0.035,-0.046,0.001,0.044,-0.029,-0.026,-0.029,
               0.048,-0.006,-0.036,-0.011,0.019,-0.027,0.029])
dS = np.array([0.029,0.020,-0.044,0.008,0.026,-0.019,-0.010,-0.007,
               0.043,0.011,-0.036,-0.018,0.009,-0.032,0.023])
sF, sS = dF.std(ddof=1), dS.std(ddof=1)
rho = np.corrcoef(dF, dS)[0, 1]
h = rho * sS / sF
ols = sm.OLS(dS, sm.add_constant(dF)).fit()
print(f"sigma_F={sF:.4f} sigma_S={sS:.4f} rho={rho:.3f} h*={h:.3f} "
      f"OLS斜率={ols.params[1]:.3f} R2={ols.rsquared:.3f}")
print("N* =", round(h * 2_000_000 / 42_000, 1), "张取暖油期货")

# ---- 2. 原书表3.4:β=1.5 组合用 S&P 期货对冲三个月 ----
VA, F0, mult, beta, rf, q = 5_050_000, 1010, 250, 1.5, 0.04, 0.01
N = beta * VA / (F0 * mult)
rows = []
for S in (900, 950, 1000, 1050, 1100):
    F1 = S * np.exp((rf - q) * 1/12)                 # 3个月后期货剩1个月
    fut = N * (F0 - round(F1)) * mult               # 原书期货价取整
    mkt = (S / 1000 - 1) + q / 4                     # 指数收益+股息
    port = rf / 4 + beta * (mkt - rf / 4)            # CAPM
    rows.append((S, round(F1), fut, mkt, port, VA * (1 + port), VA * (1 + port) + fut))
t34 = pd.DataFrame(rows, columns=["指数", "期货", "期货盈亏", "市场收益", "组合收益", "组合价值", "总价值"])
print(f"N*={N:.0f}")
print(t34.round({"市场收益": 5, "组合收益": 5, "组合价值": 0, "总价值": 0}).to_string(index=False))

# ---- 3. 模拟:滚动估计β并对冲,分离 alpha ----
rng = np.random.default_rng(7)
T = 1000                                             # 交易日
m = rng.normal(0.0003, 0.012, T)                     # 指数期货日收益
alpha_d, beta_true = 0.0002, 1.3
p = alpha_d + beta_true * m + rng.normal(0, 0.008, T)  # 组合日收益
win = 120
hedged, betas = [], []
for t in range(win, T):
    b = sm.OLS(p[t-win:t], sm.add_constant(m[t-win:t])).fit().params[1]  # 只用过去数据
    betas.append(b)
    hedged.append(p[t] - b * m[t])                  # 做空 b×V_A/V_F 张期货
hedged = np.array(hedged); raw = p[win:]
ann = lambda x: (x.mean()*252, x.std()*np.sqrt(252))
print("估计β均值=%.3f 标准差=%.3f" % (np.mean(betas), np.std(betas)))
print("未对冲 年化收益=%.4f 年化波动=%.4f" % ann(raw))
print("已对冲 年化收益=%.4f 年化波动=%.4f  与指数相关=%.3f" % (*ann(hedged), np.corrcoef(hedged, m[win:])[0,1]))
print("方差降低比例=%.3f" % (1 - hedged.var()/raw.var()))

关键输出:

sigma_F=0.0313 sigma_S=0.0263 rho=0.928 h*=0.778 OLS斜率=0.778 R2=0.862
N* = 37.0 张取暖油期货
N*=30
  指数   期货      期货盈亏    市场收益     组合收益      组合价值       总价值
 900  902  810000.0 -0.0975 -0.15125 4286188.0 5096188.0
 950  952  435000.0 -0.0475 -0.07625 4664938.0 5099938.0
1000 1003   52500.0  0.0025 -0.00125 5043688.0 5096188.0
1050 1053 -322500.0  0.0525  0.07375 5422438.0 5099938.0
1100 1103 -697500.0  0.1025  0.14875 5801188.0 5103688.0
估计β均值=1.329 标准差=0.064
未对冲 年化收益=-0.0909 年化波动=0.2739
已对冲 年化收益=0.0515 年化波动=0.1307  与指数相关=0.002
方差降低比例=0.772

解读:

  • 第一部分精确复现了原书的 \(\sigma_F,\sigma_S,\rho\) 和 37 张合约,并验证"最小方差对冲比率 = OLS 斜率"、"对冲有效性 = \(R^2=\rho^2\)"(\(0.928^2\approx0.862\))。
  • 第二部分逐列复现表 3.4(组合价值的个位差 1 来自原书对 0.5 的舍入方向)。
  • 第三部分模拟了一个真实 β = 1.3、日 alpha = 2 个基点的组合。在这段样本里市场下跌,未对冲组合年化亏损约 9%;用过去 120 天滚动估计的 β 做空期货之后,收益约 5.2%/年,接近真实 alpha \(0.0002\times252\approx5.0\%\),与指数的相关系数几乎为零,方差降低约 77%(理论值 \(\beta^2\sigma_m^2/(\beta^2\sigma_m^2+\sigma_\varepsilon^2)\approx0.79\))。剩下的波动是不可对冲的特质风险——这正是 alpha 策略要承担的风险。注意代码只用 \(t\) 之前的数据估计 β,避免了前视偏差。

本章小结

对冲方向由敞口决定:资产价格上涨获益者做空期货,下跌获益者做多期货。对冲锁定的是期货价加最终基差 \(F_1+b_2\),剩余风险是基差风险;交叉对冲时基差风险分为"同资产基差"与"资产差异"两部分。合约选择遵循"最近且晚于对冲到期日"的交割月。最小方差对冲比率 \(h^*=\rho\sigma_S/\sigma_F\) 就是回归斜率,对冲有效性为 \(\rho^2\),合约数 \(N^*=h^*Q_A/Q_F\);考虑逐日结算时用尾随公式 \(N^*=\hat hV_A/V_F\)。股指期货对冲合约数 \(N^*=\beta V_A/V_F\),并可把组合 β 调到任意目标,从而分离选股 alpha 与市场 beta。长期敞口可用叠加展期覆盖,但要警惕 MG 式的现金流错配与流动性风险。是否对冲还要考虑股东分散化、竞争者行为与内部沟通。

概念 / 公式 含义
基差 \(b=S-F\) 被对冲资产即期价 − 期货价
有效价格 \(F_1+b_2\) 对冲把价格风险换成基差风险
\(F_1+(S_2^*-F_2)+(S_2-S_2^*)\) 交叉对冲的基差分解
\(h^*=\rho\,\sigma_S/\sigma_F\) 最小方差对冲比率 = \(\Delta S\) 对 \(\Delta F\) 的回归斜率
对冲有效性 \(=\rho^2\) 被消除的方差比例 = \(R^2\)
\(N^*=h^*Q_A/Q_F\) 最优合约数
\(N^*=\hat h\,V_A/V_F\) 尾随对冲(一日收益口径)
\(N^*=\beta\,V_A/V_F\) 股指期货对冲股票组合
\((\beta-\beta^*)V_A/V_F\) 把组合 β 调到 \(\beta^*\) 所需的空头张数
\(E(R)=R_F+\beta(R_M-R_F)\) CAPM
叠加展期 用一串短期合约合成长期对冲;注意展期价差与现金流

练习

基础

  1. 一家企业 3 个月后将出售 5,000 吨铜,应做空头还是多头对冲?若期货价 $7,000/吨,3 个月后平仓时即期 $6,800、期货 $6,850,有效售价是多少?(提示:空头;\(F_1+b_2=7000+(6800-6850)=6950\)。)
  2. 某商品价格季度变化标准差为 $0.65,该商品期货价格季度变化标准差为 $0.81,两者相关系数 0.8。3 个月合约的最优对冲比率是多少?含义是什么?(提示:\(0.8\times0.65/0.81=0.642\);原书 3.6。)
  3. 基金持有价值 $2,000 万、β = 1.2 的组合,用 S&P 500 期货(指数期货价 1,080,乘数 250)对冲。完全对冲需要多少张?把 β 降到 0.6 呢?(提示:约 89 张、约 44 张;原书 3.7。)
  4. 判断正误并说明理由:"若最小方差对冲比率为 1.0,对冲一定是完美的。"(提示:错;\(h^*=1\) 只要求 \(\rho\sigma_S=\sigma_F\),\(\rho<1\) 时仍有残余风险。原书 3.13。)
  5. 为什么基差意外走强对空头对冲者有利、对多头对冲者不利?

进阶

  1. 证明:在最小方差对冲比率下,对冲后头寸方差为 \(\sigma_S^2(1-\rho^2)\);并说明当 \(\rho=0\) 时最小方差对冲就是不对冲。
  2. 某组合 β 估计值的标准误为 0.1。若按估计值 \(\hat\beta\) 而非真实 β 对冲,残余的市场风险方差是多少?据此讨论 β 估计误差对 alpha 策略的影响。(提示:残余市场暴露 \((\beta-\hat\beta)\),方差约 \(0.01\,\sigma_m^2\)。)
  3. 修改"量化实战"第三部分:把滚动窗口改为 20、60、250 天,比较对冲后波动率和与指数相关性的变化,解释窗口长度的取舍。
  4. 设计一个铜的多期展期对冲方案:企业未来 12 个月每月需要 100 吨铜,只有最近 3 个月合约流动性足够。写出每月的开仓与平仓安排,并讨论若铜价持续下跌需要准备多少追保资金(原书 3.32 思路)。
  5. 用 CAPM 说明:一位基金经理的 β = 0.2,年收益 8%,同期市场收益 20%、无风险利率 5%,他的表现好吗?(提示:CAPM 预期收益 \(5\%+0.2\times15\%=8\%\),表现恰好等于预期,没有 alpha。原书 3.28 思路。)

原书推荐习题: 3.6、3.16、3.26(最小方差对冲比率与合约数,含尾随);3.7、3.30(股指期货对冲与调整 β);3.13、3.14("对冲比率为 1"与"完美对冲"的区别);3.10、3.25(基差变化的影响);3.29(用数据回归计算对冲比率,适合编程);3.31(完整的股指对冲情景分析);3.32(多期展期对冲与保证金管理)。

原书对照

本章小节 原书章节 PDF 页码
3.1 对冲的基本原则 3.1 Basic Principles p.72–74
3.2 该不该对冲 3.2 Arguments For and Against Hedging(表 3.1、商业快照 3.1) p.74–77
3.3 基差风险 3.3 Basis Risk(例 3.1、3.2) p.77–81
3.4 交叉对冲 3.4 Cross Hedging(表 3.2、例 3.3、尾随对冲) p.81–85
3.5 股指期货 3.5 Stock Index Futures(表 3.3、3.4) p.85–91
3.6 叠加与展期 3.6 Stack and Roll(表 3.5、商业快照 3.2) p.91–93
3.7 CAPM 第 3 章附录 Capital Asset Pricing Model p.98–99
小结、习题 Summary、Practice Questions 3.1–3.23、Further Questions 3.24–3.32 p.93–98