1. 课程导入
欢迎进入《QuantLib固定收益定价与曲线构建实战》。在动手写第一行定价代码之前,我们需要先建立一张“地图”:固定收益市场到底由哪些品种构成,价格与风险从哪里来,QuantLib 在整个技术栈中扮演什么角色,以及本课程最终要交付哪些可运行、可复用的能力。本章不涉及复杂公式推导,而是帮你把后续 29 章的知识挂到一张清晰的认知框架上。
一、固定收益市场概览:从现金流到曲线
固定收益产品的本质,是一组未来现金流与一条贴现曲线之间的映射关系。无论是国债、政策性金融债、同业存单,还是利率互换、利率期权,定价的核心问题都可以归结为三件事:现金流发生在什么时间、金额是多少、用哪条曲线贴现。债券价格、到期收益率、久期、凸性、远期利率、互换利差,都是这一映射在不同视角下的投影。
从市场结构看,固定收益可分为现货与衍生品两大块。现货包括国债、地方债、金融债、信用债、资产支持证券等;衍生品包括利率互换、国债期货、利率期权、利率上限/下限等。它们共享同一条基准曲线,但各自又有独立的流动性溢价、信用溢价与期限结构。理解这一点,才能明白为什么 QuantLib 要把“曲线”抽象成独立对象,而不是把收益率硬编码进定价函数。
二、QuantLib 的定位:不是黑箱,而是可组装的定价引擎
QuantLib 是一个开源的量化金融 C++ 库,并提供 Python 绑定(QuantLib-Python)。它覆盖了日期计算、日历、计息规则、曲线构建、定价引擎、随机过程、数值方法等模块。与商业软件相比,QuantLib 的优势在于透明、可扩展、可测试;劣势在于学习曲线陡峭,文档分散,很多默认参数需要你理解其金融含义后才能正确使用。
在本课程中,我们把 QuantLib 定位为“可组装的定价引擎”:你负责定义市场数据与产品条款,QuantLib 负责日期推进、曲线插值、现金流生成与数值求解。下面这张图展示了从市场数据到定价结果的典型数据流,也是后续章节反复出现的结构。
三、安装与环境配置:一次做对,避免后续踩坑
QuantLib-Python 的安装方式主要有两种:pip 安装预编译包,或从源码编译。对于本课程,推荐使用 pip 安装,版本选择 1.31 及以上,以保证与 Python 3.10+ 的兼容性。安装完成后,务必验证日期系统与曲线构建模块可用。
# 推荐环境:Python 3.10+,虚拟环境隔离
python -m venv ql_env
source ql_env/bin/activate # Windows 使用 ql_env\Scripts\activate
# 安装 QuantLib-Python
pip install QuantLib==1.31
pip install pandas numpy matplotlib
# 验证安装
python -c "import QuantLib as ql; print(ql.__version__)"
# 预期输出:1.31
安装完成后,用一段最小代码验证日期与曲线对象是否正常。这段代码不涉及定价,只确认环境健康。
import QuantLib as ql
today = ql.Date(15, 1, 2025)
ql.Settings.instance().evaluationDate = today
calendar = ql.China()
day_counter = ql.ActualActual(ql.ActualActual.ISDA)
print("Evaluation Date:", today)
print("Calendar:", calendar.name())
print("DayCounter:", day_counter.name())
# 预期输出:
# Evaluation Date: January 15th, 2025
# Calendar: China
# DayCounter: Actual/Actual (ISDA)
四、学习路径与实战目标:30章如何形成闭环
本课程按“基础—曲线—定价—风险—实战”五段推进。前几章建立日期系统与市场数据认知;中间章节重点攻克曲线构建,包括 Bootstrap、插值方法、多曲线框架;随后进入债券、互换、期权定价;最后落到风险指标计算与一个完整的曲线构建实战项目。每一章都配有可运行代码,建议边学边改参数,观察输出变化。
| 阶段 | 核心内容 | 实战目标 |
|---|---|---|
| 基础认知 | 日期系统、日历、计息规则、市场数据 | 能正确构造 Schedule 与 DayCounter |
| 曲线构建 | Bootstrap、插值、多曲线、贴现因子 | 能从报价构建一条可用的贴现曲线 |
| 产品定价 | 债券、利率互换、期权定价引擎 | 能对典型产品计算 NPV 与 YTM |
| 风险分析 | DV01、久期、凸性、关键期限暴露 | 能输出风险指标并解释其含义 |
| 综合实战 | 完整曲线构建与定价项目 | 能独立完成从数据到报告的闭环 |