第 03 章 期货套期保值策略
学习目标
读完本章,你应当能够:
- 根据敞口方向判断该做空头套期保值还是多头套期保值,并说清楚对冲锁定的到底是什么价格。
- 定义基差(basis),推导"有效价格 \(=F_1+b_2\)",把交叉对冲下的基差风险分解为两部分,并按经验法则选择合约月份。
- 推导最小方差对冲比率 \(h^*=\rho\,\sigma_S/\sigma_F\),理解它就是回归斜率、对冲有效性就是 \(R^2=\rho^2\),并计算最优合约数(含尾随调整)。
- 用股指期货对冲股票组合:\(N^*=\beta V_A/V_F\);把组合 β 调到任意目标;理解如何借此分离选股 alpha。
- 设计叠加展期(stack and roll)方案,并从德国金属公司案例认识对冲中的流动性风险。
- 掌握 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 基差的定义
(金融期货中有时反过来定义为期货价减即期价。)如果被对冲资产与期货标的相同,到期时基差应为零(第 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\),有效价格
多头对冲者在 \(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\) 时期货标的资产的价格,则
第一项是即使两资产相同也存在的基差,第二项来自两资产的差异。交叉对冲时基差风险更大。
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\)。有效价格
共收到 \(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,有效价格
共 $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\),其方差
推导拆解:这个式子来自方差的展开。把 \(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\),得
\(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^*\) 代回:
也就是回归的 \(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\) 单位:
例 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\),
CME 取暖油期货每张 42,000 加仑,
(本表的负号在精读笔记抽取时曾丢失,本教材已用 \(\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)\),次日所需合约数为
其中 \(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) 应做空
例:$5,050,000 的组合复制 S&P 500,期货价 1,010,每张 $250 × 指数,\(V_F=252{,}500\),做空 20 张。
组合不复制指数时,用 CAPM(见 3.7 节)。贝塔(\(\beta\))是组合超额收益对指数超额收益回归的斜率。\(\beta=2\) 的组合,超额收益约为指数的两倍,就需要两倍的合约:
这里假设期货到期日接近对冲到期日。与 (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\)。
若 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 为什么要对冲股票组合
既然对冲后只赚无风险利率,为什么不直接卖掉组合买国债?两个理由:
- 对冲者相信自己选股好。 他不确定大盘表现,但相信组合(经 β 调整后)能跑赢市场。指数期货对冲消除市场风险,只留下相对市场的表现——也就是 alpha。
- 长期持有、短期保护。 打算长期持有组合,只需要在不确定的市场中获得短期保护,卖出再买回的交易成本太高。
3.5.5 改变组合的 β
继续上例:完全对冲(β → 0)需做空 30 张;把 β 从 1.5 降到 0.75,做空 15 张;把 β 升到 2.0,做多 10 张。一般地,把 β 从 \(\beta\) 调到 \(\beta^*\):
锁定选股收益的例子。 4 月持有某股票 20,000 股,每股 $100,β 估计为 1.1,用 8 月 S&P 500 期货(价格 1,500,$250 × 指数)对冲 3 个月。\(V_A=2{,}000{,}000\),\(V_F=375{,}000\),
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 |
期货每桶收益
油价从 $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 认为预期收益只应取决于系统风险:
\(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 节对冲分散组合的基础。组合的 β 等于成分股 β 的加权平均。
量化实战
本章内容在量化交易中的用法
- 市场中性 / alpha 组合。 \(N^*=\beta V_A/V_F\) 是股票多头组合用股指期货对冲 β 的标准公式,例如在中国市场用 IF、IH、IC、IM 合约对冲沪深 300、上证 50、中证 500、中证 1000 风格的选股组合;改变 β 的公式用于战术性仓位调整。
- 对冲比率就是回归。 最小方差对冲比率、因子暴露(时间序列 β)、配对交易中的对冲比率,在数学上是同一件事——OLS 斜率。估计窗口长度、是否重叠、参数稳定性等问题在三处完全相同(回归方法见第 05 册第 04–07 章)。\(R^2=\rho^2\) 直接告诉你对冲能消除多少方差。
- 基差成本必须进回测。 对冲锁定的是 \(F_1+b_2\) 而不是即期价。若股指期货长期贴水(期货低于现货),空头对冲者在基差收敛过程中持续承担成本;回测 alpha 策略时,必须用真实的期货价格序列计算对冲腿盈亏,而不是用"指数收益"代替。
- 展期与流动性压力测试。 连续合约构造、展期时点、展期收益(roll yield)是 CTA 和商品期限结构策略的基础;MG 案例提醒必须对对冲腿的保证金现金流做压力测试。
- 尾随调整 = 定期再平衡。 系统中需按 \(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 |
| 叠加展期 | 用一串短期合约合成长期对冲;注意展期价差与现金流 |
练习
基础
- 一家企业 3 个月后将出售 5,000 吨铜,应做空头还是多头对冲?若期货价 $7,000/吨,3 个月后平仓时即期 $6,800、期货 $6,850,有效售价是多少?(提示:空头;\(F_1+b_2=7000+(6800-6850)=6950\)。)
- 某商品价格季度变化标准差为 $0.65,该商品期货价格季度变化标准差为 $0.81,两者相关系数 0.8。3 个月合约的最优对冲比率是多少?含义是什么?(提示:\(0.8\times0.65/0.81=0.642\);原书 3.6。)
- 基金持有价值 $2,000 万、β = 1.2 的组合,用 S&P 500 期货(指数期货价 1,080,乘数 250)对冲。完全对冲需要多少张?把 β 降到 0.6 呢?(提示:约 89 张、约 44 张;原书 3.7。)
- 判断正误并说明理由:"若最小方差对冲比率为 1.0,对冲一定是完美的。"(提示:错;\(h^*=1\) 只要求 \(\rho\sigma_S=\sigma_F\),\(\rho<1\) 时仍有残余风险。原书 3.13。)
- 为什么基差意外走强对空头对冲者有利、对多头对冲者不利?
进阶
- 证明:在最小方差对冲比率下,对冲后头寸方差为 \(\sigma_S^2(1-\rho^2)\);并说明当 \(\rho=0\) 时最小方差对冲就是不对冲。
- 某组合 β 估计值的标准误为 0.1。若按估计值 \(\hat\beta\) 而非真实 β 对冲,残余的市场风险方差是多少?据此讨论 β 估计误差对 alpha 策略的影响。(提示:残余市场暴露 \((\beta-\hat\beta)\),方差约 \(0.01\,\sigma_m^2\)。)
- 修改"量化实战"第三部分:把滚动窗口改为 20、60、250 天,比较对冲后波动率和与指数相关性的变化,解释窗口长度的取舍。
- 设计一个铜的多期展期对冲方案:企业未来 12 个月每月需要 100 吨铜,只有最近 3 个月合约流动性足够。写出每月的开仓与平仓安排,并讨论若铜价持续下跌需要准备多少追保资金(原书 3.32 思路)。
- 用 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 |