量化交易中文教材

第 06 章 利率期货

对应原书:Hull《Options, Futures, and Other Derivatives》第 9 版(Global Edition)第 6 章 Interest Rate Futures。

学习目标

读完本章,你应当能够:

  1. 区分 actual/actual、30/360、actual/360 三种计息天数惯例,完成国库券贴现报价、国债净价与全价之间的换算。
  2. 说清国债期货的交割机制:转换因子(conversion factor)怎么算、最便宜可交割债券(CTD)怎么挑、空方拥有哪些隐含期权。
  3. 在已知 CTD 和交割日的前提下,按"现金价 → 扣收入现值 → 复利到期 → 扣应计利息 → 除以转换因子"的流程算出国债期货理论报价。
  4. 理解欧洲美元期货的报价与 25 美元/基点规则,知道为什么期货利率高于远期利率,会用凸性调整公式 \(\frac12\sigma^2T_1T_2\) 修正,并用调整后的利率自举零息曲线。
  5. 用基于久期的对冲比率 \(N^*=PD_P/(V_FD_F)\) 计算对冲合约数,并清楚它只对收益率曲线平行移动有效。

读前导读

这一章在解决什么问题。 用期货管理利率风险时,要先算清三件事:合约值多少(报价和计息惯例)、期货理论价是多少(国债期货要先确定交割哪只债券)、要做多少张(久期对冲)。CFA 三级你已经接触过国债期货的转换因子、CTD 和"用 BPV 计算对冲合约数",CFA 一级学过天数惯例和贴现率报价,这部分可以快读。

本章比 CFA 深的地方有两处。第一,6.2.5 节给出国债期货理论价的完整计算流程,本质是把第 05 章的 \(F_0=(S_0-I)e^{rT}\) 套到"已知 CTD"的债券上,再处理应计利息和转换因子;反过来解出 \(r\) 就是隐含回购利率,这是国债期货基差交易的核心指标。第二,6.3.4–6.3.5 节的凸性调整:期货利率和远期利率不相等,期限越长差得越多,大约与期限的平方成正比。CFA 基本不讲这一点,但构建利率曲线时忽略它,5 年以上会出现几十个基点的系统性偏差。凸性调整公式本身来自后面的利率模型,本章只要求会用,并理解它为什么是"减"。

需要先想起来的数学。

  • 离散复利贴现与几何级数。 \(\sum_{i=1}^{n}\frac{c}{(1+k)^i}=\frac{c}{k}\big(1-(1+k)^{-n}\big)\),这就是年金现值公式,转换因子的计算用的就是它。例:\(c=5\),\(k=3\%\),\(n=40\),和约为 115.57;加上本金现值 \(100/1.03^{40}\approx30.66\),得 146.23。见 第 00 册第 04 章 级数与收敛。
  • 不同报价口径之间的换算。 贴现率、单利、季度复利、连续复利描述的是同一件事,换算的通用方法是"先算出期间增长倍数,再取对数除以年数"。例:季度利率 1.5%,期间 90 天,连续复利年利率 \(=\frac{365}{90}\ln1.015\approx6.04\%\)。见第 04 章 4.2 节。
  • 久期作为导数。 \(\frac{dP}{dy}\approx-PD\)(连续复利下)。所以 \(\ln P\) 对 \(y\) 的导数是 \(-D\):久期越大,收益率变化时价格的百分比变化越大。6.2.3 节判断 CTD 和 6.4 节推导对冲比率都要用到。见 第 00 册第 02 章 导数与泰勒展开。
  • 方差随时间累积。 若短期利率每年变化的标准差为 \(\sigma\),\(T\) 年后利率的方差约为 \(\sigma^2T\)。凸性调整中的 \(\sigma^2T_1T_2\) 就是这类"方差 × 时间"的量。见 第 00 册第 07 章 概率中的分析工具。

怎么读这一章。 必读:6.2.2–6.2.3(转换因子与 CTD)、6.2.5(理论价流程,建议跟着例 6.2 算一遍)、6.3.4–6.3.5(期货利率与远期利率、凸性调整)、6.4(久期对冲)。6.1 是惯例,需要时回查。6.2.1 合约规格和 6.3.1–6.3.3 欧洲美元合约细节可以浏览,注意它已被 SOFR 期货取代。6.3.6 自举是第 04 章方法的重复。量化实战中代码 B 的第 3 部分(非平行移动下久期对冲失效)最值得看。


6.0 本章在全书中的位置

前几章讨论的期货标的大多是股票指数、商品或外汇,它们的"价格"很直观。利率期货的标的是"利率"或"对利率敏感的债券",于是多了一层麻烦:同一笔现金流在不同市场有不同的计息方式和报价方式,期货合约又常常允许交割多种债券。本章先把这些惯例理清(6.1 节),然后介绍美国最有代表性的两类利率期货:

  • 国债期货(Treasury bond futures):长端利率工具,标的是一篮子可交割的长期国债。
  • 欧洲美元期货(Eurodollar futures):短端利率工具,标的是未来 3 个月期的美元同业利率(LIBOR)。

最后用本册第 4 章的久期(duration)概念,说明如何用利率期货对冲利率风险。世界上许多利率期货(包括中国金融期货交易所的国债期货、各国的 3 个月利率期货)都仿照这两种合约设计,因此本章的方法可以直接迁移。


6.1 计息天数与报价惯例

6.1.1 计息天数惯例

**计息天数惯例(day count convention)**写成 X/Y 的形式:X 规定两个日期之间的天数怎么数,Y 规定参考期(例如两次付息之间)的总天数怎么数。两个日期之间累计的利息为

\[ \text{利息}=\frac{\text{两日期之间的天数}}{\text{参考期的天数}}\times\text{参考期内应得的利息}. \]

美国常用三种惯例:

  1. actual/actual (in period):美国国债使用。两边都数实际日历天数。 例:面值 100、票息率 8%、付息日为 3 月 1 日和 9 月 1 日(每次付 4)。从 3 月 1 日到 7 月 3 日实际有 124 天,参考期 3 月 1 日到 9 月 1 日实际有 184 天,应计利息为 \(\frac{124}{184}\times4=2.6957\)。
  2. 30/360:美国公司债和市政债使用。每月按 30 天、每年按 360 天数。同一张债券,3 月 1 日到 9 月 1 日算 180 天,3 月 1 日到 7 月 3 日算 \(4\times30+2=122\) 天,应计利息为 \(\frac{122}{180}\times4=2.7111\)。
  3. actual/360:美国货币市场工具使用。参考期固定为 360 天,所以 90 天的利息正好是报价利率的 1/4,而一整年(365 天)的利息是报价利率的 \(365/360\) 倍。

