周三上午十点半,一位上海私募的衍生品交易员盯着两块屏幕:一块是 SSE 50ETF(510050)期权链,本周到期、行权价 2.55 的 call 中间价 0.0185;另一块是他自己的 Python 估值脚本,输出 0.0192。差 0.0007——折成单张合约 ¥70(合约乘数 10000),全市场未平仓约 1.2 万张就是 ¥84 万的潜在分歧。屏幕上同一行权价的 put 还报 0.0341,方向和他的脚本对得上,但绝对数能不能对上他没看。在他点开订单簿之前要回答三个问题:(1) 是自己模型用的隐含波动率(implied volatility, IV)输入偏离了市场,还是公式本身错?(2) 把 q q q (连续股息率)从 0 调到 1.8%,理论价格往哪个方向动、动多少?(3) 同一行权价的 put 和自己算出来的 call 是否严格满足看跌看涨平价(put-call parity)?前两问要先把 Black-Scholes 模型(Black-Scholes)的闭式解写清楚,第三问把闭式解再做一次平价交叉校验——也是任何 BS 实现交付之前的最低门槛检查。本节把这两件事一起完成,并在末尾把内在价值与时间价值的拆分做出来,给下两节的希腊字母提供一个解释锚点。
一、起点:欧式期权在到期日的现金流
欧式期权(European option)只能在到期日 T T T 行权。不分红的标的下,欧式 call 在 T T T 的现金流为 max ( S T − K , 0 ) \max(S_T - K, 0) max ( S T − K , 0 ) ,put 为 max ( K − S T , 0 ) \max(K - S_T, 0) max ( K − S T , 0 ) 。前两节已经用两种方式刻画了 S T S_T S T 在风险中性(risk-neutral)测度 Q Q Q 下的分布:
S T = S 0 exp [ ( r − 1 2 σ 2 ) T + σ W T Q ] , W T Q ∼ N ( 0 , T ) . S_T = S_0 \exp\!\left[\left(r - \tfrac{1}{2}\sigma^2\right) T + \sigma W_T^Q\right], \quad W_T^Q \sim \mathcal{N}(0, T). S T = S 0 exp [ ( r − 2 1 σ 2 ) T + σ W T Q ] , W T Q ∼ N ( 0 , T ) .
也就是说,ln ( S T / S 0 ) \ln(S_T / S_0) ln ( S T / S 0 ) 服从均值 ( r − 1 2 σ 2 ) T (r - \tfrac{1}{2}\sigma^2) T ( r − 2 1 σ 2 ) T 、方差 σ 2 T \sigma^2 T σ 2 T 的正态分布,S T S_T S T 是对数正态变量。欧式 call 今天的价格等于到期现金流在 Q Q Q 下的期望,再按无风险利率贴现:
C 0 = e − r T E Q [ max ( S T − K , 0 ) ] . C_0 = e^{-rT}\, E_Q\!\left[\max(S_T - K, 0)\right]. C 0 = e − r T E Q [ max ( S T − K , 0 ) ] .
这一期望可走两条独立的路径计算:(a) 直接用对数正态密度对 S T S_T S T 积分;(b) 把上一节推导出来的 Black-Scholes 偏微分方程(partial differential equation, PDE)通过变量替换约化到热方程(heat equation),再套高斯基本解。两条路终点对得上——同一个 d 1 d_1 d 1 、d 2 d_2 d 2 、同一个 C 0 C_0 C 0 。下面先走 (a),因为期望路径让 d 1 d_1 d 1 、d 2 d_2 d 2 的金融意义看得更清楚;(b) 在节末用一句话给出指引。
二、推导 d 1 d_1 d 1 、d 2 d_2 d 2 :风险中性期望的分块计算
整个推导分四步:
把期望拆成两块——一块是 S T ⋅ 1 S_T \cdot \mathbb{1} S T ⋅ 1 ,一块是 K ⋅ Q ( S T > K ) K \cdot Q(S_T > K) K ⋅ Q ( S T > K ) 。
算第二块——标的到期落在行权之上的风险中性概率,结果是 N ( d 2 ) N(d_2) N ( d 2 ) 。
算第一块——重新组合后落到 S 0 N ( d 1 ) S_0 N(d_1) S 0 N ( d 1 ) 。
拼回 C 0 C_0 C 0 ,贴现并对照 PDE 解的形式。
步骤 1 :把期望拆成两块。
E Q [ max ( S T − K , 0 ) ] = E Q [ S T ⋅ 1 { S T > K } ] − K ⋅ Q ( S T > K ) . E_Q\!\left[\max(S_T - K, 0)\right] = E_Q\!\left[S_T \cdot \mathbb{1}_{\{S_T > K\}}\right] - K \cdot Q(S_T > K). E Q [ max ( S T − K , 0 ) ] = E Q [ S T ⋅ 1 { S T > K } ] − K ⋅ Q ( S T > K ) .
步骤 2 :先算第二项——标的在到期价高于行权价的风险中性概率。令 Z = W T Q / T ∼ N ( 0 , 1 ) Z = W_T^Q / \sqrt{T} \sim \mathcal{N}(0,1) Z = W T Q / T ∼ N ( 0 , 1 ) ,由 S T > K S_T > K S T > K 反解:
S T > K ⟺ ln ( S 0 / K ) + ( r − 1 2 σ 2 ) T + σ T Z > 0 ⟺ Z > − d 2 , S_T > K \iff \ln(S_0/K) + \left(r - \tfrac{1}{2}\sigma^2\right) T + \sigma\sqrt{T}\, Z > 0 \iff Z > -d_2, S T > K ⟺ ln ( S 0 / K ) + ( r − 2 1 σ 2 ) T + σ T Z > 0 ⟺ Z > − d 2 ,
其中
d 2 = ln ( S 0 / K ) + ( r − 1 2 σ 2 ) T σ T . d_2 = \frac{\ln(S_0/K) + \left(r - \tfrac{1}{2}\sigma^2\right) T}{\sigma\sqrt{T}}. d 2 = σ T ln ( S 0 / K ) + ( r − 2 1 σ 2 ) T .
由标准正态对称性,Q ( S T > K ) = Q ( Z > − d 2 ) = N ( d 2 ) Q(S_T > K) = Q(Z > -d_2) = N(d_2) Q ( S T > K ) = Q ( Z > − d 2 ) = N ( d 2 ) ;N ( ⋅ ) N(\cdot) N ( ⋅ ) 是标准正态累积分布函数(CDF)。
步骤 3 :再算第一项。把 S T S_T S T 表达式代回,并令 ϕ ( z ) = ( 1 / 2 π ) e − z 2 / 2 \phi(z) = (1/\sqrt{2\pi}) e^{-z^2/2} ϕ ( z ) = ( 1/ 2 π ) e − z 2 /2 :
E Q [ S T ⋅ 1 { Z > − d 2 } ] = S 0 e r T ∫ − d 2 ∞ e − 1 2 σ 2 T + σ T z ϕ ( z ) d z . \begin{aligned}
E_Q\!\left[S_T \cdot \mathbb{1}_{\{Z > -d_2\}}\right]
&= S_0 e^{rT} \int_{-d_2}^{\infty} e^{-\tfrac{1}{2}\sigma^2 T + \sigma\sqrt{T} z}\, \phi(z)\, dz.
\end{aligned} E Q [ S T ⋅ 1 { Z > − d 2 } ] = S 0 e r T ∫ − d 2 ∞ e − 2 1 σ 2 T + σ T z ϕ ( z ) d z .
指数里凑配方:
− 1 2 σ 2 T + σ T z − 1 2 z 2 = − 1 2 ( z − σ T ) 2 , -\tfrac{1}{2}\sigma^2 T + \sigma\sqrt{T} z - \tfrac{1}{2} z^2 = -\tfrac{1}{2}(z - \sigma\sqrt{T})^2, − 2 1 σ 2 T + σ T z − 2 1 z 2 = − 2 1 ( z − σ T ) 2 ,
被积函数即 ϕ ( z − σ T ) \phi(z - \sigma\sqrt{T}) ϕ ( z − σ T ) 。换元 u = z − σ T u = z - \sigma\sqrt{T} u = z − σ T :
∫ − d 2 ∞ ϕ ( z − σ T ) d z = ∫ − d 2 − σ T ∞ ϕ ( u ) d u = N ( d 2 + σ T ) . \int_{-d_2}^{\infty} \phi(z - \sigma\sqrt{T})\, dz = \int_{-d_2 - \sigma\sqrt{T}}^{\infty} \phi(u)\, du = N\!\left(d_2 + \sigma\sqrt{T}\right). ∫ − d 2 ∞ ϕ ( z − σ T ) d z = ∫ − d 2 − σ T ∞ ϕ ( u ) d u = N ( d 2 + σ T ) .
令 d 1 = d 2 + σ T d_1 = d_2 + \sigma\sqrt{T} d 1 = d 2 + σ T ,第一项等于 S 0 e r T N ( d 1 ) S_0 e^{rT}\, N(d_1) S 0 e r T N ( d 1 ) 。
步骤 4 :把两项装回 C 0 = e − r T ⋅ ( ⋅ ) C_0 = e^{-rT} \cdot (\,\cdot\,) C 0 = e − r T ⋅ ( ⋅ ) :
C 0 = S 0 N ( d 1 ) − K e − r T N ( d 2 ) , d 1 = ln ( S 0 / K ) + ( r + 1 2 σ 2 ) T σ T , d 2 = d 1 − σ T . \boxed{\;
\begin{aligned}
C_0 &= S_0\, N(d_1) - K\, e^{-rT}\, N(d_2), \\
d_1 &= \frac{\ln(S_0/K) + \left(r + \tfrac{1}{2}\sigma^2\right) T}{\sigma\sqrt{T}}, \quad d_2 = d_1 - \sigma\sqrt{T}.
\end{aligned}
\;} C 0 d 1 = S 0 N ( d 1 ) − K e − r T N ( d 2 ) , = σ T ln ( S 0 / K ) + ( r + 2 1 σ 2 ) T , d 2 = d 1 − σ T .
N ( d 2 ) N(d_2) N ( d 2 ) 是「风险中性测度下到期处于价内(in-the-money)的概率」;N ( d 1 ) N(d_1) N ( d 1 ) 是「以 S t S_t S t 为计价单位(share measure)下的同一概率」。两者各自乘对应单位(行权时付出的现金 K K K vs. 收到的资产 S T S_T S T )后相减,就是 call 的折现期望支付。这一拆分不是数学技巧的副产品——它告诉你 call 价的两端各自对应市场上的哪一类对手方:做空 call 的人要准备的是「价内时交付一股资产」的或然债务(前一项),同时收取的是「价内时收到 K K K 现金」的或然债权(后一项)。后面讲对冲组合的搭法时会反复回到这一视角。
路径 (b) 一句话指引 :令 τ = T − t \tau = T - t τ = T − t 、x = ln ( S / K ) x = \ln(S/K) x = ln ( S / K ) ,并对 V V V 做一次 V = K e − α x − β τ u ( x , τ ) V = K e^{-\alpha x - \beta \tau} u(x, \tau) V = K e − α x − β τ u ( x , τ ) 的指数缩放,选 α , β \alpha, \beta α , β 把 BS PDE 化成 u τ = 1 2 σ 2 u x x u_\tau = \tfrac{1}{2}\sigma^2 u_{xx} u τ = 2 1 σ 2 u xx ;再以高斯热核与初值 u ( x , 0 ) = ( e x − 1 ) + u(x, 0) = (e^x - 1)^+ u ( x , 0 ) = ( e x − 1 ) + 卷积——展开后逐项与步骤 1–4 同构,只是把概率语言换成了 PDE 语言。
三、连续股息率 q q q 的扩展
ETF、指数现货、外汇等标的会付一笔连续股息或类股息。把 S t S_t S t 在 Q Q Q 下的漂移从 r r r 改成 r − q r - q r − q ,重新跑步骤 1–4,结果只是把 S 0 S_0 S 0 换成 S 0 e − q T S_0 e^{-qT} S 0 e − q T 、把 d 1 d_1 d 1 、d 2 d_2 d 2 分子里的 r r r 换成 r − q r - q r − q :
C 0 = S 0 e − q T N ( d 1 ) − K e − r T N ( d 2 ) , d 1 = ln ( S 0 / K ) + ( r − q + 1 2 σ 2 ) T σ T . \begin{aligned}
C_0 &= S_0 e^{-qT} N(d_1) - K e^{-rT} N(d_2), \\
d_1 &= \frac{\ln(S_0/K) + \left(r - q + \tfrac{1}{2}\sigma^2\right) T}{\sigma\sqrt{T}}.
\end{aligned} C 0 d 1 = S 0 e − q T N ( d 1 ) − K e − r T N ( d 2 ) , = σ T ln ( S 0 / K ) + ( r − q + 2 1 σ 2 ) T .
等价地,把远期价 F = S 0 e ( r − q ) T F = S_0 e^{(r - q) T} F = S 0 e ( r − q ) T 代入即得 Black-76 形式:
C 0 = e − r T [ F N ( d 1 ) − K N ( d 2 ) ] , d 1 = ln ( F / K ) + 1 2 σ 2 T σ T . C_0 = e^{-rT}\!\left[F\, N(d_1) - K\, N(d_2)\right], \quad d_1 = \frac{\ln(F/K) + \tfrac{1}{2}\sigma^2 T}{\sigma\sqrt{T}}. C 0 = e − r T [ F N ( d 1 ) − K N ( d 2 ) ] , d 1 = σ T ln ( F / K ) + 2 1 σ 2 T .
期货期权直接用 Black-76;现货标的把 F F F 拆回 S 0 e ( r − q ) T S_0 e^{(r - q) T} S 0 e ( r − q ) T 即可。一个值得记住的边界条件:对指数期货上的期权(例如 CFFEX 上 IF 主力合约对应的指数期货期权),由于期货价已经把利率与股息折进去了,q q q 与 r r r 在公式里相互抵消,只剩下贴现因子 e − r T e^{-rT} e − r T 在前面起作用。这也是为什么期货期权报价比现货指数期权对短端利率不敏感——风险被前置打包进了远期价里。
四、看跌看涨平价:闭式公式的自检
同一行权价、同一到期日的欧式 call 与 put 永远满足
C 0 − P 0 = S 0 e − q T − K e − r T . C_0 - P_0 = S_0 e^{-qT} - K e^{-rT}. C 0 − P 0 = S 0 e − q T − K e − r T .
这一式不依赖任何分布假设——只需要无套利与欧式行权约束。把第二、三节的 call 闭式公式代入,反求 put:
P 0 = K e − r T N ( − d 2 ) − S 0 e − q T N ( − d 1 ) . P_0 = K e^{-rT} N(-d_2) - S_0 e^{-qT} N(-d_1). P 0 = K e − r T N ( − d 2 ) − S 0 e − q T N ( − d 1 ) .
实务上这是任何 BS 实现的第一道自检:分别用闭式公式算 call 与 put,再用平价反算一次 put,三者数值差应该在 10 − 10 10^{-10} 1 0 − 10 量级(浮点精度而非模型误差)。如果差到第六位之后,多半是 d 2 = d 1 − σ T d_2 = d_1 - \sigma\sqrt{T} d 2 = d 1 − σ T 漏了符号、或 N ( ⋅ ) N(\cdot) N ( ⋅ ) 实现里把 erf \text{erf} erf 与 erfc \text{erfc} erfc 混了。
五、用 510300 期权做一次校准
取 2025 年 6 月某交易日盘中:沪深300 ETF(510300)现价 S 0 = 3.85 S_0 = 3.85 S 0 = 3.85 、本月到期至 T = 28 / 365 = 0.0767 T = 28/365 = 0.0767 T = 28/365 = 0.0767 年、行权价 K = 3.85 K = 3.85 K = 3.85 (平值,at-the-money)、30 日历史波动率 σ = 0.22 \sigma = 0.22 σ = 0.22 、无风险利率取 R007 折年 r = 0.018 r = 0.018 r = 0.018 、追踪沪深300 全收益与价格指数差值估出的连续股息率 q = 0.022 q = 0.022 q = 0.022 。
d 1 = ln ( 3.85 / 3.85 ) + ( 0.018 − 0.022 + 1 2 ⋅ 0.22 2 ) ⋅ 0.0767 0.22 ⋅ 0.0767 = 0 + 0.02022 ⋅ 0.0767 0.0609 = 0.001551 0.0609 = 0.0255 , d 2 = 0.0255 − 0.0609 = − 0.0354. \begin{aligned}
d_1 &= \frac{\ln(3.85/3.85) + (0.018 - 0.022 + \tfrac{1}{2} \cdot 0.22^2) \cdot 0.0767}{0.22 \cdot \sqrt{0.0767}} \\
&= \frac{0 + 0.02022 \cdot 0.0767}{0.0609} = \frac{0.001551}{0.0609} = 0.0255, \\
d_2 &= 0.0255 - 0.0609 = -0.0354.
\end{aligned} d 1 d 2 = 0.22 ⋅ 0.0767 ln ( 3.85/3.85 ) + ( 0.018 − 0.022 + 2 1 ⋅ 0.2 2 2 ) ⋅ 0.0767 = 0.0609 0 + 0.02022 ⋅ 0.0767 = 0.0609 0.001551 = 0.0255 , = 0.0255 − 0.0609 = − 0.0354.
查表:N ( 0.0255 ) ≈ 0.5102 N(0.0255) \approx 0.5102 N ( 0.0255 ) ≈ 0.5102 、N ( − 0.0354 ) ≈ 0.4859 N(-0.0354) \approx 0.4859 N ( − 0.0354 ) ≈ 0.4859 ,因此
C 0 = 3.85 ⋅ e − 0.022 ⋅ 0.0767 ⋅ 0.5102 − 3.85 ⋅ e − 0.018 ⋅ 0.0767 ⋅ 0.4859 ≈ 0.0635. C_0 = 3.85 \cdot e^{-0.022 \cdot 0.0767} \cdot 0.5102 - 3.85 \cdot e^{-0.018 \cdot 0.0767} \cdot 0.4859 \approx 0.0635. C 0 = 3.85 ⋅ e − 0.022 ⋅ 0.0767 ⋅ 0.5102 − 3.85 ⋅ e − 0.018 ⋅ 0.0767 ⋅ 0.4859 ≈ 0.0635.
合约乘数 10000,单张 call 理论值约 ¥635。屏幕上同一合约报价 0.0648 时差 ¥13,折算成 IV 约高 0.5 个 vol——可能是市场对下周公布的经济数据多付了一点事件溢价。这种「价格 ↔ IV」的双向映射不在本节范围内,1.4.4 模块会专门展开。
把闭式公式拖动看响应(以 ATM 处 N ( d 1 ) ≈ N ( d 2 ) ≈ 0.5 N(d_1) \approx N(d_2) \approx 0.5 N ( d 1 ) ≈ N ( d 2 ) ≈ 0.5 的下界作直觉探针,看 S 0 S_0 S 0 、K K K 、r r r 、q q q 、T T T 五个输入的方向性影响):
Formula Explorer
S0 * exp(-q*T) - K * exp(-r*T)
直觉检查:(1) r > q r > q r > q 时下界为正——这是把 call 价向上压的「净持有成本」项;(2) T → 0 T \to 0 T → 0 时下界 → S 0 − K \to S_0 - K → S 0 − K ,对 ATM 收敛到 0;(3) q > r q > r q > r 时下界翻负,提示 deep ITM call 的早行权诱惑(在美式情形下才会真正触发,见 1.4.5)。
六、内在价值与时间价值
把 call 价拆成两部分:
内在价值(intrinsic value) = max ( S 0 − K , 0 ) = \max(S_0 - K, 0) = max ( S 0 − K , 0 ) 。今天就能行权得到的现金(欧式不能立刻行权,所以这是「假如能行权」的影子价值)。
时间价值(time value) = C 0 − = C_0 - = C 0 − 内在价值,恒 ≥ 0 \geq 0 ≥ 0 。
ATM 与 OTM call 的价值全部是时间价值;深度 ITM call 的时间价值会被贴现压扁,逼近 S 0 e − q T − K e − r T S_0 e^{-qT} - K e^{-rT} S 0 e − q T − K e − r T 这一无套利下界。下两节的一阶、二阶希腊字母都在「时间价值随时间衰减、随各项输入移动」这一图景下展开。
七、练习
Exercise
某 510300 ETF 欧式 call:S 0 = 4.00 S_0 = 4.00 S 0 = 4.00 、K = 4.10 K = 4.10 K = 4.10 、T = 0.25 T = 0.25 T = 0.25 年、σ = 0.20 \sigma = 0.20 σ = 0.20 、r = 0.020 r = 0.020 r = 0.020 、q = 0.025 q = 0.025 q = 0.025 。
(a) 求 d 1 d_1 d 1 、d 2 d_2 d 2 。
(b) 用 N ( − 0.21 ) ≈ 0.417 N(-0.21) \approx 0.417 N ( − 0.21 ) ≈ 0.417 、N ( − 0.31 ) ≈ 0.378 N(-0.31) \approx 0.378 N ( − 0.31 ) ≈ 0.378 算出 C 0 C_0 C 0 。
(c) 用看跌看涨平价反推同一行权价的 put 价 P 0 P_0 P 0 ,并报告 C 0 − P 0 C_0 - P_0 C 0 − P 0 与 S 0 e − q T − K e − r T S_0 e^{-qT} - K e^{-rT} S 0 e − q T − K e − r T 的差值。
提示 d 1 d_1 d 1 分子是
ln ( 4.00 / 4.10 ) + ( r − q + 1 2 σ 2 ) T \ln(4.00/4.10) + (r - q + \tfrac{1}{2}\sigma^2) T ln ( 4.00/4.10 ) + ( r − q + 2 1 σ 2 ) T :把
ln ( 4.00 / 4.10 ) ≈ − 0.0247 \ln(4.00/4.10) \approx -0.0247 ln ( 4.00/4.10 ) ≈ − 0.0247 与
( 0.020 − 0.025 + 0.020 ) ⋅ 0.25 = 0.00375 (0.020 - 0.025 + 0.020) \cdot 0.25 = 0.00375 ( 0.020 − 0.025 + 0.020 ) ⋅ 0.25 = 0.00375 相加;分母
σ T = 0.10 \sigma\sqrt{T} = 0.10 σ T = 0.10 ;
d 2 = d 1 − 0.10 d_2 = d_1 - 0.10 d 2 = d 1 − 0.10 。先把这两个数算出来再做下一步。
提示 d 1 ≈ − 0.210 d_1 \approx -0.210 d 1 ≈ − 0.210 、
d 2 ≈ − 0.310 d_2 \approx -0.310 d 2 ≈ − 0.310 。代入:
C 0 ≈ 4.00 ⋅ e − 0.025 ⋅ 0.25 ⋅ 0.417 − 4.10 ⋅ e − 0.020 ⋅ 0.25 ⋅ 0.378 ≈ 0.117 C_0 \approx 4.00 \cdot e^{-0.025 \cdot 0.25} \cdot 0.417 - 4.10 \cdot e^{-0.020 \cdot 0.25} \cdot 0.378 \approx 0.117 C 0 ≈ 4.00 ⋅ e − 0.025 ⋅ 0.25 ⋅ 0.417 − 4.10 ⋅ e − 0.020 ⋅ 0.25 ⋅ 0.378 ≈ 0.117 。平价反推:
P 0 = C 0 − S 0 e − q T + K e − r T ≈ 0.220 P_0 = C_0 - S_0 e^{-qT} + K e^{-rT} \approx 0.220 P 0 = C 0 − S 0 e − q T + K e − r T ≈ 0.220 。两侧差应小于
10 − 3 10^{-3} 1 0 − 3 。
八、通往下一节
到这里你能写出 C 0 C_0 C 0 、P 0 P_0 P 0 的闭式公式,知道 d 1 d_1 d 1 、d 2 d_2 d 2 各自代表什么概率,能把连续股息 q q q 装进去,并用看跌看涨平价做一次跨实现的自检。但闭式公式只是一张「快照」——它告诉你今天这张 call 值多少,没告诉你当 S 0 S_0 S 0 、σ \sigma σ 、r r r 、T T T 各自抖动时这张 call 会以什么节奏被推着走。下一节把闭式公式对各个输入逐一求偏导,得到 Delta、Vega、Theta、Rho 四个一阶希腊字母:Delta 等于 N ( d 1 ) N(d_1) N ( d 1 ) (call)或 N ( d 1 ) − 1 N(d_1) - 1 N ( d 1 ) − 1 (put);Vega 等于 S 0 e − q T N ′ ( d 1 ) T S_0 e^{-qT}\, N'(d_1)\, \sqrt{T} S 0 e − q T N ′ ( d 1 ) T ;Theta 把时间衰减与利率项一起打包;Rho 给出无风险利率的敏感度。每个 Greek 都会落到「desk 上对应几张合约、几股 ETF 的对冲指令」这一具体动作上。