1. 课程导入

欢迎进入《Cap Floor与Swaption定价实战》。在动手写第一行定价代码之前,我们需要先建立一张“市场地图”:这些产品在利率衍生品体系中处于什么位置,它们各自解决什么风险,以及为什么它们的定价比普通利率互换更复杂。本章不涉及公式推导,而是为后续30章搭建统一的语言框架与认知坐标。

一、利率衍生品市场概览

利率衍生品是全球场外(OTC)市场规模最大的资产类别之一。按交易结构与风险特征,可以粗略分为三大族:

  • 线性产品:利率互换(IRS)、远期利率协议(FRA)、隔夜指数互换(OIS)。它们的收益与利率呈线性关系,定价核心是贴现曲线与远期曲线的构建。
  • 非线性期权类产品:利率上限/下限(Cap/Floor)、互换期权(Swaption)、利率期权(如Bermudan Swaption)。收益对利率呈非线性,定价必须引入波动率模型。
  • 结构化产品:范围 accrual、CMS 利差、可赎回债券等,通常由上述基础模块组合而成。

Cap/Floor 与 Swaption 正是非线性族中最基础、流动性最好的两类。掌握它们的定价,等于拿到了利率波动率建模的“入场券”。

核心认知:线性产品定价回答“利率会走到哪里”;非线性产品定价还要回答“利率可能怎么走、波动多大”。这就是波动率曲面存在的意义。

二、Cap/Floor 与 Swaption 的定义

利率上限(Cap)是一系列欧式利率期权的组合,称为 Caplet。每个 Caplet 在付息日对参考利率与执行价(Strike)的差额进行支付:若参考利率高于 Strike,买方获得差额;否则为零。它相当于为浮动利率负债买了一份“保险”,锁定最高融资成本。

利率下限(Floor)与 Cap 对称:当参考利率低于 Strike 时向买方支付差额,用于保护浮动利率资产的收益下限。

互换期权(Swaption)是进入一份利率互换的期权。买方在到期日有权(但无义务)按约定固定利率进入一笔特定期限的互换。按行权方向分为 payer swaption(支付固定利率,看涨利率)与 receiver swaption(收取固定利率,看跌利率)。

产品 标的 买方权利 主要风险对冲 定价关键输入
Cap 浮动利率(如SOFR、EURIBOR) 利率高于Strike时获赔 浮动利率负债成本上限 远期曲线、Caplet波动率
Floor 浮动利率 利率低于Strike时获赔 浮动利率资产收益下限 远期曲线、Floorlet波动率
Payer Swaption 付固定收浮动互换 到期可进入互换付固定 未来融资利率上升风险 互换远期利率、Swaption波动率
Receiver Swaption 收固定付浮动互换 到期可进入互换收固定 未来投资收益下降风险 互换远期利率、Swaption波动率

从现金流结构看,Cap/Floor 是“一串期权”,Swaption 是“一个期权进入一串现金流”。这一区别直接决定了它们的定价方法:Cap 常用 Black 模型逐 Caplet 定价,Swaption 则常用 Black 或 SABR 等模型在互换远期利率上定价。

利率衍生品市场地图与本节定位 线性产品 IRS / FRA / OIS 收益线性 贴现曲线 + 远期曲线 非线性期权类 Cap / Floor / Swaption 收益非线性 波动率曲面 + 模型 结构化产品 Range Accrual / CMS 模块组合 依赖基础模块定价 Cap / Floor 结构 一串 Caplet / Floorlet 每个付息日独立行权 逐段 Black 定价 保护浮动利率上下限 Swaption 结构 一个期权进入一笔互换 到期日单次行权 Black / SABR 定价 锁定未来互换固定利率

三、学习目标与整体课程框架

本课程的目标不是“背公式”,而是建立一条从市场数据到定价结果、再到风险指标的完整链路。学完后,你应当能够:

  1. 理解 Cap/Floor 与 Swaption 的合约条款、现金流结构与市场报价惯例。
  2. 独立构建贴现曲线与远期曲线,并从中提取 Caplet 与 Swaption 定价所需的远期利率。
  3. 使用 Black、Bachelier、SABR 等模型对 Cap/Floor 与 Swaption 进行定价与波动率校准。
  4. 计算 Delta、Vega、Gamma 等希腊字母,并解释波动率微笑与偏斜对价格的影响。
  5. 通过 Python 实战代码复现定价流程,并完成结果验证与常见错误排查。

课程整体分为五个阶段:基础概念与市场惯例(第1–5章)、曲线构建与远期利率(第6–11章)、Cap/Floor 定价与波动率校准(第12–18章)、Swaption 定价与SABR模型(第19–25章)、风险管理与综合实战(第26–30章)。每一阶段都配有可运行的代码片段与参数清单。

学习建议:先跑通一条最小定价链路——用一条平坦曲线给一个 Caplet 定价,再逐步加入真实曲线、波动率微笑和多期结构。不要一开始就追求完整曲面校准。

四、常见误区与复盘

初学者在接触 Cap/Floor 与 Swaption 时,最容易踩以下四个坑:

  • 把 Cap 当成一个期权:Cap 是一组 Caplet,每个 Caplet 的到期日、远期利率和波动率都不同,不能用一个 Black 公式一次性定价。
  • 混淆 Swaption 的标的:Swaption 的标的是“互换的固定利率”,不是某个即期利率。定价时必须先确定互换远期利率与年金因子。
  • 忽略波动率微笑:市场报价的隐含波动率随 Strike 变化,直接用平值波动率会给虚值期权带来显著误差。
  • 曲线与波动率混用:贴现曲线、远期曲线和波动率曲面是三个独立输入,任何一处口径错误都会导致价格偏差。

复盘要点:定价结果异常时,先检查曲线日期与计息惯例,再检查波动率报价的 Strike 与到期日映射,最后才怀疑模型。多数错误来自输入数据而非模型本身。

下面给出一个最小可运行的参数清单,用于后续章节的代码实验。它定义了本节所讨论产品的核心输入字段:

# 最小定价输入参数清单(示例)
trade = {
    "product": "Cap",          # Cap / Floor / Swaption
    "notional": 10_000_000,
    "strike": 0.035,
    "start": "2025-01-15",
    "maturity": "2030-01-15",
    "index": "SOFR",
    "frequency": "quarterly",
    "day_count": "ACT/360"
}

market = {
    "discount_curve": "USD_OIS",
    "forward_curve": "USD_SOFR_3M",
    "vol_surface": "USD_CAP_SWAPTION",
    "valuation_date": "2025-01-10"
}

这张“地图”已经铺开:左边是线性产品,中间是我们即将深入的非线性期权类,右边是由它们组合而成的结构化产品。接下来,我们将从合约条款与市场报价开始,一步步把这张地图变成可运行的定价代码。