QuantLib · quantlib.instruments

QuantLib金融工具:期权、债券、掉期与信用工具清单

QuantLib 的 Instruments 模块提供丰富的金融工具建模类:期权(欧式/美式/亚式/障碍)、固定利率债券、利率掉期、信用违约掉期(CDS)、可转换债券、远期等。每个工具都要配一个合适的定价引擎才能算出价格与风险指标。

期权
债券
掉期
CDS/可转债

QuantLib 金融工具示意;基于 QuantLib Instruments,非工具清单全集。

Instruments

金融工具清单对照表

依据 QuantLib Instruments 模块。

工具QuantLib 类用途注意点
欧式期权EuropeanOption欧式看涨/看跌期权定价需配 Payoff 与解析/数值引擎
美式期权VanillaOption可提前行权的美式期权需二叉树/有限差分引擎
亚式/障碍期权AsianOption / BarrierOption路径依赖期权定价通常需蒙特卡洛引擎
固定利率债券FixedRateBond附息债券定价/现金流需 Schedule 定义付息日
利率掉期VanillaSwap固定/浮动利率互换需收益率曲线与 SwapRateHelper
信用违约掉期CreditDefaultSwapCDS 信用风险定价需信用曲线与违约概率
可转换债券ConvertibleBond可转债(债+股特性)需嵌入期权与股票数据
远期合约Forward远期价格/交割线性收益,解析定价
Bond pricing

债券建模分步流程

1. 设评估日与日历:today = ql.Date(15, 6, 2023); ql.Settings.instance().evaluationDate = today —— 先确定定价基准日。

2. 定义付息日 Schedule:ql.Schedule(effective, maturity, ql.Period(ql.Semiannual), calendar, ql.Following, ql.Following, ql.DateGeneration.Backward, False) —— 每半年付息一次。

3. 建固定利率债券:ql.FixedRateBond(settlement_days, face_amount, schedule, [coupon_rate], day_count) —— 指定票面、票息与计息约定。

4. 设定价引擎:bond.setPricingEngine(ql.DiscountingBondEngine(yield_curve_handle)) —— 用收益率曲线折现现金流。

5. 取结果:bond.NPV()bond.cleanPrice()bond.dirtyPrice() —— 净值、净价、全价。

Swap pricing

利率掉期建模分步(概念)

1. 建 VanillaSwap 对象:固定腿 + 浮动腿,指定名义本金、付息频率与计息约定。

2. 用 SwapRateHelper 从市场掉期利率构建收益率曲线:ql.SwapRateHelper(ql.QuoteHandle(rate), tenor, calendar, fixed_freq, fixed_convention, fixed_day_count, index)

3. 设定价引擎 DiscountingSwapEngine(用收益率曲线折现固定/浮动两腿)。

4. 计算 NPV 与 fairRate:掉期净现值与使 NPV=0 的公平固定利率。

Engine mapping

工具与定价引擎匹配表

金融工具典型定价引擎适用场景
固定利率债券DiscountingBondEngine用收益率曲线折现现金流
欧式期权AnalyticEuropeanEngineBlack-Scholes 解析解
利率掉期DiscountingSwapEngine折现固定/浮动两腿
信用违约掉期MidPointCdsEngine基于违约概率曲线
路径依赖期权MCEuropeanEngine / MC 类亚式/障碍等蒙特卡洛模拟
Selection

工具建模选型注意点

注意点说明
现金流 Schedule债券/掉期必须用 Schedule 定义付息日与日期生成规则,付息频率、日期调整约定直接影响现金流。
计息约定 DayCounterActual/360、30/360 等约定影响应计利息与全价,须与市场惯例一致。
结算日交易日后若干工作日结算,settlement_days 影响价格。
工具需配对应引擎不配引擎或配错引擎会导致 NPV 报错或结果错误,见上表匹配关系。
曲线一致性债券/掉期折现用的收益率曲线、期权用的波动率曲面须来自同一套市场数据。
FAQ

常见问题

QuantLib 支持哪些金融工具?

期权(欧式/美式/亚式/障碍/二元/篮子)、债券(FixedRateBond)、利率掉期(VanillaSwap)、信用违约掉期(CreditDefaultSwap)、可转换债券(ConvertibleBond)、远期(Forward)等,具体以官方 Instruments 文档为准。

债券定价为什么要配 DiscountingBondEngine?

FixedRateBond 本身只定义现金流,价格需要 DiscountingBondEngine 用收益率曲线折现各期现金流得到;不配引擎 NPV 会报错,以官方实现为准。

cleanPrice 和 dirtyPrice 有什么区别?

dirtyPrice(全价)含应计利息,cleanPrice(净价)不含;两者差值由计息约定与付息日决定,以官方文档为准。

利率掉期怎么构建收益率曲线?

用 SwapRateHelper 从市场掉期利率校准收益率曲线,再配 DiscountingSwapEngine 定价;具体以官方 SwapRateHelper 用法为准。

EasyClaw 能做债券/掉期/CDS 定价吗?

EasyClaw 的 quant-analyst 技能侧重期权定价+Greeks 与回测,未见对 QuantLib 债券/掉期/CDS 的已证实支持;QuantLib 与 EasyClaw 无集成,两者是独立路线,见对比页。

看完工具,决定自建还是用 EasyClaw

自建 QuantLib 做衍生品定价,还是用 EasyClaw 免部署做量化研究,看对比页。