国际上还有差异:澳大利亚、加拿大、新西兰的货币市场工具用 actual/365;LIBOR 除英镑(actual/365)外都用 actual/360;欧元和英镑债券通常用 actual/actual。

Business Snapshot 6.1 计息天数可能具有欺骗性。 设 2015 年 2 月 28 日到 3 月 1 日之间,你可以在票息相同、报价相同的一张美国国债和一张美国公司债之间二选一,应该选公司债。按 30/360,2 月 28 日到 3 月 1 日算 3 天;按 actual/actual 只有 1 天。持有公司债这两天赚到的利息约是国债的三倍。

这个例子提醒我们:做固定收益数据处理或回测时,月末、闰年、2 月这几个位置最容易出错,应计利息算错会在收益序列里留下有规律的"毛刺"。

6.1.2 美国国库券的报价:贴现率

国库券(Treasury bill)用贴现率(discount rate)报价:报价是利息占面值(而不是买入价)的百分比,并按 360 天年化。设 \(P\) 为报价,\(Y\) 为每 100 面值的现金价格,\(n\) 为剩余日历天数,则

\[ P=\frac{360}{n}\,(100-Y). \]

例:91 天国库券报价 8,面值 100,91 天内的利息是 \(100\times0.08\times\frac{91}{360}=2.0222\),现金价格为 \(100-2.0222=97.9778\)。真实的期间收益率是 \(\frac{2.0222}{97.9778}=2.064\%\),比 \(8\%\times91/360=2.022\%\) 高——因为分母是买入价而不是面值。又如 90 天国库券现金价格为 99,则报价为 \(\frac{360}{90}\times1=4\)。

贴现率报价不是收益率,更不是连续复利利率。把它转换成连续复利零息利率(本册第 4 章)后才能和其他利率比较,这是原书习题 6.8 的内容。

推导拆解:从报价到连续复利零息率分三步,以 91 天、报价 8 为例。 第一步,由报价得现金价格:\(Y=100-P\cdot n/360=97.9778\)。 第二步,算期间增长倍数:持有到期收回 100,倍数为 \(100/Y=1.02064\)。 第三步,换成连续复利年利率:\(R=\frac{365}{n}\ln\frac{100}{Y}=\frac{365}{91}\ln1.02064\approx8.19\%\)。这里用 365 是因为本册的连续复利利率按实际日历年计;取 \(\ln\) 是因为 \(e^{RT}=\) 增长倍数。 结果比报价 8% 高出约 19 个基点,来源有两个:分母从面值换成了买入价,年化天数从 360 换成了 365。数据清洗时如果直接把国库券报价当作无风险利率,就会系统性低估。

6.1.3 美国国债的报价:净价与全价

**国债(Treasury bond)**以美元和 1/32 美元报价,针对面值 100。报价 90-05 表示 \(90\tfrac{5}{32}=90.15625\),面值 10 万美元的债券报价为 90,156.25 美元。

报价称为净价(clean price),买方实际支付的是全价(dirty price):

\[ \text{现金价格(全价)}=\text{报价(净价)}+\text{自上一付息日以来的应计利息(accrued interest)}. \]

例:2015 年 3 月 5 日,票息 11%、2038 年 7 月 10 日到期的国债报价 95-16,即 95.50。上一次付息在 2015 年 1 月 10 日,下一次在 2015 年 7 月 10 日,两者相隔实际 181 天;1 月 10 日到 3 月 5 日为 54 天;每次付息 5.50。应计利息为 \(\frac{54}{181}\times5.50=1.64\),现金价格为 \(95.50+1.64=97.14\),面值 10 万美元对应 97,140 美元。

为什么市场习惯报净价?因为全价在每个付息日会"跳水"一次(付息后应计利息归零),而净价只反映利率变化带来的价格变化,更便于比较。量化系统里要牢记:估值和收益计算用全价,行情显示用净价。


6.2 国债期货

6.2.1 合约规格与报价

CME Group 的国债期货允许空方交割在交割月第一天剩余期限 15–25 年的任一国债;2010 年推出的超长期国债期货(Ultra T-bond)可交割期限 25 年以上的债券。10 年期国债票据期货(10-year Treasury note futures)可交割剩余期限 6.5–10 年的国债;5 年期、2 年期票据期货交割剩余期限约 5 年、2 年(且原始期限小于 5.25 年)的票据。每张合约交割面值 10 万美元(2 年期为 20 万美元)。

报价精度各不相同,这是交易系统中常见的坑:

合约 报价精度 例子
国债、超长国债期货 1/32 144-20 = \(144\tfrac{20}{32}=144.625\)
10 年期票据期货 半个 1/32 131-025 = \(131\tfrac{2.5}{32}=131.078125\)
5 年、2 年期票据期货 1/4 个 1/32 123-307 = \(123\tfrac{30.75}{32}=123.9609375\);123-122 = \(123\tfrac{12.25}{32}=123.3828125\)

原书表 6.1 给出了 2013 年 5 月 14 日 CME 各利率期货的行情:10 年期票据期货当日成交约 115 万张,是最活跃的合约;欧洲美元期货报价从 99.725(2013 年 6 月合约)递减到 96.760(2019 年 12 月合约),说明当时利率期限结构向上倾斜。

6.2.2 转换因子

可交割的债券票息、期限各不相同,价值差别很大。为了让它们"可比",交易所给每只可交割债券一个转换因子(conversion factor, CF)。空方交割某债券时,适用的报价等于转换因子乘以最近结算价,每 100 面值实际收到的现金为

\[ \text{收到的现金}=(\text{最近结算价}\times\text{CF})+\text{应计利息}. \]

例:结算价 90-00,CF = 1.3800,应计利息 3,则每 100 面值收到 \(1.38\times90+3=127.20\),一张合约(面值 10 万)收 127,200 美元。

定义:转换因子等于假设所有期限利率均为 6%(半年复利) 时,该债券在交割月第一天每 1 美元本金的报价(净价)。计算时,债券剩余期限和付息时间向下取整到最近的 3 个月:

  • 取整后若恰为若干个 6 个月,就假设第一次付息在 6 个月后;
  • 若多出 3 个月,就假设第一次付息在 3 个月后,并扣除应计利息。

例 1:票息 10%、剩余 20 年 2 个月的债券,取整为恰好 20 年,按每半年 3% 折现:

\[ \sum_{i=1}^{40}\frac{5}{1.03^i}+\frac{100}{1.03^{40}}=146.23, \]

所以 CF = 1.4623。

例 2:票息 8%、剩余 18 年 4 个月的债券,取整为 18 年 3 个月。先把现金流折现到 3 个月后的时点(那时恰好付一次息 4):

\[ 4+\sum_{i=1}^{36}\frac{4}{1.03^i}+\frac{100}{1.03^{36}}=125.83. \]

