股票期权理论价格核心计算方法说明
文档版本:1.0
核对日期:2026-09-14
适用范围:本项目欧式股票期权理论定价、历史波动率估计、风险指标计算及数值复核
1. 文档目的与计算边界#
本文完整说明股票期权理论价格的核心计算链路,包括参数定义、单位换算、期限计算、历史波动率估计、Black–Scholes–Merton(BSM)解析定价、风险指标、无套利恒等式、二叉树与蒙特卡洛复核,以及隐含波动率反算。
本文的目标是使任意一组参数都能够按照统一口径被独立复算,并通过数学恒等式和不同数值方法判断结果是否正确。本文不讨论行情获取、外部系统、交互功能和技术部署。
理论价格回答的是:在给定模型假设与参数条件下,一份欧式期权每股到期权利的无套利参考价值是多少。它不直接等同于市场报价、成交价格或交易商报价。
2. 核心计算骨干流程#
一组完整计算按以下顺序进行:
确定估值日、到期日、标的证券价格、行权价格、波动率、无风险利率、连续股息率和名义本金。
检查各参数是否为有限实数,并检查价格、期限、波动率等约束。
将百分数形式的波动率、利率和股息率换算为小数。
根据估值日与到期日计算计息天数,再用 ACT/360 换算年化期限。
如需从历史价格估计波动率,使用比例前复权收盘价、自然月窗口、日对数收益率、总体标准差和 250 日年化规则得到候选值。
将标准化参数代入带连续股息率的 BSM 模型,计算认购和认沽期权每股理论价格。
根据每股价格计算名义股数、理论总价值和名义本金占比。
计算 Delta、Gamma、Vega、Theta、Rho、理论远期价格等风险与诊断量。
用认购认沽平价进行解析恒等式校验,并可用 CRR 二叉树和蒙特卡洛模拟进行独立数值复核。
当给定期权市场价格时,在无套利边界内用二分法反算隐含波动率。
这条链路可以概括为:
flowchart TD
A[确定合约与估值参数] --> B[合法性检查与单位换算]
B --> C[计算计息天数和年化期限]
C --> D{波动率如何确定}
D -->|直接给定| E[标准化波动率]
D -->|历史估计| F[复权价格与对数收益率]
F --> G[总体标准差与年化]
G --> E
E --> H[BSM解析定价]
H --> I[总价值与风险指标]
H --> J[平价恒等式校验]
H --> K[二叉树与蒙特卡洛复核]
H --> L[给定价格时反算隐含波动率]
3. 参数体系与单位换算#
3.1 原始参数#
参数
符号
原始单位
进入公式前的处理
约束与说明
标的证券价格
S S S
元/股
保持原值
S > 0 S>0 S > 0
行权价格
K K K
元/股
保持原值
K > 0 K>0 K > 0
年化波动率
σ % \sigma_{\%} σ %
%/年
σ = σ % / 100 \sigma=\sigma_{\%}/100 σ = σ % /100
σ ≥ 0 \sigma\ge 0 σ ≥ 0
无风险利率
r % r_{\%} r %
%/年
r = r % / 100 r=r_{\%}/100 r = r % /100
连续复利,可为负值
连续股息率
q % q_{\%} q %
%/年
q = q % / 100 q=q_{\%}/100 q = q % /100
连续复利,可为负值;项目默认值为 0
估值日
D v D_v D v
日期
换算计息天数
采用上海时区自然日
到期日
D e D_e D e
日期
换算计息天数
不早于估值日
名义本金
N 0 N_0 N 0
元
保持原值
N 0 ≥ 0 N_0\ge 0 N 0 ≥ 0 ,不影响每股价格
期权市场价格
V m k t V_{\mathrm{mkt}} V mkt
元/股
保持原值
仅在反算隐含波动率时使用
行权价格由合约条款决定。在需要构造平值情景时可令 K = S K=S K = S ,但这只是情景设定,不是 BSM 公式对行权价格的推导。
3.2 派生参数#
派生量
符号
计算方式
用途
普通自然日期差
D c a l e n d a r D_{\mathrm{calendar}} D calendar
D e − D v D_e-D_v D e − D v
期限换算的基础
计息天数
d d d
D c a l e n d a r + 1 D_{\mathrm{calendar}}+1 D calendar + 1
将估值日计入期限
年化期限
T T T
d / 360 d/360 d /360
折现和随机扩散
标的资产现值项
S q S_q S q
S e − q T Se^{-qT} S e − qT
BSM 与无套利边界
行权价格现值
K r K_r K r
K e − r T Ke^{-rT} K e − r T
BSM 与无套利边界
理论远期价格
F 0 F_0 F 0
S e ( r − q ) T Se^{(r-q)T} S e ( r − q ) T
利率、股息率方向校验
名义股数
Q Q Q
N 0 / S N_0/S N 0 / S
将每股价值折算为总价值
所有参数必须只进行一次单位换算。尤其应避免把已经写成小数的 0.30 0.30 0.30 再除以 100,或把百分数形式的 30 30 30 直接作为波动率代入公式。
3.3 参数合法性检查#
计算前至少检查:
S S S 、K K K 、σ \sigma σ 、r r r 、q q q 、N 0 N_0 N 0 和相关日期均有效;
所有数值均为有限实数,不能是无穷大或非数值;
S > 0 S>0 S > 0 、K > 0 K>0 K > 0 、σ ≥ 0 \sigma\ge0 σ ≥ 0 、N 0 ≥ 0 N_0\ge0 N 0 ≥ 0 ;
D e ≥ D v D_e\ge D_v D e ≥ D v ;
历史收盘价均大于 0,日期有序且无重复;
隐含波动率反算价格满足对应期权的无套利边界。
4. 到期时间的计算#
4.1 本项目实际口径#
先计算到期日与估值日之间不含首日的自然日期差:
D c a l e n d a r = D e − D v D_{\mathrm{calendar}}=D_e-D_v D calendar = D e − D v
将估值日计入期限:
d = D c a l e n d a r + 1 d=D_{\mathrm{calendar}}+1 d = D calendar + 1
采用 ACT/360 换算年化期限:
T = d 360 T=\frac{d}{360} T = 360 d
例如估值日为 2026-09-14,到期日为 2026-12-13,普通自然日期差为 90 天,计息天数为 91 天,因此:
T = 91 360 = 0.252777 … T=\frac{91}{360}=0.252777\ldots T = 360 91 = 0.252777 …
到期日与估值日相同时,规范化计算的计息天数为 1,即 T = 1 / 360 T=1/360 T = 1/360 。底层定价函数仍保留 T = 0 T=0 T = 0 的到期边界分支,便于处理已经到期的理论状态。
4.2 常见口径与本项目选择#
事项
常用可选项
本项目选择
主要影响
是否计入估值日
不计入;计入
计入,日期差加一
相差一天的时间价值
年化分母
360、365、365.25
360
改变 T T T 和折现期限
天数类型
自然日、交易日
自然日
周末与节假日是否计时
日期基准
本地时区、统一业务时区
上海时区
临近午夜时可能相差一天
期限是所有折现项与 T \sqrt T T 扩散项的共同输入。复算结果时必须同时匹配含今日规则、天数类型和年化分母。
5. 历史波动率估计#
历史波动率是波动率参数 σ \sigma σ 的一种估计来源。它度量已经发生的收益率波动,不保证等于期权剩余期限内的未来实际波动率,也不等同于市场隐含波动率。
5.1 价格序列口径#
项目采用比例前复权日收盘价 。设原始收盘价为 P t P_t P t ,相应比例调整因子为 a t a_t a t ,则调整后价格写为:
P t a d j = a t P t P_t^{\mathrm{adj}}=a_tP_t P t adj = a t P t
比例前复权用于减弱分红、送转和拆并股引起的机械价格跳变,同时保持收益率的乘法结构。只要整段序列使用一致的比例口径,调整因子的整体归一化常数不会改变相邻价格比值。
常用选择包括未复权、比例前复权、差值前复权、比例后复权和差值后复权。本项目选择比例前复权。
5.2 时间窗口#
项目计算 m ∈ { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 12 } m\in\{1,2,3,4,5,6,7,8,12\} m ∈ { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 12 } 个月的历史波动率。对每个期限,从估值日 D v D_v D v 向前减 m m m 个自然月得到切点 C m C_m C m 。若目标月份不存在相同日,例如从 3 月 31 日向前减一个月,则切点截到目标月最后一日。
窗口构造规则为:
收益率结束日严格晚于 C m C_m C m ,且不晚于估值日;
补入 C m C_m C m 当日或之前最近一个交易日的收盘价,作为第一笔收益率的基期价格;
缺少基期价格或有效观察值不足时,不计算该窗口的波动率。
补入基期价格是为了让切点后的第一个交易日仍能得到一笔完整收益率。
5.3 日对数收益率#
对连续的比例前复权收盘价计算日对数收益率:
x t = ln ( P t a d j P t − 1 a d j ) x_t=\ln\left(\frac{P_t^{\mathrm{adj}}}{P_{t-1}^{\mathrm{adj}}}\right) x t = ln ( P t − 1 adj P t adj )
常见选择还有简单收益率:
x t s i m p l e = P t a d j P t − 1 a d j − 1 x_t^{\mathrm{simple}}=\frac{P_t^{\mathrm{adj}}}{P_{t-1}^{\mathrm{adj}}}-1 x t simple = P t − 1 adj P t adj − 1
本项目采用对数收益率,因为它可以跨期相加,并与 BSM 的对数正态价格假设保持一致。
5.4 总体标准差#
设一个窗口包含 n n n 个日对数收益率,其均值为:
x ˉ = 1 n ∑ t = 1 n x t \bar x=\frac{1}{n}\sum_{t=1}^{n}x_t x ˉ = n 1 t = 1 ∑ n x t
项目使用总体标准差,即分母为 n n n :
σ d a i l y = 1 n ∑ t = 1 n ( x t − x ˉ ) 2 \sigma_{\mathrm{daily}}=
\sqrt{\frac{1}{n}\sum_{t=1}^{n}(x_t-\bar x)^2} σ daily = n 1 t = 1 ∑ n ( x t − x ˉ ) 2
样本标准差会使用 n − 1 n-1 n − 1 作为分母。两者在短窗口中差异更明显,因此复算时必须明确选择。
5.5 年化#
按每年 250 个交易日年化:
σ a n n u a l = σ d a i l y 250 \sigma_{\mathrm{annual}}=\sigma_{\mathrm{daily}}\sqrt{250} σ annual = σ daily 250
若后续需要百分数形式,则计算:
σ % = 100 σ a n n u a l \sigma_{\%}=100\sigma_{\mathrm{annual}} σ % = 100 σ annual
代入 BSM 前再确认使用小数形式 σ = σ % / 100 \sigma=\sigma_{\%}/100 σ = σ % /100 。实际计算应避免先舍入为两位百分数再代入,以免引入额外误差。
5.6 完整口径汇总#
环节
常用可选项
本项目选择
价格口径
未复权、前复权、后复权
比例前复权
收益率
简单收益率、对数收益率
对数收益率
窗口
固定交易日、固定自然日、自然月
自然月
窗口首笔收益
从切点后首价起算、补入基期价格
补入切点当日或之前最近收盘价
标准差
总体标准差、样本标准差
总体标准差,分母 n n n
年化交易日数
242、250、252
250
6. BSM 欧式期权解析定价#
6.1 模型假设#
带连续股息率的 BSM 模型主要假设:
标的价格服从几何布朗运动,连续复利收益呈对数正态分布;
r r r 、q q q 和 σ \sigma σ 在期限内保持恒定;
可以连续交易并进行连续对冲;
不考虑税费、交易成本和买卖价差;
市场不存在无风险套利;
期权为欧式,只能在到期日行权。
6.2 标准正态函数#
标准正态密度函数为:
ϕ ( z ) = 1 2 π e − z 2 / 2 \phi(z)=\frac{1}{\sqrt{2\pi}}e^{-z^2/2} ϕ ( z ) = 2 π 1 e − z 2 /2
标准正态累计分布函数为:
Φ ( z ) = ∫ − ∞ z ϕ ( u ) d u \Phi(z)=\int_{-\infty}^{z}\phi(u)\,du Φ ( z ) = ∫ − ∞ z ϕ ( u ) d u
数值实现可用误差函数计算累计分布:
Φ ( z ) = 1 2 [ 1 + erf ( z 2 ) ] \Phi(z)=\frac12\left[1+\operatorname{erf}\left(\frac{z}{\sqrt2}\right)\right] Φ ( z ) = 2 1 [ 1 + erf ( 2 z ) ]
6.3 中间变量#
当 T > 0 T>0 T > 0 且 σ > 0 \sigma>0 σ > 0 时:
d 1 = ln ( S / K ) + ( r − q + 1 2 σ 2 ) T σ T d_1=\frac{\ln(S/K)+(r-q+\tfrac12\sigma^2)T}{\sigma\sqrt T} d 1 = σ T ln ( S / K ) + ( r − q + 2 1 σ 2 ) T
d 2 = d 1 − σ T d_2=d_1-\sigma\sqrt T d 2 = d 1 − σ T
同时计算:
S q = S e − q T , K r = K e − r T S_q=Se^{-qT},\qquad K_r=Ke^{-rT} S q = S e − qT , K r = K e − r T
6.4 认购与认沽每股理论价格#
欧式认购期权价格为:
C = S e − q T Φ ( d 1 ) − K e − r T Φ ( d 2 ) C=Se^{-qT}\Phi(d_1)-Ke^{-rT}\Phi(d_2) C = S e − qT Φ ( d 1 ) − K e − r T Φ ( d 2 )
欧式认沽期权价格为:
P = K e − r T Φ ( − d 2 ) − S e − q T Φ ( − d 1 ) P=Ke^{-rT}\Phi(-d_2)-Se^{-qT}\Phi(-d_1) P = K e − r T Φ ( − d 2 ) − S e − qT Φ ( − d 1 )
计算时应使用未经中间舍入的 d 1 d_1 d 1 、d 2 d_2 d 2 、折现因子和累计分布值。只在最终报告阶段按照需要格式化小数位数。
6.5 到期与零波动率边界#
当 T = 0 T=0 T = 0 时,理论价格等于到期内在价值:
C = max ( S − K , 0 ) , P = max ( K − S , 0 ) C=\max(S-K,0),\qquad P=\max(K-S,0) C = max ( S − K , 0 ) , P = max ( K − S , 0 )
当 T > 0 T>0 T > 0 且 σ = 0 \sigma=0 σ = 0 时,标的终值在模型中没有随机扩散,理论价格为折现确定性价值:
C = max ( S e − q T − K e − r T , 0 ) C=\max(Se^{-qT}-Ke^{-rT},0) C = max ( S e − qT − K e − r T , 0 )
P = max ( K e − r T − S e − q T , 0 ) P=\max(Ke^{-rT}-Se^{-qT},0) P = max ( K e − r T − S e − qT , 0 )
此时常规 d 1 d_1 d 1 、d 2 d_2 d 2 和部分 Greeks 公式含有除以 σ \sigma σ 的项,应进入单独边界分支,不能直接使用常规公式。
7. 名义本金与总价值#
名义本金按当前标的价格折算为名义股数:
Q = N 0 S Q=\frac{N_0}{S} Q = S N 0
认购和认沽理论总价值分别为:
V C = C Q , V P = P Q V_C=CQ,\qquad V_P=PQ V C = CQ , V P = PQ
理论总价值占名义本金的比例为:
R C = V C N 0 = C S , R P = V P N 0 = P S R_C=\frac{V_C}{N_0}=\frac{C}{S},\qquad
R_P=\frac{V_P}{N_0}=\frac{P}{S} R C = N 0 V C = S C , R P = N 0 V P = S P
名义本金只改变折算股数和总价值,不改变每股理论价格。当 N 0 = 0 N_0=0 N 0 = 0 时,总价值为 0,而占比没有定义,不应计算 0 / 0 0/0 0/0 。
8. 风险指标计算#
以下 Greeks 均基于同一组 S S S 、K K K 、σ \sigma σ 、r r r 、q q q 和 T T T 。设 ϕ ( d 1 ) \phi(d_1) ϕ ( d 1 ) 为标准正态密度。
8.1 Delta#
Δ C = e − q T Φ ( d 1 ) \Delta_C=e^{-qT}\Phi(d_1) Δ C = e − qT Φ ( d 1 )
Δ P = e − q T [ Φ ( d 1 ) − 1 ] \Delta_P=e^{-qT}[\Phi(d_1)-1] Δ P = e − qT [ Φ ( d 1 ) − 1 ]
Delta 表示标的价格变化 1 元时,每股期权价格的一阶近似变化量。
8.2 Gamma#
Γ = e − q T ϕ ( d 1 ) S σ T \Gamma=\frac{e^{-qT}\phi(d_1)}{S\sigma\sqrt T} Γ = S σ T e − qT ϕ ( d 1 )
在相同参数下,欧式认购与认沽具有相同 Gamma。Gamma 表示 Delta 对标的价格的敏感度。
8.3 Vega#
先计算波动率按小数变化 1.0 时的 Vega,再除以 100:
Vega = S e − q T ϕ ( d 1 ) T 100 \operatorname{Vega}=\frac{Se^{-qT}\phi(d_1)\sqrt T}{100} Vega = 100 S e − qT ϕ ( d 1 ) T
因此,本项目的 Vega 表示年化波动率上升 1 个百分点 时,每股期权价格的一阶近似变化量。
8.4 Theta#
定义共同项:
A = − S e − q T ϕ ( d 1 ) σ 2 T A=-\frac{Se^{-qT}\phi(d_1)\sigma}{2\sqrt T} A = − 2 T S e − qT ϕ ( d 1 ) σ
认购期权年度 Theta 为:
Θ C y e a r = A − r K e − r T Φ ( d 2 ) + q S e − q T Φ ( d 1 ) \Theta_C^{\mathrm{year}}
=A-rKe^{-rT}\Phi(d_2)+qSe^{-qT}\Phi(d_1) Θ C year = A − rK e − r T Φ ( d 2 ) + qS e − qT Φ ( d 1 )
认沽期权年度 Theta 为:
Θ P y e a r = A + r K e − r T Φ ( − d 2 ) − q S e − q T Φ ( − d 1 ) \Theta_P^{\mathrm{year}}
=A+rKe^{-rT}\Phi(-d_2)-qSe^{-qT}\Phi(-d_1) Θ P year = A + rK e − r T Φ ( − d 2 ) − qS e − qT Φ ( − d 1 )
按照 ACT/360 换算为每日 Theta:
Θ d a y = Θ y e a r 360 \Theta^{\mathrm{day}}=\frac{\Theta^{\mathrm{year}}}{360} Θ day = 360 Θ year
该数值表示自然时间减少一天时,每股期权价格的一阶近似变化量。在临近到期、深度实值或深度虚值等区域,一阶近似可能变得不稳定。
8.5 Rho#
ρ C = K T e − r T Φ ( d 2 ) 100 \rho_C=\frac{KTe^{-rT}\Phi(d_2)}{100} ρ C = 100 K T e − r T Φ ( d 2 )
ρ P = − K T e − r T Φ ( − d 2 ) 100 \rho_P=-\frac{KTe^{-rT}\Phi(-d_2)}{100} ρ P = − 100 K T e − r T Φ ( − d 2 )
除以 100 后,Rho 表示连续复利无风险利率上升 1 个百分点 时,每股期权价格的一阶近似变化量。
8.6 Greeks 的局部近似性质#
Greeks 是当前位置附近的一阶或二阶敏感度。例如,对较小的标的价格变动 Δ S \Delta S Δ S ,可作二阶近似:
Δ V ≈ Δ Δ S + 1 2 Γ ( Δ S ) 2 \Delta V\approx \Delta\,\Delta S+\frac12\Gamma(\Delta S)^2 Δ V ≈ Δ Δ S + 2 1 Γ ( Δ S ) 2
当参数变化较大时,应使用新参数重新完整定价,不能把局部线性近似当作精确结果。
9. 诊断量与无套利恒等式#
9.1 理论远期价格#
F 0 = S e ( r − q ) T F_0=Se^{(r-q)T} F 0 = S e ( r − q ) T
该式可检查利率和股息率的方向:在其他条件相同时,r r r 上升会提高理论远期价格,q q q 上升会降低理论远期价格。
9.2 认购认沽平价#
相同标的、行权价和到期日的欧式认购与认沽应满足:
C − P = S e − q T − K e − r T C-P=Se^{-qT}-Ke^{-rT} C − P = S e − qT − K e − r T
定义平价误差:
ε p a r i t y = C − P − ( S e − q T − K e − r T ) \varepsilon_{\mathrm{parity}}
=C-P-\left(Se^{-qT}-Ke^{-rT}\right) ε parity = C − P − ( S e − qT − K e − r T )
同一套双精度参数和公式下,ε p a r i t y \varepsilon_{\mathrm{parity}} ε parity 应接近机器舍入误差。明显偏离 0 通常说明认购或认沽公式的符号、折现项、股息项、期限或单位存在不一致。
10. CRR 二叉树复核#
Cox–Ross–Rubinstein(CRR)二叉树用离散时间风险中性定价复核欧式期权解析解。本项目采用 M = 500 M=500 M = 500 步。
单步时间长度为:
Δ t = T M \Delta t=\frac{T}{M} Δ t = M T
上涨与下跌因子为:
u = e σ Δ t , d = 1 u u=e^{\sigma\sqrt{\Delta t}},\qquad d=\frac{1}{u} u = e σ Δ t , d = u 1
风险中性上涨概率为:
p = e ( r − q ) Δ t − d u − d p=\frac{e^{(r-q)\Delta t}-d}{u-d} p = u − d e ( r − q ) Δ t − d
单步折现因子为:
β = e − r Δ t \beta=e^{-r\Delta t} β = e − r Δ t
应检查 0 < p < 1 0<p<1 0 < p < 1 。若不满足,说明步长或参数组合不适合该离散树,需要增加步数或采用其他数值方案。
到期节点 j = 0 , … , M j=0,\ldots,M j = 0 , … , M 的标的价格为:
S M , j = S u j d M − j S_{M,j}=Su^jd^{M-j} S M , j = S u j d M − j
到期收益分别为:
C M , j = max ( S M , j − K , 0 ) C_{M,j}=\max(S_{M,j}-K,0) C M , j = max ( S M , j − K , 0 )
P M , j = max ( K − S M , j , 0 ) P_{M,j}=\max(K-S_{M,j},0) P M , j = max ( K − S M , j , 0 )
逐层向前递推:
V i , j = β [ p V i + 1 , j + 1 + ( 1 − p ) V i + 1 , j ] V_{i,j}=\beta\left[pV_{i+1,j+1}+(1-p)V_{i+1,j}\right] V i , j = β [ p V i + 1 , j + 1 + ( 1 − p ) V i + 1 , j ]
最终 V 0 , 0 V_{0,0} V 0 , 0 即二叉树价格。这里不加入提前行权判断,因为被复核对象是欧式期权。随着步数增加,CRR 价格应向 BSM 解析价格收敛;有限步数下允许存在小幅离散误差。
11. 蒙特卡洛复核#
本项目采用 M = 20,000 M=20{,}000 M = 20 , 000 条路径,并固定随机种子 20260907,以保证复算可重复。
在风险中性测度下,标的到期价格为:
S T = S exp [ ( r − q − 1 2 σ 2 ) T + σ T Z ] , Z ∼ N ( 0 , 1 ) S_T=S\exp\left[(r-q-\tfrac12\sigma^2)T+\sigma\sqrt T Z\right],
\qquad Z\sim N(0,1) S T = S exp [ ( r − q − 2 1 σ 2 ) T + σ T Z ] , Z ∼ N ( 0 , 1 )
每条路径的折现认购和认沽收益为:
X C = e − r T max ( S T − K , 0 ) X_C=e^{-rT}\max(S_T-K,0) X C = e − r T max ( S T − K , 0 )
X P = e − r T max ( K − S T , 0 ) X_P=e^{-rT}\max(K-S_T,0) X P = e − r T max ( K − S T , 0 )
模拟价格是样本均值:
C ^ = 1 M ∑ i = 1 M X C , i , P ^ = 1 M ∑ i = 1 M X P , i \widehat C=\frac1M\sum_{i=1}^{M}X_{C,i},\qquad
\widehat P=\frac1M\sum_{i=1}^{M}X_{P,i} C = M 1 i = 1 ∑ M X C , i , P = M 1 i = 1 ∑ M X P , i
设折现收益的样本标准差为 s X s_X s X ,均值标准误差为:
SE ( V ^ ) = s X M \operatorname{SE}(\widehat V)=\frac{s_X}{\sqrt M} SE ( V ) = M s X
实现采用在线均值与方差算法累计统计量,无需保留全部路径。蒙特卡洛结果是统计估计,不要求逐位等于解析解;应结合标准误差判断偏差是否合理。路径数扩大四倍时,标准误差理论上约减半。
12. 隐含波动率反算#
当同一欧式期权的每股价格 V m k t V_{\mathrm{mkt}} V mkt 已知时,隐含波动率 σ ∗ \sigma^* σ ∗ 满足:
V B S M ( S , K , r , q , T , σ ∗ ) = V m k t V_{\mathrm{BSM}}(S,K,r,q,T,\sigma^*)=V_{\mathrm{mkt}} V BSM ( S , K , r , q , T , σ ∗ ) = V mkt
隐含波动率是期权价格在 BSM 假设下对应的波动率参数,不是对未来实际波动率的无条件预测。
12.1 无套利价格边界#
认购价格必须满足:
max ( S e − q T − K e − r T , 0 ) ≤ C m k t < S e − q T \max(Se^{-qT}-Ke^{-rT},0)
\le C_{\mathrm{mkt}}<Se^{-qT} max ( S e − qT − K e − r T , 0 ) ≤ C mkt < S e − qT
认沽价格必须满足:
max ( K e − r T − S e − q T , 0 ) ≤ P m k t < K e − r T \max(Ke^{-rT}-Se^{-qT},0)
\le P_{\mathrm{mkt}}<Ke^{-rT} max ( K e − r T − S e − qT , 0 ) ≤ P mkt < K e − r T
若价格低于下界或达到、超过有限波动率下的上界,则不进行常规反算。价格恰好等于下界时返回 σ ∗ = 0 \sigma^*=0 σ ∗ = 0 。
12.2 二分法#
本项目采用以下流程:
令下界 σ L = 0 \sigma_L=0 σ L = 0 ,初始上界 σ H = 1 \sigma_H=1 σ H = 1 ,即 100%。
若 σ H \sigma_H σ H 对应的 BSM 价格仍低于目标价格,则将上界连续翻倍,直至包住解;允许的最大上界为 σ H = 100 \sigma_H=100 σ H = 100 ,即 10,000%。
计算中点 σ M = ( σ L + σ H ) / 2 \sigma_M=(\sigma_L+\sigma_H)/2 σ M = ( σ L + σ H ) /2 及其 BSM 价格。
若中点价格低于目标价格,提高下界;反之降低上界。
当价格绝对误差小于 10 − 10 10^{-10} 1 0 − 10 时返回;最多迭代 200 次。
对于 T > 0 T>0 T > 0 的标准欧式认购或认沽,BSM 价格对 σ ≥ 0 \sigma\ge0 σ ≥ 0 单调不减。因此在无套利边界内,二分法具有稳定、无需导数且不易跳出区间的特点。
13. 正确性与可靠性论证#
结果可靠性由口径固定、边界处理、解析恒等式、独立数值算法和自动回归测试共同支撑。
13.1 口径一致性#
同一次计算中,期限、折现和风险指标共用相同的 T T T 、r r r 和 q q q ;认购与认沽共用相同的 S S S 、K K K 、σ \sigma σ 、r r r 、q q q 和 T T T 。百分数只转换一次,中间计算不提前舍入。这些约束可以避免最常见的系统性误差。
历史波动率的价格调整方式、窗口边界、收益率定义、标准差分母和年化因子均被明确固定。复算时只要任何一项不同,结果就可能产生可见差异。
13.2 固定解析基准#
取:
S = 100 , K = 100 , σ = 30 % , r = 2 % , q = 0 S=100,\quad K=100,\quad \sigma=30\%,\quad r=2\%,\quad q=0 S = 100 , K = 100 , σ = 30% , r = 2% , q = 0
计息天数为 91 天,故:
T = 91 360 T=\frac{91}{360} T = 360 91
当前实现得到:
C = 6.251932468916 … C=6.251932468916\ldots C = 6.251932468916 …
P = 5.747652694626 … P=5.747652694626\ldots P = 5.747652694626 …
该样例固定了含估值日、ACT/360、连续复利、百分数换算和零连续股息率,可作为跨环境复算基准。认购认沽平价误差应接近 0。
13.3 独立方法交叉验证#
固定基准下,500 步 CRR 认购价格为:
C C R R = 6.248933344947 … C_{\mathrm{CRR}}=6.248933344947\ldots C CRR = 6.248933344947 …
与 BSM 解析值的绝对差约为 0.003 元,小于 0.01 元。这是有限步数离散误差的合理量级。
20,000 路径固定种子的蒙特卡洛基准结果为:
C ^ = 6.247982756870 … , SE ( C ^ ) = 0.0689958 … \widehat C=6.247982756870\ldots,
\qquad \operatorname{SE}(\widehat C)=0.0689958\ldots C = 6.247982756870 … , SE ( C ) = 0.0689958 …
P ^ = 5.674542336164 … , SE ( P ^ ) = 0.0552800 … \widehat P=5.674542336164\ldots,
\qquad \operatorname{SE}(\widehat P)=0.0552800\ldots P = 5.674542336164 … , SE ( P ) = 0.0552800 …
解析价格与模拟均值的差异均应结合各自标准误差判断。该固定随机种子用于保证每次回归结果一致,不表示抽样误差被消除。
将上述 BSM 理论价格作为目标价格反算,得到:
σ ∗ = 0.3000000000029 … \sigma^*=0.3000000000029\ldots σ ∗ = 0.3000000000029 …
与原始输入 0.30 的差异处于二分法容差和浮点误差范围内,验证了定价与逆运算的一致性。
13.4 验证层次与判定标准#
验证层次
检查内容
判定原则
参数检查
数值范围、日期、单位、历史序列
非法状态在进入核心公式前终止
边界检查
T = 0 T=0 T = 0 、σ = 0 \sigma=0 σ = 0 、N 0 = 0 N_0=0 N 0 = 0
使用显式极限或定义,避免除零
解析校验
认购认沽平价
误差接近双精度舍入量级
离散复核
500 步 CRR
与 BSM 接近,并随步数增加趋于收敛
统计复核
20,000 路径蒙特卡洛
差异与报告的标准误差相称
逆运算复核
BSM 价格反算波动率
恢复原始 σ \sigma σ 至设定容差
回归测试
时间窗口、定价、复核和反算
固定样例输出不得无解释变化
截至核对日期,项目完整自动测试共 8 项,全部通过。其中与本文计算方法直接相关的范围包括自然月月底截断、历史窗口基期、历史波动率固定样例、固定定价基准、CRR 复核和隐含波动率反算。
13.5 数值精度与可复现性#
核心计算使用双精度浮点数;所有派生结果都基于未舍入的中间值。
CRR 是有限步数近似,比较时应声明步数。
蒙特卡洛是随机估计,比较时应同时声明路径数、随机种子和标准误差。
历史波动率复算必须保存估值日、复权口径、窗口切点、有效观察数、标准差分母和年化因子。
一次完整估值至少应保存 S S S 、K K K 、σ \sigma σ 、r r r 、q q q 、D v D_v D v 、D e D_e D e 、d d d 、T T T 和模型版本。
14. 适用范围#
本方法适用于:
具有确定到期日和行权价的欧式认购、认沽期权;
以连续股息率近似持有期收益的股票或 ETF;
教学、研究、参数敏感性分析、理论估值和独立复算;
使用历史波动率构造估值情景;
根据给定欧式期权价格反算 BSM 隐含波动率;
在模型假设基本合理、市场状态相对连续时形成无套利参考价格。
15. 模型限制#
以下情形超出当前模型的直接适用范围,或需要额外模型处理:
美式或百慕大式行权 :存在提前行权权利,标准欧式 BSM 不能反映提前行权价值;
离散现金分红 :已知金额与除息日的现金分红难以由单一连续股息率精确替代;
路径依赖条款 :障碍、亚式、回望等期权的价值取决于路径而非仅取决于到期价格;
波动率结构 :单一常数 σ \sigma σ 不能描述波动率微笑、偏斜、期限结构和随机波动率;
价格跳跃与厚尾 :几何布朗运动不包含突发跳跃,正态对数收益假设可能低估尾部风险;
市场摩擦 :交易成本、税费、买卖价差、融资约束、做空限制和信用风险未被计入;
连续交易假设 :停牌、涨跌停、流动性不足和离散对冲会降低连续对冲假设的有效性;
参数不确定性 :历史波动率不保证代表未来波动率,无风险利率和股息率也可能随期限变化;
报价差异 :实际成交价格还会受到供求、库存、流动性、风险限额和交易条款影响。
因此,理论价格应被理解为给定参数和模型假设下的可复算参考值。对复杂条款、显著分红、极端行情或真实交易决策,应结合更适合的模型、市场信息和风险约束进行评估。