固收主线:现金流与风险指标
固定利率债券、零息债、浮息债、利率掉期,以及净价/全价/应计、收益率、久期、凸性、DV01。本站实测:一只 3% 票息债券的 11 条现金流金额在 2.9839 ~ 3.0164 之间波动,原因是计息约定而非数据错误。
QuantLib · the free/open-source library for quantitative finance
QuantLib 是开源的 C++ 衍生品定价与风险管理库(Python 绑定为 QuantLib-Python)。本站不只是把代码抄一遍:每一页都标注测试版本、估值日、日历、计息约定与数据来源,并给出在本机 QuantLib 1.43 上跑出来的数字——让你既能复制代码算出价格,也能解释这个价格用了什么日期、哪条曲线、哪个引擎,并独立验证它。
项目页面显示约 7.6k Star(采集于 2026-09-10,该数字会随社区活动变化);GitHub 标注许可 BSD-3-Clause。
截图仅用于证明仓库当前状态,不代表本机安装成功,也不代表本站结论已被官方认可。
查看源码QuantLib 的定位是「把金融工具、市场约定与数值方法组织成可复现的定价框架」。对中文用户最常用的两条主线是固收与衍生品,本站围绕这两条线组织全部页面。
固定利率债券、零息债、浮息债、利率掉期,以及净价/全价/应计、收益率、久期、凸性、DV01。本站实测:一只 3% 票息债券的 11 条现金流金额在 2.9839 ~ 3.0164 之间波动,原因是计息约定而非数据错误。
欧式/美式/亚式/障碍期权,解析、二叉树、有限差分、蒙特卡洛四类引擎,以及 Delta/Gamma/Vega/Theta/Rho。本站实测:解析引擎与手写 Black-Scholes 公式差 1.78e-15,而 801 步 CRR 树差 201.75 ppm。
Hull-White、Vasicek、Heston 等模型用于波动率与利率动态建模。本站实测:同一 Heston 参数下 rho 从 −0.6 改到 +0.4,隐含波动率曲线斜率从 −5.6 个百分点翻转到 +2.7 个百分点。
同一个工具换一项约定就会得到不同价格,所以本站把「先定约定、再算价格」作为全站主线。下面五步是从本站各页实测中提炼出来的执行顺序。
ql.Settings.instance().evaluationDate,再选日历、营业日规则与计息约定。本机实测:把计息约定从 Actual/Actual (ISDA) 换成 Actual/360,同一只债券净价从 99.75408467 变成 99.99419065。BondFunctions.basisPointValue 返回负值,市场口径需自己确认符号。参考中文与官方资料里较合理的认知顺序整理。前 5 步不写一行定价代码也能先理解,第 6 步之后开始进入需要动手验证的部分。
| 顺序 | 要弄懂的东西 | 本站对应的页 | 为什么放在这个位置 |
|---|---|---|---|
| 1 | QuantLib 是什么、C++ 与 Python 绑定的关系 | 本页 + 安装页 | 先判断工具是否适合自己的任务 |
| 2 | 怎么装上并验证能跑(pip / conda / 源码编译) | 安装页 | 环境不通后面都做不了 |
| 3 | Date、Calendar、Schedule、BusinessDayConvention | 金融约定审计页 | 现金流的日期先要对,价格才有意义 |
| 4 | DayCounter、Compounding、Frequency | 金融约定审计页 | 计息口径决定每期算多少天 |
| 5 | Quote / Handle / Observer / Settings、evaluationDate | 金融约定审计页 + 本页 | 估值日是全部计算的锚点 |
| 6 | 收益率曲线:FlatForward、ZeroCurve、bootstrap | 期限结构页 | 折现因子是定价的地基 |
| 7 | 金融工具与现金流:债券、掉期 | 金融工具页 | 把工具拆成现金流是定价的前置 |
| 8 | 定价引擎:解析、树、有限差分、蒙特卡洛 | 定价引擎页 | 同一工具换引擎要能解释差异 |
| 9 | Greeks 与风险指标:久期、凸性、DV01 | 期权页 + 金融工具页 | 有了价格才能谈风险 |
| 10 | 模型与校准:Hull-White、Heston | 利率模型页 | 最后才进入模型,避免先入为主 |
下表把 QuantLib 的主要能力、对应类与本站在本机的实测状态放在一起。「本站实测」一列说明该能力在本站是否有可复现的数字。
| 能力 | 典型类 / 方法 | 本站实测状态 | 容易踩的坑 |
|---|---|---|---|
| 现金流与日期 | Schedule / Calendar / DayCounter | 已实测(14 种 DayCounter、4 种日历) | 日历选错不一定报错,可能只是日期悄悄错开 |
| 债券定价 | FixedRateBond + DiscountingBondEngine | 已实测(11 条现金流 + 8 项指标) | 不设引擎直接取价格会抛 null pricing engine |
| 期权定价 | VanillaOption + Analytic/Binomial/FD/MC 引擎 | 已实测(5 类引擎对照) | 美式配欧式解析引擎会抛 not an European option |
| Greeks | option.delta() / gamma() / vega() | 已实测(解析 vs 差分校验) | 树与蒙特卡洛引擎不提供 vega;Heston 不提供 delta |
| 收益率曲线 | DepositRateHelper / SwapRateHelper / Piecewise* | 已实测(4 种插值 + 曲线 bump) | 曲线取到末端之外会抛 past max curve time |
| 利率模型 | HullWhite / Vasicek / HestonModel | 已实测(互换期权 + Heston 微笑) | HestonProcess 前两个参数是无风险曲线与分红曲线,传反会让远期错位 |
| 中国市场 | ql.China(SEA/IB) 日历 | 已实测日历与示意曲线;中债数据未测试 | 没有中国计息口径,也没有中债估值规则与行情 |
| 扩展与其它语言 | QuantLibAddin / RQuantLib / SWIG 绑定 | 只核对存在性,未实测 | 不同封装层的函数命名与版本可能不同 |
| 行情与数据接入 | 不提供 | 未实测(因为库本身不含此能力) | 报价、波动率、利率节点需自备,并记录数据日期与口径 |
| 可视化与报表 | 不提供 | 未实测(需配合其它工具) | 曲线图、风险报表要自己出图,数据仍需先从本库算出 |
同一批实测数据被组织成 6 个入口。每个入口都回答一个别处常见含糊的问题,并且给出你可以自己复算的数字或报错原文。
| 入口 | 回答的问题 | 本站给出的可验证证据 |
|---|---|---|
| 金融约定审计 | 为什么同一只债券的价格对不上? | 14 种 DayCounter + 4 种日历 + settlementDays T+0~T+90 的实测表;应计口径可让净价差 0.24 元 |
| 收益率曲线 bootstrap | 曲线是怎么从报价推出来的、准不准? | 四种插值的零息与折现因子表、反算偏差 +0.018~−1.364 bp、逐节点 1bp bump 结果 |
| 引擎交叉验证 | 为什么两个引擎结果不一样、差多少算正常? | 5 类引擎同期权对照(0 ~ 201.75 ppm)、二叉树与蒙特卡洛收敛表、ppm 容差判据 |
| 债券全链条 | 一笔债券定价要准备哪些输入? | 11 条真实现金流 + 净价/全价/应计/久期/凸性/DV01,含 DV01 负号陷阱 |
| 错误与排查 | 为什么程序不报错、价格却是 0? | 13 条真实报错原文 + 「价格为 0」的 4 种成因 + 10 类静默错误结果 |
| 中国市场实践 | 中国日历与人民币曲线能直接用吗? | SSE/IB 2024 年非营业日 124/115 天实测;示意人民币曲线;明确列出必须自备的规则 |
| 实测指标 | 本机数值 | 出自哪一页 |
|---|---|---|
| 本机测试版本 | QuantLib 1.43(cp39-abi3 wheel) | 安装页 |
| 欧式看涨期权解析价 | 10.4681483852(S=K=100, vol=20%, r=5%) | 期权页 |
| 解析价 vs 手写 BS 公式差 | 1.7763568394e-15 | 期权页 |
| CRR 801 步树误差 | 201.75 ppm(LR 801 步仅 0.05 ppm) | 定价引擎页 |
| Heston 隐含波动率微笑(rho=−0.6) | 22.918% → 17.273%(K=80→120) | 利率模型页 |
| 曲线反算输入互换的偏差 | +0.018 bp ~ −1.364 bp | 期限结构页 |
| 曲线逐节点 +1bp 的影响 | 5Y 报价 → 5Y 零息 +1.0571bp | 期限结构页 |
| 债券净价 / 应计 / 全价 | 99.75408467 / 0.01639344 / 99.77047812 | 金融工具页 |
| 计息约定对净价的影响区间 | 99.7535 ~ 99.9942(每 100 面值) | 金融约定审计页 |
| China.SSE 2024 年非营业日 | 124 天(IB 115 天,TARGET 110 天) | 金融约定审计页、期限结构页 |
| 真实报错原文条数 | 13 条(含「不报错但结果为 0」的情形) | 错误与排查页 |
| 亚式期权(12 个观察日)算术 MC vs 差分 | 6.1646871 vs 6.18993503 | 期权页 |
| 障碍期权敲出/敲入 | up-out 130 = 3.32633974;down-out 80 = 10.36788009 | 期权页 |
| 掉期 fairRate 与曲线水平 | fairRate 3.3268428%(曲线水平 3.00%) | 金融工具页 |
| 蒙特卡洛复现性与方差削减 | 同种子逐位一致;对偶变量标准误 0.0329 → 0.0164 | 定价引擎页 |
| 计息口径导致的债券价差 | 净价差 0.24(每 100 面值),收益率差 4.5bp | 金融约定审计页 |
| 二叉树收敛样例 | CRR 10 步 19458 ppm → 2000 步 98.65 ppm | 定价引擎页 |
| 曲线陡峭时单一收益率的局限 | 递增曲线净价 97.69124475,反解收益率 3.43261594% | 期限结构页 |
两条路线的准备成本与适用任务不同,先确认你要解决的问题属于哪一类。
灵活度高、可控性强,但 C++ 环境、曲线数据与模型假设都要自己维护;本站实测的报错里有三条就是「输入没补齐」造成的。
技能覆盖的数据源与市场各不相同;它不替代量化金融定价库,也不代表 QuantLib 已集成 EasyClaw。
下面两张是本机量化研究技能的实际对话截图(左右点击翻页),用于说明「不用装环境、一句话发起量化研究」这条路线长什么样。截图与 QuantLib 的定价结果无关,也不代表两者已集成。