3 个月的利率为 \(\sqrt{1.03}-1=1.4889\%\),再折回今天得 \(125.83/1.014889=123.99\);减去 3 个月的应计利息 2.0,得 121.99,所以 CF = 1.2199。

推导拆解:例 2 的三个细节。 为什么 3 个月利率是 \(\sqrt{1.03}-1\):半年利率 3% 意味着半年增长倍数 1.03;连续两个 3 个月合成半年,所以 3 个月的倍数 \(x\) 满足 \(x^2=1.03\),\(x=\sqrt{1.03}\)。这和第 04 章"计息频率只是单位"的思路一样。 为什么第一项是"4 +":取整后的时间线是"3 个月后付第一次息,之后每半年一次,共 36 次,最后一次连本金"。站在 3 个月后那一刻,当期的 4 不用贴现,后面 36 期按每期 3% 贴现。原式的 \(\sum_{i=1}^{36}\) 正是这 36 期。 为什么要减 2.0:转换因子定义为净价。站在今天,距下次付息 3 个月,即上次付息在 3 个月前,已累计半期票息 \(4\times\frac{3}{6}=2\)。前面算出的 123.99 是全价,减去应计利息才是净价。

直觉:转换因子就是"这只债券值多少份 6% 票息的标准债券"。如果市场收益率恰好处处等于 6%,所有可交割债券按 CF 折算后完全等价;市场一旦偏离 6%,折算就会出现系统性偏差,CTD 也由此产生。

6.2.3 最便宜可交割债券(CTD)

空方交割一只债券,收到 \((\text{结算价}\times\text{CF})+\text{应计利息}\),而买入这只债券要付 \(\text{报价}+\text{应计利息}\)。两者相减,应计利息抵消,所以**最便宜可交割债券(cheapest-to-deliver bond, CTD)**是使

\[ \text{债券报价}-(\text{最近结算价}\times\text{CF}) \]

最小的那只债券。

例 6.1:结算价 93-08 = 93.25,空方可在三只债券中选择:

债券 报价 CF 交割成本 = 报价 − 93.25 × CF
1 99.50 1.0382 2.69
2 143.50 1.5188 1.87
3 119.75 1.2615 2.12

CTD 是债券 2。

什么决定 CTD? 经验规律是:

  • 收益率高于 6% 时,转换因子体系倾向于让低票息、长期限债券成为 CTD;
  • 收益率低于 6% 时,倾向于高票息、短期限债券;
  • 收益率曲线向上倾斜时倾向长期限债券,向下倾斜时倾向短期限债券。

原因在于久期。CF 是用 6% 折现得到的;当市场收益率高于 6%,所有债券实际价格都低于"按 6% 算的价格",而久期越长的债券(低票息、长期限)跌得越多,也就是"被 CF 高估"得越多,因此用它交割最划算。收益率低于 6% 时道理相反。本章量化实战部分会用模拟数据把这条规律跑出来。

