QuantLib · Options Pricing

QuantLib期权定价:欧式/美式期权与 Greeks 计算

QuantLib 支持欧式、美式、亚式、障碍、二元、篮子等期权类型,并通过 AnalyticEuropeanEngine(Black-Scholes 解析解)、二叉树、有限差分、蒙特卡洛等引擎定价,同时计算 Delta/Gamma/Vega/Theta/Rho 等希腊字母。

欧式期权
EuropeanOption
美式期权
VanillaOption
亚式/障碍
Asian/Barrier
Greeks
Delta/Vega

QuantLib 期权类型与 Greeks 示意;基于 QuantLib Instruments,非实测定价。

Option types

QuantLib 支持的期权类型对照表

依据 QuantLib Instruments 模块。

期权类型QuantLib 类适用场景注意点
欧式期权EuropeanOption只在到期日行权,有 Black-Scholes 闭式解用 AnalyticEuropeanEngine 解析定价最快
美式期权VanillaOption到期日前任意时刻可行权,无闭式解需 Binomial 二叉树或 FiniteDifferences 引擎
亚式期权AsianOption收益取决于标的平均价,路径依赖通常用 MonteCarlo 引擎
障碍期权BarrierOption触及/未触及障碍价决定生效,路径依赖需设置 barrier 与 rebate
二元期权BinaryOption(数字期权)到期价达标付固定金额,否则为 0收益不连续,Greeks 行为特殊
篮子期权BasketOption多标的组合,用于分散化产品高维,需 MonteCarlo
Quick start

欧式期权定价分步流程

以欧式看涨期权为例,逐步用 Python 构建并定价。

1. 设置评估日与日历:today = ql.Date(15, 7, 2026); ql.Settings.instance().evaluationDate = today; calendar = ql.TARGET() —— 说明:评估日决定折现基准,TARGET 是工作日历。

2. 设收益率曲线与波动率:r = ql.FlatForward(today, 0.05, ql.Actual360()); sigma = ql.BlackConstantVol(today, calendar, 0.20, ql.Actual360()) —— 说明:FlatForward 给恒定无风险利率 5%,BlackConstantVol 给恒定波动率 20%。

3. 建期权与 Payoff:payoff = ql.PlainVanillaPayoff(ql.Option.Call, 100.0); exercise = ql.EuropeanExercise(ql.Date(15, 1, 2027)); option = ql.EuropeanOption(payoff, exercise) —— 说明:行权价 100 的看涨期权,欧式行权。

4. 设定价引擎:engine = ql.AnalyticEuropeanEngine(ql.BlackScholesMertonProcess(spot_handle, ql.YieldTermStructureHandle(r), ql.BlackVolTermStructureHandle(sigma))); option.setPricingEngine(engine) —— 说明:AnalyticEuropeanEngine 用 Black-Scholes 解析解。

5. 计算 NPV 与 Greeks:option.NPV()(价格)、option.delta()option.gamma()option.vega()option.theta()option.rho() —— 说明:分别返回期权价值与各希腊字母(数值依输入参数而定)。

Greeks

Greeks 对照表

衡量期权价格对各因子的敏感度。

希腊字母含义QuantLib 方法
Delta价格对标的价的一阶敏感度option.delta()
GammaDelta 对标的价的敏感度(二阶)option.gamma()
Vega价格对波动率的敏感度option.vega()
Theta价格对时间流逝的敏感度option.theta()
Rho价格对无风险利率的敏感度option.rho()
Engine choice

定价模型选型:什么期权用什么引擎

场景推荐引擎理由
欧式无分红/常数参数AnalyticEuropeanEngineBlack-Scholes 闭式解,速度快且精确
美式期权Binomial(二叉树)/ FiniteDifferences无闭式解,需数值方法处理提前行权
路径依赖(亚式/障碍)MonteCarlo收益依赖路径,MC 天然支持
高维篮子期权MonteCarlo维度高时 MC 复杂度不随维度爆炸
需要稳定 GreeksFiniteDifferencesPDE 方法 Greeks 更平滑稳定
注意:选型是速度/精度/适用性的权衡,具体以 QuantLib 官方文档为准,不构成交易建议。
Cautions

期权定价注意点

注意点说明
波动率输入波动率是定价最敏感输入,需与模型假设一致(常数 vs 曲面)
计息约定Actual/360 与 Actual/365 会改变时间折算,影响价格
无风险利率与分红率需明确是否含分红(YieldTermStructure 与标的 spot 的衔接)
模型假设局限Black-Scholes 假设常数波动率/对数正态,实盘存在微笑与肥尾
引擎与工具匹配引擎需匹配期权类型,否则报错或结果无意义
FAQ

常见问题

QuantLib 能定价哪些期权?

欧式、美式、亚式、障碍、二元、篮子等期权类型均有对应 QuantLib 类,具体以官方 Instruments 文档为准。

欧式期权用什么引擎定价?

AnalyticEuropeanEngine 用 Black-Scholes 解析解,速度快且精确;也可用 MC/FD 交叉验证,以官方文档为准。

Greeks 怎么算?

定价引擎设置后,用 option.delta()/gamma()/vega()/theta()/rho() 直接获取,以官方实现为准。

QuantLib 的期权定价结果能直接用于实盘吗?

不能。定价基于模型假设(如常数波动率),实盘存在微笑、肥尾、流动性等差异,不构成投资建议。

EasyClaw 能做期权定价吗?

EasyClaw 的 quant-analyst 技能含期权定价与 Greeks 计算能力,但它是量化研究 Skill,与 QuantLib 无已证实集成,定位不同;具体见对比页。

看完期权,看定价引擎怎么选

四类定价引擎(解析/二叉树/有限差分/蒙特卡洛)的速度、精度与适用工具各不相同,选对引擎事半功倍。