两个方向都写清,避免把工具用在不适合的任务上。
| 你的任务 | 该用 QuantLib 吗 | 原因 | 更合适的做法 |
|---|---|---|---|
| 给期权定价并计算 Greeks | 适合 | 提供多类期权与多类引擎,Greeks 可与手写公式互验 | — |
| 从市场报价构建收益率曲线 | 适合 | RateHelper + 分段曲线体系完整,可反算自洽性 | — |
| 债券现金流、久期、DV01 计量 | 适合 | BondFunctions 覆盖价格与风险指标 | 注意口径与符号约定 |
| 组合绩效与回撤报告 | 不适合 | QuantLib 不做组合统计与报告 | 用绩效分析类库 |
| 行情数据获取与存储 | 不适合 | 库本身不提供行情接口 | 用数据接口或本地数据源 |
| 自动交易与下单 | 不适合 | 没有交易接口与信号逻辑 | 用交易执行框架 |
| 收益预测 / 选股 | 不适合 | 不是预测工具,模型输出不等于市场结果 | 统计与基本面研究 |
| 中债估值口径的完整复现 | 需自建 | 有日历与计息框架,但无中债估值规则与数据 | 按市场规则自建口径并留痕 |
| 学习衍生品定价概念 | 适合当练习场 | 类与引擎都公开、结果可交叉验证,适合验证公式 | 先手算一个 Black-Scholes 再与库对账 |
| 生产环境的定价中台 | 需自建完整链路 | 库只负责计算;数据、留痕、审批、灾备都在库之外 | 按业务需求自行封装与监控 |
QuantLib 是开源的 C++ 量化金融库,用于衍生品建模、定价与风险管理,覆盖期权、债券、掉期、期限结构与定价引擎;Python 绑定为 QuantLib-Python。本站实测环境为 QuantLib 1.43 / Python 3.11.9,类名与行为以官方文档和实现为准。
本站把每个结论都落到可复现的实验上:写明测试版本、估值日、日历与计息约定,并给出本机跑出的数字与报错原文。官方文档是能力与接口的权威来源,本站不替代它;其它中文教程多为步骤介绍,本站补充的是「换一个约定会差多少」这类可验证细节。QuantLib 与 EasyClaw 无已证实集成。
绝大多数情况不是代码错,而是约定不同。本站实测:只把应计计息约定从 Actual/Actual (ISDA) 换成 Actual/360,净价就从 99.75408467 变成 99.99419065;把 settlementDays 从 T+0 改到 T+90,全价从 99.75412364 变成 100.81449704。先把估值日、日历、计息约定、结算天数四项对齐,再比较价格。以官方口径为准。
没有已证实集成。两者是独立路线:QuantLib 是需要自己装环境并写代码的定价库,EasyClaw 是免部署、用自然语言发起量化研究的技能路线。EasyClaw 的量化类技能有自己的能力边界与数据源,不能假设它调用了 QuantLib。
不能。本站全部实验使用虚构标的与固定参数(如平曲线 3%、票息 3% 的虚构债券),目的是让口径差异可比较、可复现。真实定价需要按发行文件与市场数据取值,结果不构成投资建议。
想判断工具是否适合自己,看完本页的选型表即可;要动手就先看安装页;如果已经跑出价格但对不上,直接进金融约定审计页;如果程序报错或结果为 0,去错误与排查页按报错原文定位。
没有。它以库和 API 形式使用,需要在 C++ 或 Python 代码里调用;曲线图与风险报表要配合其它可视化工具完成。本站的示意图与表格都是为了说明计算链路,不是 QuantLib 自带界面。以官方文档为准。
能用一部分:本机实测 ql.China(ql.China.SSE) 与 ql.China(ql.China.IB) 两个日历可用(2024 年非营业日分别为 124 天与 115 天)。但 QuantLib 没有中国计息口径、没有中债估值规则、也不提供行情数据,银行间与交易所的结算与估值规则都需要自行适配并留痕。以市场规则为准。