推导拆解:用导数把这段话写精确。空方要找的是"每份标准债券最便宜"的那只,即 \(P_i(y)/\text{CF}_i\) 最小的债券(交割成本最小等价于这个比值最小)。在 \(y=6\%\) 时,按定义 \(P_i(6\%)/\text{CF}_i=1\) 对所有债券都相同(忽略取整与应计利息)。 收益率从 6% 移动到 \(y\) 时,比值的对数变化为 \(\ln\frac{P_i(y)}{\text{CF}_i}\approx-D_i\,(y-6\%)\),因为 \(\frac{d\ln P}{dy}=\frac{1}{P}\frac{dP}{dy}=-D\)(这里用了链式法则:\(\ln P\) 对 \(y\) 求导 \(=\frac1P\cdot P'\))。 \(y>6\%\) 时,\(y-6\%>0\),\(D_i\) 越大,比值降得越多,于是久期最长(低票息、长期限)的债券最便宜。\(y<6\%\) 时符号反过来,久期最短的债券最便宜。 这也解释了为什么 6% 附近 CTD 最容易切换:所有比值都挤在 1 附近,曲线稍有移动排序就会变。空方的交割券选择权在这里最值钱,和期权在平值附近时间价值最大是一个道理。

6.2.4 空方的交割期权与通配符

国债期货的空方拥有三类选择权:

  1. 交割时点选择:可在交割月内任一天交割;
  2. 交割券选择:可在多只可交割债券中挑选(即 CTD 选择权);
  3. 通配符期权(wild card play)。

Business Snapshot 6.2 通配符期权。 CME 国债期货的结算价取芝加哥时间下午 2:00 的价格,但现货国债在此之后继续交易,空方可以在当天晚些时候发出交割意向通知,而发票价格仍按当日 2:00 的结算价计算。如果下午 2:00 之后债券价格下跌,空方可以在比如 3:45 发出通知,并在现货市场低价买入债券交割;如果没有下跌,空方就保留头寸,第二天再用同样的策略。

这些选择权都在空方手中,都不是免费的,它们的价值体现为期货价格偏低。这也是国债期货"基差交易(basis trade)"的核心:持有"现券多头 + 期货空头"(做多基差)的一方站在空方位置,拥有这些交割期权;期货多头则是期权的卖方,所以期货价格要比不含期权的理论价格低一些作为补偿。基差交易者赚取的,一部分是持有收益,一部分正是这些期权的价值。

6.2.5 国债期货价格的确定

由于交割时点和交割券都不确定,国债期货的精确理论价格很难计算。若假设 CTD 和交割日已知,国债期货就成了"标的为提供已知收入的可交易证券"的期货,可以直接套用本册第 5 章的式 (5.2):

\[ F_0=(S_0-I)\,e^{rT}, \tag{6.1} \]

其中 \(S_0\) 为债券现金价格(全价),\(I\) 为期货存续期内票息的现值,\(T\) 为期货到期时间,\(r\) 为对应期限的无风险利率。实务中估计 CTD 时,分析师通常假设期货到期时的零息利率等于今天的远期利率,再看届时哪只债券最便宜。

例 6.2(完整计算流程):已知 CTD 为票息 12%、CF = 1.6000 的债券;交割在 270 天后;上次付息在 60 天前,下次付息在 122 天后,再下一次在 305 天后;利率期限结构平坦,连续复利利率为 10%;债券报价 115。

  1. 算现金价格:\(115+\frac{60}{60+122}\times6=116.978\)。
  2. 算收入现值:122 天(0.3342 年)后收到票息 6,现值为 \(6e^{-0.1\times0.3342}=5.803\)。
  3. 复利到期货到期:期货存续 270 天(0.7397 年),以该债券为标的的现金期货价格为 \((116.978-5.803)\,e^{0.1\times0.7397}=119.711\)。
  4. 扣除交割时的应计利息:交割时距上次付息(第 122 天)已过 148 天,距再下次付息还有 35 天,所以报价形式的期货价格为 \(119.711-6\times\frac{148}{148+35}=114.859\)。
  5. 除以转换因子:按 CF 定义,1.6 份标准债券等价于 1 份这只 12% 债券,故期货报价为 \(114.859/1.6=71.79\)。

记住口诀:全价 → 减收入现值 → 无风险复利 → 减交割时应计利息得净价 → 除以 CF。这条流程在实务中就是计算国债期货"理论基差"和"隐含回购利率(implied repo rate)"的骨架:把式 (6.1) 反过来,用市场期货价倒推出 \(r\),就得到隐含回购利率;它高于实际回购利率时,"买现券卖期货"有利可图。

推导拆解:隐含回购利率怎么反推?把 5 步流程倒着走。给定市场期货报价 \(F^{mkt}\):先乘 CF、加回交割时的应计利息,得到现金期货价 \(F_{cash}\);再由 \(F_{cash}=(S_0-I)e^{rT}\) 两边取对数,\(r_{\text{implied}}=\frac1T\ln\frac{F_{cash}}{S_0-I}\)。严格说 \(I\) 本身也用 \(r\) 贴现,需要迭代,但影响很小。 金融直觉:隐含回购利率就是"买现券、卖期货、持有到交割"这笔组合的年化收益率。它和你能借到钱的实际回购利率比较:前者更高,说明借钱买券、卖期货能赚利差(正向套利);前者更低,则反向。实务中隐含回购利率最高的那只债券通常就是 CTD,这比"交割成本最小"的判别更准确,因为它考虑了持有期的票息和融资成本。


6.3 欧洲美元期货

6.3.1 合约定义与结算

**欧洲美元(Eurodollar)**是存放在美国境外银行(包括美国银行的海外分支)的美元,欧洲美元利率就是银行间欧洲美元存款利率,基本等同于美元 LIBOR。

3 个月欧洲美元期货是对未来某个 3 个月期间、100 万美元本金上将支付利息的期货。到期月为 3、6、9、12 月,最长可达 10 年;近期合约也有其他月份。

  • 最后交易日:交割月第三个星期三之前两个营业日(例如 2013 年 6 月合约为 2013 年 6 月 17 日)。
  • 结算方式:之前按常规每日结算;最后交易日上午 11 点的最终结算价为 \(100-R\),\(R\) 为当日 3 个月 LIBOR 定盘利率(季度复利、actual/360)。若 2013 年 6 月 17 日 LIBOR 为 0.75%,最终结算价为 99.250。

6.3.2 25 美元/基点规则

报价变动 1 个基点(0.01)对应每张合约盈亏 25 美元。原因是:利率变动 0.01% 使 100 万美元 3 个月的利息变化

\[ 1{,}000{,}000\times0.0001\times0.25=25\ \text{美元}. \]

例:结算价从 99.725 变为 99.685,下降 4 个基点,多头每张亏 \(4\times25=100\) 美元。

由于报价 \(=100-\text{期货利率}\),多头在利率下降时获利,空头在利率上升时获利。这和国债期货的方向一致:利率涨,价格跌。

交易所把合约价格定义为

\[ 10{,}000\times\big[100-0.25\times(100-Q)\big], \tag{6.2} \]

\(Q\) 为报价。报价 99.725 对应 999,312.5 美元,99.615 对应 999,037.5 美元,两者相差 275 美元,正好等于 11 个基点 × 25 美元。原书表 6.2 列出了 2013 年 5 月 13 日至 6 月 17 日的逐日价格,累计变动 −0.110、累计亏损 275 美元,与此一致。

6.3.3 用欧洲美元期货锁定利率

例 6.3:投资者想锁定 9 月第三个星期三前两天开始的 3 个月期、1 亿美元本金的投资利率。9 月合约报价 96.50,可锁定 3.5%。他买入 100 张合约(\(10^8/10^6=100\))。

  • 若届时 3 个月利率为 2.6%,最终结算价 97.40,期货盈利 \(100\times25\times(9740-9650)=225{,}000\) 美元;
  • 投资利息为 \(10^8\times0.25\times0.026=650{,}000\) 美元;
  • 合计 875,000 美元,恰好是 3.5% 下的利息 \(10^8\times0.25\times0.035\)。

对冲并不完美,原因有两个:(a) 期货每日结算,盈亏分布在整个持有期;(b) 期货在合约到期时(期间开始时)就最终结算,而投资利息要到 3 个月后才收到。对 (b) 的近似处理是把合约数按 \(1/(1+0.035\times0.25)=0.9913\) 缩减,买 99 张而不是 100 张。这和本册第 3 章讲过的"尾随对冲(tailing the hedge)"思想相同:今天到手的 1 美元比 3 个月后到手的 1 美元多值一点利息。

由表 6.1 的前结算价可以读出:从 2013-06-17、2013-09-16、2013-12-16、2015-12-14、2017-12-18、2019-12-16 开始的 3 个月期货利率分别为 0.275%、0.295%、0.325%、0.900%、2.270%、3.324%,期限结构明显向上倾斜。类似合约还有 CME 的 Euroyen,以及 LIFFE(Euronext)的 3 个月 Euribor 和 Euroswiss 期货。

现状补充:LIBOR 已于 2023 年 6 月后停止美元主要期限报价,CME 的欧洲美元期货已转换为 3 个月 SOFR 期货。SOFR 期货按参考季度内每日 SOFR 的复利结算("后置"计算),而不是在期初观察一个定盘利率,但报价方式 \(100-R\)、基点价值和本节的对冲思路都可以直接迁移。

6.3.4 远期利率与期货利率

欧洲美元期货和远期利率协议(FRA,本册第 4 章)都锁定未来某期间的利率。期限较短(约 1 年内)时可以视两者相等;期限较长时差异显著,必须调整。

考虑 \(T_1\) 到 \(T_2\) 期间的利率。欧洲美元期货每日结算,最终结算在 \(T_1\);FRA 不每日结算,在 \(T_2\) 结算(或在 \(T_1\) 支付 \(T_2\) 收益的现值)。设一份合约让你收取 \(R_M-R_F\),\(R_M\) 为实现的市场利率,\(R_F\) 为合约固定利率。两点差异:

  1. 每日结算 vs. 在 \(T_1\) 一次结算。每日结算使你在利率高时拿到现金(可以按高利率再投资),在利率低时付出现金(可以按低利率融资)。这对收 \(R_M\) 的一方有利,所以市场会把每日结算版本的 \(R_F\) 定得更高。反过来说,从每日结算改成 \(T_1\) 一次结算,\(R_F\) 会降低。(论证方法与本册第 5 章 5.8 节比较远期与期货价格的思路相同。)
  2. 在 \(T_1\) 结算 vs. 在 \(T_2\) 结算。\(R_M\) 高时收益为正,但利率高使"推迟到 \(T_2\) 才拿钱"的代价较大;\(R_M\) 低时收益为负,但利率低使"推迟付款"的好处较小。所以收 \(R_M\) 的一方更愿意在 \(T_1\) 结算;若推迟到 \(T_2\),就要以更低的 \(R_F\) 补偿。

两点都使远期利率低于期货利率。对长期合约,第一点的影响远大于第二点。

金融直觉:第 1 点和第 05 章 5.8 节是同一个机制,但这里的效应大得多。5.8 节说"期货与远期的差别取决于标的价格与利率的相关性",对股指或商品,这个相关性通常不强,差别可以忽略。欧洲美元期货的标的就是利率,相关性几乎是 1,所以效应被放大到最大。另一个放大器是期限:差别来自"逐日结算资金的再投资收益",期限越长、利率在期间内可能变动得越多,累积效应越大。所以短期合约可以忽略,8 年期合约就会差出约 47.5 个基点。

6.3.5 凸性调整

一种常用的调整(基于本册后续将介绍的 Ho–Lee 利率模型,原书第 31 章;证明见原书 Technical Note 1)是

\[ \text{远期利率}=\text{期货利率}-\frac12\sigma^2T_1T_2, \tag{6.3} \]

其中 \(T_1\) 为期货到期时间,\(T_2\) 为期货标的利率的到期时间,\(\sigma\) 为短期利率一年内变化的标准差,两种利率都用连续复利表示。这一调整称为凸性调整(convexity adjustment)。

白话解释:这个公式的严格证明要用到后面的利率模型,这里先读懂它的结构。 一是单位:\(\sigma\) 是"利率每年变动的标准差",以小数计(0.012 即每年 120 个基点);\(\sigma^2T\) 是利率在 \(T\) 年内累积变动的方差,单位是"利率的平方"。乘以另一个时间 \(T_2\) 后,量纲又回到"利率",所以可以直接从期货利率中减去。 二是为什么近似与期限平方成正比:\(T_1\) 和 \(T_2\) 只差 0.25 年,\(T_1T_2\approx T_1^2\)。期限翻倍,调整变成约 4 倍。 三是为什么叫"凸性":远期利率由两只零息债的价格之比 \(P(0,T_1)/P(0,T_2)\) 决定,而债券价格是利率的凸函数(第 04 章 4.8 节);期货利率则通过逐日结算对利率线性地结算盈亏。两者的差来自"利率变动"与"贴现因子/再投资利率变动"之间的协方差,波动越大差得越多,所以与 \(\sigma^2\) 成正比。直观的结论只有一句:利率波动越大、期限越长,期货利率比远期利率高得越多,因此要从期货利率中减去这一项。 四是使用时的注意:\(\sigma\) 需要估计或从利率期权中反推,调整量对它很敏感(与 \(\sigma^2\) 成正比,\(\sigma\) 估高 20%,调整就大 44%)。

例 6.4:\(\sigma=0.012\),8 年期欧洲美元期货报价 94,\(T_1=8\),\(T_2=8.25\)。调整量为

\[ \frac12\times0.012^2\times8\times8.25=0.00475\quad(47.5\ \text{个基点}). \]

期货利率 6%(actual/360、季度复利)意味着每 90 天 1.5%,换成连续复利、actual/365:\(\frac{365}{90}\ln1.015=6.038\%\)。远期利率估计为 \(6.038\%-0.475\%=5.563\%\)。

调整量随期限快速增长:2 年 3.2bp、4 年 12.2bp、6 年 27.0bp、8 年 47.5bp、10 年 73.8bp,大致与期限的平方成正比——期限翻倍,调整约变为 4 倍。所以对 1–2 年以内的合约,忽略凸性调整误差很小;对 5 年以上的合约,不调整就会在曲线上留下几十个基点的系统性偏差。

6.3.6 用欧洲美元期货延伸零息曲线

1 年以内的 LIBOR 零息曲线可以由 1、3、6、12 个月 LIBOR 直接得到。再往后,经凸性调整的欧洲美元期货常被用来延长曲线(通常到 2 年,有时到 5 年),然后再用互换利率延伸(下一章 7.6 节)。

设第 \(i\) 份期货在 \(T_i\) 到期,假设它对应的(已调整的)远期利率 \(F_i\) 适用于 \(T_i\) 到 \(T_{i+1}\) 的整个期间。由本册第 4 章的远期利率公式 \(F_i=\frac{R_{i+1}T_{i+1}-R_iT_i}{T_{i+1}-T_i}\)(连续复利),解出

\[ R_{i+1}=\frac{F_i\,(T_{i+1}-T_i)+R_iT_i}{T_{i+1}}. \tag{6.4} \]

这就是自举(bootstrap):从已知的短端零息利率出发,用一个个远期利率逐段"接"出更长期限的零息利率。

例 6.5:400 天零息利率为 4.80%(连续复利);从 400 天开始的 90 天期远期利率为 5.30%,从 491 天开始的为 5.50%,从 589 天开始的为 5.60%。则

\[ R_{491}=\frac{0.053\times91+0.048\times400}{491}=4.893\%,\qquad R_{589}=\frac{0.055\times98+0.04893\times491}{589}=4.994\%. \]

注意:期货标的虽是 90 天利率,这里却假定它适用于相邻两个期货到期日之间的 91 天或 98 天。这是实务中的近似,Euroswiss、Euroyen、Euribor 期货的用法相同。


6.4 基于久期的期货对冲

6.4.1 对冲比率的推导

记号:

  • \(V_F\):一张利率期货的合约价格;
  • \(D_F\):期货标的资产在期货到期时的久期;
  • \(P\):被对冲组合在对冲到期时的远期价值(实务中常直接用今天的价值);
  • \(D_P\):组合在对冲到期时的久期。

假设所有期限的收益率都变动相同的 \(\Delta y\)(即收益率曲线只做平行移动),由久期的定义(本册第 4 章)近似有

\[ \Delta P=-P\,D_P\,\Delta y,\qquad \Delta V_F=-V_F\,D_F\,\Delta y. \]

要让 \(\Delta P\) 被 \(N^*\) 张期货的盈亏抵消,需要 \(N^*\Delta V_F=\Delta P\),即

\[ N^*=\frac{P\,D_P}{V_F\,D_F}. \tag{6.5} \]

这称为基于久期的对冲比率(duration-based hedge ratio),也叫价格敏感度对冲比率(price sensitivity hedge ratio)。用它对冲后,整个头寸的久期为零。

推导拆解:把两个近似式代入 \(N^*\Delta V_F=\Delta P\):\(N^*(-V_FD_F\Delta y)=-PD_P\Delta y\)。两边的 \(-\Delta y\) 同时约去,这一步要求组合和期货面对的是同一个 \(\Delta y\),也就是平行移动假设被用到的地方。解出 \(N^*\) 即得 (6.5)。 与 CFA 和第 03 章的对应:\(PD_P\) 和 \(V_FD_F\) 都是"美元久期",乘以 0.0001 就是 BPV(DV01)。所以 (6.5) 就是 CFA 三级的"组合 BPV ÷ 期货 BPV"。CFA 中期货 BPV 写成 BPV\(_{\text{CTD}}\)/CF,本章用 CTD 在期货到期时的久期计算 \(D_F\),思路一致。再和第 03 章的股指对冲 \(N^*=\beta V_A/V_F\) 并排看:\(D_P/D_F\) 扮演 \(\beta\) 的角色,即"组合对共同因子的敏感度 ÷ 期货对共同因子的敏感度"。练习 9 的提示说的就是:当两者对利率变动的反应不是一比一时,要再乘一个回归系数,这正是第 03 章最小方差对冲比率的思想。

6.4.2 使用要点与常见误区

  • \(D_F\) 依赖 CTD 假设。用国债期货对冲时,\(D_F\) 必须基于某一具体 CTD 债券的久期。如果利率环境变化使 CTD 改变,\(D_F\) 就会跳变,对冲必须重新调整,效果可能变差。
  • 方向别弄反。利率与利率期货价格反向变动:利率下降会亏损的公司应做多期货;利率上升会亏损的公司应做空期货。
  • 选久期接近的期货。应选择标的资产久期尽量接近被对冲资产久期的合约:短期利率敞口用欧洲美元(SOFR)期货,长期利率敞口用超长国债、国债、国债票据期货。

例 6.6:8 月 2 日,基金经理持有 1,000 万美元国债,担心未来 3 个月利率剧烈波动,决定用 12 月国债期货对冲。期货价格 93-02 = 93.0625,合约价格 93,062.50 美元。组合 3 个月后的久期为 6.80 年;预计 CTD 为 20 年期、12% 票息的债券,当前收益率 8.80%,期货到期时久期为 9.20 年。需做空

\[ N^*=\frac{10{,}000{,}000}{93{,}062.50}\times\frac{6.80}{9.20}=79.42, \]

取整做空 79 张。


6.5 资产与负债组合的对冲

金融机构常让资产的平均久期等于负债的平均久期(负债可视为债券空头),称为久期匹配(duration matching)或组合免疫(portfolio immunization)。它保证收益率曲线小幅平行移动时,资产与负债的盈亏相互抵消。

缺点同样明显:它不能防范零息曲线的非平行移动。实务中短期利率的波动通常大于长期利率,两者不完全相关,有时甚至反向变动。因此久期匹配只是第一步。

Business Snapshot 6.3 银行的资产负债管理(ALM)。 银行常用 GAP 管理:把零息收益率曲线分成若干区间(bucket,如 0–1 个月、1–3 个月……),考察某一区间零息利率变动而其他区间不变时对组合价值的影响。若发现错配,可以调整存贷款利率(本册第 4 章 4.9 节),或使用互换、FRA、债券期货、欧洲美元期货等利率衍生品纠正。

GAP 分区分析在今天的风险系统里叫作"关键利率久期(key rate duration)"或"分桶 DV01",它是多因子利率风险模型(水平、斜率、曲率)的出发点。


量化实战

本章内容在量化交易里主要出现在三个地方:

  1. 国债期货基差与 CTD 分析。国债期货的价值由 CTD 决定,CTD 又随收益率水平和曲线形状变化。做期现套利、跨期价差或用国债期货表达利率观点时,系统必须实时计算每只可交割券的转换因子、交割成本、隐含回购利率,并判断 CTD 是否可能切换。中国金融期货交易所的 2/5/10/30 年期国债期货同样采用"名义标准券 + 转换因子 + 空方选券"的机制(名义标准券票面利率为 3%,所以"临界收益率"是 3% 而不是 6%),本章的逻辑可以原样迁移。
  2. 利率曲线构建。零息曲线是一切利率衍生品定价和固定收益回测的基础设施。短端用存款/隔夜利率,中段用经凸性调整的期货,长端用互换,逐段自举——这一流水线在今天的 SOFR 世界里依然成立。
  3. 利率风险对冲。久期对冲是一阶方法,简单但只对平行移动有效。实际组合要按关键期限分桶计算 DV01,再用多个期限的期货组合对冲。

下面两段代码分别实现:(A) CME 转换因子计算、CTD 判别(复现例 6.1)、模拟展示收益率水平如何改变 CTD、复现例 6.2 的期货理论报价;(B) 凸性调整与零息曲线自举(复现例 6.4、6.5),以及在模拟的平行与非平行利率冲击下检验久期对冲的效果。

代码 A:转换因子、CTD 与理论期货价格

import numpy as np
import pandas as pd

def conversion_factor(coupon, years, months):
    """CME 转换因子:6% 半年复利、期限向下取整到 3 个月,返回每 1 美元面值的净价"""
    months_total = years * 12 + months
    q = months_total // 3                 # 取整后的季度数
    n_half, extra = divmod(q, 2)          # 半年期个数,是否多出一个季度
    c = coupon * 100 / 2                  # 每半年票息(面值 100)
    disc = 1.03 ** -np.arange(1, n_half + 1)
    pv = c * disc.sum() + 100 * 1.03 ** -n_half
    if extra == 0:
        return pv / 100
    # 多出 3 个月:先折到 3 个月后(含当期票息),再折回今天并扣应计利息
    pv3 = c + pv
    pv0 = pv3 / np.sqrt(1.03)
    return (pv0 - c / 2) / 100

print("例1 CF =", round(conversion_factor(0.10, 20, 2), 4))
print("例2 CF =", round(conversion_factor(0.08, 18, 4), 4))

# 例 6.1:CTD 判别
F = 93.25
bonds = pd.DataFrame({"quote": [99.50, 143.50, 119.75],
                      "cf": [1.0382, 1.5188, 1.2615]}, index=["债券1", "债券2", "债券3"])
bonds["交割成本"] = bonds["quote"] - F * bonds["cf"]
print(bonds.round(3)); print("CTD:", bonds["交割成本"].idxmin())

# 模拟一篮子可交割券,看收益率水平如何改变 CTD
basket = pd.DataFrame({"coupon": [0.03, 0.045, 0.06, 0.08, 0.03, 0.05],
                       "years":  [15,   16,    18,   15,   25,   24]})
basket["cf"] = [conversion_factor(c, y, 0) for c, y in zip(basket.coupon, basket.years)]

def price(coupon, years, y):          # 平坦收益率 y(半年复利)下的净价
    k = np.arange(1, 2 * years + 1)
    return (coupon * 50 * (1 + y / 2) ** -k).sum() + 100 * (1 + y / 2) ** -(2 * years)

rows = []
for y in [0.03, 0.045, 0.06, 0.075, 0.09]:
    p = np.array([price(c, n, y) for c, n in zip(basket.coupon, basket.years)])
    # 无套利下期货价近似为 min(P/CF):此时 CTD 交割成本为 0
    fut = (p / basket.cf).min()
    cost = p - fut * basket.cf
    i = cost.argmin()
    tie = np.sort(cost)[1] < 1e-8           # 次便宜券成本也为 0:打平
    ctd = "全部打平" if tie else f"{basket.coupon[i]:.1%} / {basket.years[i]}年"
    rows.append((y, round(fut, 3), ctd))
print(pd.DataFrame(rows, columns=["收益率", "隐含期货价", "CTD(票息/期限)"]))

# 例 6.2:已知 CTD 的国债期货理论报价
r = 0.10
cash = 115 + 60 / (60 + 122) * 6
I = 6 * np.exp(-r * 122 / 365)
F_cash = (cash - I) * np.exp(r * 270 / 365)
F_clean = F_cash - 6 * 148 / (148 + 35)
print(f"现金价 {cash:.3f},票息现值 {I:.3f},现金期货价 {F_cash:.3f},"
      f"净价期货 {F_clean:.3f},报价 {F_clean / 1.6:.2f}")

关键输出:

例1 CF = 1.4623
例2 CF = 1.2199
      quote     cf   交割成本
债券1   99.50  1.038  2.688
债券2  143.50  1.519  1.872
债券3  119.75  1.262  2.115
CTD: 债券2
     收益率    隐含期货价  CTD(票息/期限)
0  0.030  133.812  8.0% / 15年
1  0.045  115.283  8.0% / 15年
2  0.060  100.000        全部打平
3  0.075   80.648  3.0% / 25年
4  0.090   66.304  3.0% / 25年
现金价 116.978,票息现值 5.803,现金期货价 119.711,净价期货 114.859,报价 71.79

解读:两个转换因子例子与原书一致。模拟篮子清楚地展示了 6.2.3 节的规律——收益率为 6% 时所有债券按 CF 折算后完全等价("全部打平");收益率低于 6% 时 CTD 是高票息、短期限的 8%/15 年券;高于 6% 时 CTD 切换为低票息、长期限的 3%/25 年券。在 6% 附近,CTD 切换的可能性最大,空方的交割券选择权也最值钱。(这里为了突出 CTD 规律,用平坦收益率曲线和"期货价 = min(P/CF)"的简化定价,忽略了持有成本和交割期权价值。)

代码 B:凸性调整、自举与久期对冲检验

import numpy as np

# 1) 凸性调整:远期利率 = 期货利率 - 0.5*sigma^2*T1*T2(连续复利)
sigma = 0.012
for T1 in [2, 4, 6, 8, 10]:
    adj = 0.5 * sigma**2 * T1 * (T1 + 0.25)
    print(f"T1={T1:>2} 年  凸性调整 {adj*1e4:5.1f} bp")
fut_cc = 365 / 90 * np.log(1 + 0.06 / 4)          # 报价 94 → 6% actual/360 季度复利
print(f"例6.4: 期货利率(连续,365) {fut_cc:.4%}, 远期 {fut_cc - 0.5*sigma**2*8*8.25:.4%}")

# 2) 用(已调整的)期货远期利率自举零息曲线,式(6.4)
T = np.array([400, 491, 589]) / 365
R = [0.048]
F = [0.053, 0.055]                     # 适用于 [T_i, T_{i+1}]
for i in range(len(F)):
    R.append((F[i] * (T[i+1] - T[i]) + R[i] * T[i]) / T[i+1])
print("零息利率:", [f"{x:.3%}" for x in R])

# 3) 久期对冲:平行移动 vs 非平行移动下的对冲误差(模拟)
rng = np.random.default_rng(0)
P, DP = 10_000_000, 6.80          # 组合价值与久期
VF, DF = 93_062.50, 9.20          # 期货合约价格与 CTD 久期
N = P * DP / (VF * DF)
print(f"对冲合约数 N* = {N:.2f}")
n = 10_000
level = rng.normal(0, 0.008, n)               # 共同水平因子
twist = rng.normal(0, 0.004, n)               # 斜率因子:短端与长端反向
for name, k in [("仅平行移动", 0.0), ("含斜率扭转", 1.0)]:
    dy_port = level - 0.3 * k * twist          # 组合久期 6.8,偏中段
    dy_fut  = level + 0.5 * k * twist          # CTD 久期 9.2,偏长端
    pnl_port = -P * DP * dy_port
    pnl_fut  = -VF * DF * dy_fut
    hedged = pnl_port - round(N) * pnl_fut     # 做空 79 张
    print(f"{name}: 未对冲 P&L 标准差 {pnl_port.std():>9,.0f}  "
          f"对冲后 {hedged.std():>8,.0f}  降幅 {1 - hedged.std()/pnl_port.std():.1%}")

关键输出:

T1= 2 年  凸性调整   3.2 bp
T1= 4 年  凸性调整  12.2 bp
T1= 6 年  凸性调整  27.0 bp
T1= 8 年  凸性调整  47.5 bp
T1=10 年  凸性调整  73.8 bp
例6.4: 期货利率(连续,365) 6.0382%, 远期 5.5630%
零息利率: ['4.800%', '4.893%', '4.994%']
对冲合约数 N* = 79.42
仅平行移动: 未对冲 P&L 标准差   542,954  对冲后    2,892  降幅 99.5%
含斜率扭转: 未对冲 P&L 标准差   550,139  对冲后  215,634  降幅 60.8%

解读:凸性调整和自举结果与原书例 6.4、6.5 完全一致。久期对冲的模拟说明了本章最重要的风险提示:只有平行移动时,79 张期货几乎消除了全部利率风险(剩下的一点来自合约数取整);一旦加入让中段和长端反向变动的"斜率因子",同样的对冲只能去掉约六成风险。实际工作中的改进办法是按关键期限分桶,用 2 年、5 年、10 年、30 年等多个期货合约分别对冲各桶的 DV01,或者对水平、斜率、曲率三个主成分分别做中性化(主成分分析见本册第 22 章 22.9 节与第 01 册第 02b 章的特征分解)。


本章小结

利率期货的难点不在定价原理(仍然是第 5 章的持有成本模型),而在细节:计息天数、报价惯例、净价/全价、转换因子、交割选择权。国债期货让空方在一篮子债券中挑选交割券,转换因子以 6% 为基准把它们折算成可比,但市场收益率偏离 6% 时会产生系统性的 CTD;假设 CTD 和交割日已知后,可按"全价 → 减收入现值 → 复利 → 减应计利息 → 除以 CF"求理论报价,空方的各种选择权使实际期货价格偏低。欧洲美元期货报价 \(100-R\)、每基点 25 美元,可以锁定未来 3 个月利率;由于每日结算,期货利率高于远期利率,长期限合约需做与期限平方成正比的凸性调整,调整后的利率可用于自举零息曲线。久期对冲比率 \(N^*=PD_P/(V_FD_F)\) 是利率对冲的一阶工具,但只对平行移动有效,非平行移动需要分桶或多因子对冲。

概念 / 公式 内容
计息天数 利息 = (期间天数 / 参考期天数) × 参考期利息;actual/actual(美国国债)、30/360(公司债)、actual/360(货币市场)
国库券报价 \(P=\frac{360}{n}(100-Y)\),按面值贴现
全价 现金价格 = 净价 + 应计利息
转换因子 6% 半年复利、期限取整到 3 个月下的每 1 美元面值净价
空方收到 结算价 × CF + 应计利息
CTD 使"报价 − 结算价 × CF"最小的债券
国债期货价格 \(F_0=(S_0-I)e^{rT}\),再扣应计利息、除以 CF
欧洲美元期货 报价 \(=100-R\);1bp = 25 美元;合约价格 \(10{,}000[100-0.25(100-Q)]\)
凸性调整 远期利率 = 期货利率 \(-\frac12\sigma^2T_1T_2\)
自举 \(R_{i+1}=\dfrac{F_i(T_{i+1}-T_i)+R_iT_i}{T_{i+1}}\)
久期对冲 \(N^*=\dfrac{PD_P}{V_FD_F}\),仅对平行移动有效

练习

基础题

  1. 票息 6%、每年 1 月 15 日和 7 月 15 日付息的债券,计算 1 月 15 日到 4 月 20 日的应计利息:(a) 按 actual/actual(美国国债);(b) 按 30/360(公司债)。设该年非闰年。 提示:(a) 实际天数 95 天,参考期 181 天,利息 \(95/181\times3=1.5746\);(b) 30/360 下 \(3\times30+5=95\) 天,参考期 180 天,利息 \(95/180\times3=1.5833\)。

  2. 120 天国库券报价 5.20(贴现率),求每 100 面值的现金价格和 120 天的期间收益率;再换成连续复利年利率(按 365 天计)。 提示:现金价格 \(100-5.20\times120/360=98.2667\);期间收益率 \(1.7333/98.2667=1.7639\%\);连续复利 \(\frac{365}{120}\ln(1.017639)=5.32\%\)。

  3. 期货结算价 101-16,三只可交割债券报价与 CF 分别为 (120.00, 1.1720)、(108.50, 1.0650)、(95.25, 0.9310)。哪只是 CTD? 提示:结算价 101.5;交割成本分别为 \(120-118.958=1.042\)、\(108.5-108.098=0.402\)、\(95.25-94.497=0.753\),第二只最便宜。

  4. 某投资者买入 5 张欧洲美元期货,报价从 97.85 变为 97.62,他的盈亏是多少? 提示:下降 23bp,亏损 \(5\times23\times25=2{,}875\) 美元。

  5. 解释为什么国债期货空方拥有的交割选择权会使期货价格低于式 (6.1) 的理论值。 提示:选择权归空方所有、有正价值;多方要求以更低的期货价作为补偿。

进阶题

  1. 用例 6.2 的数据,但设期限结构平坦利率为 8%,重新计算期货报价。比较结果并说明利率上升为何抬高期货价格。 提示:按同一流程,票息现值 5.842,净价期货 113.059,报价约 70.66,低于利率 10% 时的 71.79。持有成本模型中,利率越高、持有现券的融资成本越高,期货价相对现货越高。

  2. 设 \(\sigma=0.015\),计算 5 年期欧洲美元期货(\(T_1=5\),\(T_2=5.25\))的凸性调整;若期货报价 95.00,估计对应的连续复利远期利率。 提示:调整 \(=\frac12\times0.015^2\times5\times5.25=0.295\%\);期货利率 5%(季度复利、actual/360)换算为 \(\frac{365}{90}\ln(1.0125)=5.038\%\),远期约 4.74%。

  3. 某公司持有 5,000 万美元、久期 4.2 年的债券组合,计划 4 个月后卖出。可用的期货合约价格 108,500 美元,CTD 久期 7.6 年。应如何对冲?若希望把组合久期降到 2 年而不是 0,应如何操作? 提示:完全对冲做空 \(\frac{5\times10^7\times4.2}{108{,}500\times7.6}=254.7\) 张;降到 2 年则做空 \(\frac{5\times10^7\times(4.2-2)}{108{,}500\times7.6}=133.4\) 张(原书习题 6.17、6.18 同类)。

  4. 用代码 B 的框架,把斜率因子的系数改为让组合与期货标的同向但幅度不同(例如组合 \(1.2\times\)、期货 \(0.8\times\)),观察对冲效果,并说明此时应如何修改 \(N^*\)。 提示:若两者对水平因子的敏感度不同("贝塔"不同),应把 \(N^*\) 乘以 \(\Delta y_P/\Delta y_F\) 的回归系数,与原书习题 6.15 的思想一致。

  5. 解释"用欧洲美元期货延伸零息曲线"时,为什么假设期货远期利率适用于相邻两个到期日之间(91 天或 98 天)而不是严格的 90 天?这种近似对曲线有什么影响? 提示:期货到期日并不连续首尾相接,为了得到无缝的零息曲线,需要把每个远期利率"拉伸"覆盖整个区间;误差通常很小,因为相邻期间的远期利率相差不大。

原书推荐习题:6.2、6.9、6.23(净价与全价、两种计息惯例);6.10、6.24、6.30(转换因子与 CTD);6.11、6.27(国债期货理论价格);6.14(自举零息利率);6.21、6.26(凸性调整);6.28(LIBOR 与期货的套利);6.31(久期对冲及 CTD 改变、非平行移动的影响)。


原书对照

本章小节 原书小节 PDF 页码 原书页码
6.1 计息天数与报价惯例 6.1 Day Count and Quotation Conventions 155–157 154–156
6.2 国债期货 6.2 Treasury Bond Futures 158–163 157–162
6.3 欧洲美元期货(含凸性调整、自举) 6.3 Eurodollar Futures 162–168 161–167
6.4 基于久期的期货对冲 6.4 Duration-Based Hedging Strategies Using Futures 168–169 167–168
6.5 资产与负债组合的对冲 6.5 Hedging Portfolios of Assets and Liabilities 170 169
小结与习题 Summary, Further Reading, Practice Questions 170–174 169–173

延伸阅读:Burghardt & Hoskins (1995) 关于欧洲美元期货的凸性偏差;Grinblatt & Jegadeesh (1996) 关于欧洲美元期货与远期的相对价格。