← 返回模块
F1.4.3.3beta 可读 · 未来付费校验通过内容版本 2026-05-25

欧式期权闭式定价公式

1.4.3 · Black-Scholes 与希腊字母 · 金融与量化投资

周三上午十点半,一位上海私募的衍生品交易员盯着两块屏幕:一块是 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) 把 qq(连续股息率)从 0 调到 1.8%,理论价格往哪个方向动、动多少?(3) 同一行权价的 put 和自己算出来的 call 是否严格满足看跌看涨平价(put-call parity)?前两问要先把 Black-Scholes 模型(Black-Scholes)的闭式解写清楚,第三问把闭式解再做一次平价交叉校验——也是任何 BS 实现交付之前的最低门槛检查。本节把这两件事一起完成,并在末尾把内在价值与时间价值的拆分做出来,给下两节的希腊字母提供一个解释锚点。

一、起点:欧式期权在到期日的现金流

欧式期权(European option)只能在到期日 TT 行权。不分红的标的下,欧式 call 在 TT 的现金流为 max(STK,0)\max(S_T - K, 0),put 为 max(KST,0)\max(K - S_T, 0)。前两节已经用两种方式刻画了 STS_T 在风险中性(risk-neutral)测度 QQ 下的分布:

ST=S0exp ⁣[(r12σ2)T+σWTQ],WTQN(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).

也就是说,ln(ST/S0)\ln(S_T / S_0) 服从均值 (r12σ2)T(r - \tfrac{1}{2}\sigma^2) T、方差 σ2T\sigma^2 T 的正态分布,STS_T 是对数正态变量。欧式 call 今天的价格等于到期现金流在 QQ 下的期望,再按无风险利率贴现:

C0=erTEQ ⁣[max(STK,0)].C_0 = e^{-rT}\, E_Q\!\left[\max(S_T - K, 0)\right].

这一期望可走两条独立的路径计算:​​(a)​ 直接用对数正态密度对 STS_T 积分;​​(b)​ 把上一节推导出来的 Black-Scholes 偏微分方程(partial differential equation, PDE)通过变量替换约化到热方程(heat equation),再套高斯基本解。两条路终点对得上——同一个 d1d_1d2d_2、同一个 C0C_0。下面先走 (a),因为期望路径让 d1d_1d2d_2 的金融意义看得更清楚;(b) 在节末用一句话给出指引。

二、推导 d1d_1d2d_2:风险中性期望的分块计算

整个推导分四步:

  1. 把期望拆成两块——一块是 ST1S_T \cdot \mathbb{1},一块是 KQ(ST>K)K \cdot Q(S_T > K)
  2. 算第二块——标的到期落在行权之上的风险中性概率,结果是 N(d2)N(d_2)
  3. 算第一块——重新组合后落到 S0N(d1)S_0 N(d_1)
  4. 拼回 C0C_0,贴现并对照 PDE 解的形式。

​步骤 1​​:把期望拆成两块。

EQ ⁣[max(STK,0)]=EQ ⁣[ST1{ST>K}]KQ(ST>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).

​步骤 2​​:先算第二项——标的在到期价高于行权价的风险中性概率。令 Z=WTQ/TN(0,1)Z = W_T^Q / \sqrt{T} \sim \mathcal{N}(0,1),由 ST>KS_T > K 反解:

ST>K    ln(S0/K)+(r12σ2)T+σTZ>0    Z>d2,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,

其中

d2=ln(S0/K)+(r12σ2)TσT.d_2 = \frac{\ln(S_0/K) + \left(r - \tfrac{1}{2}\sigma^2\right) T}{\sigma\sqrt{T}}.

由标准正态对称性,Q(ST>K)=Q(Z>d2)=N(d2)Q(S_T > K) = Q(Z > -d_2) = N(d_2);N()N(\cdot) 是标准正态累积分布函数(CDF)。

​步骤 3​​:再算第一项。把 STS_T 表达式代回,并令 ϕ(z)=(1/2π)ez2/2\phi(z) = (1/\sqrt{2\pi}) e^{-z^2/2}:

EQ ⁣[ST1{Z>d2}]=S0erTd2e12σ2T+σTzϕ(z)dz.\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}

指数里凑配方:

12σ2T+σTz12z2=12(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,

被积函数即 ϕ(zσT)\phi(z - \sigma\sqrt{T})。换元 u=zσTu = z - \sigma\sqrt{T}:

d2ϕ(zσT)dz=d2σTϕ(u)du=N ⁣(d2+σ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).

d1=d2+σTd_1 = d_2 + \sigma\sqrt{T},第一项等于 S0erTN(d1)S_0 e^{rT}\, N(d_1)

​步骤 4​​:把两项装回 C0=erT()C_0 = e^{-rT} \cdot (\,\cdot\,):

  C0=S0N(d1)KerTN(d2),d1=ln(S0/K)+(r+12σ2)TσT,d2=d1σ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} \;}

N(d2)N(d_2) 是「风险中性测度下到期处于价内(in-the-money)的概率」;N(d1)N(d_1) 是「以 StS_t 为计价单位(share measure)下的同一概率」。两者各自乘对应单位(行权时付出的现金 KK vs. 收到的资产 STS_T)后相减,就是 call 的折现期望支付。这一拆分不是数学技巧的副产品——它告诉你 call 价的两端各自对应市场上的哪一类对手方:做空 call 的人要准备的是「价内时交付一股资产」的或然债务(前一项),同时收取的是「价内时收到 KK 现金」的或然债权(后一项)。后面讲对冲组合的搭法时会反复回到这一视角。

​路径 (b) 一句话指引​​:令 τ=Tt\tau = T - tx=ln(S/K)x = \ln(S/K),并对 VV 做一次 V=Keαxβτu(x,τ)V = K e^{-\alpha x - \beta \tau} u(x, \tau) 的指数缩放,选 α,β\alpha, \beta 把 BS PDE 化成 uτ=12σ2uxxu_\tau = \tfrac{1}{2}\sigma^2 u_{xx};再以高斯热核与初值 u(x,0)=(ex1)+u(x, 0) = (e^x - 1)^+ 卷积——展开后逐项与步骤 1–4 同构,只是把概率语言换成了 PDE 语言。

三、连续股息率 qq 的扩展

ETF、指数现货、外汇等标的会付一笔连续股息或类股息。把 StS_tQQ 下的漂移从 rr 改成 rqr - q,重新跑步骤 1–4,结果只是把 S0S_0 换成 S0eqTS_0 e^{-qT}、把 d1d_1d2d_2 分子里的 rr 换成 rqr - q:

C0=S0eqTN(d1)KerTN(d2),d1=ln(S0/K)+(rq+12σ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}

等价地,把远期价 F=S0e(rq)TF = S_0 e^{(r - q) T} 代入即得 Black-76 形式:

C0=erT ⁣[FN(d1)KN(d2)],d1=ln(F/K)+12σ2Tσ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}}.

期货期权直接用 Black-76;现货标的把 FF 拆回 S0e(rq)TS_0 e^{(r - q) T} 即可。一个值得记住的边界条件:对指数期货上的期权(例如 CFFEX 上 IF 主力合约对应的指数期货期权),由于期货价已经把利率与股息折进去了,qqrr 在公式里相互抵消,只剩下贴现因子 erTe^{-rT} 在前面起作用。这也是为什么期货期权报价比现货指数期权对短端利率不敏感——风险被前置打包进了远期价里。

四、看跌看涨平价:闭式公式的自检

同一行权价、同一到期日的欧式 call 与 put 永远满足

C0P0=S0eqTKerT.C_0 - P_0 = S_0 e^{-qT} - K e^{-rT}.

这一式不依赖任何分布假设——只需要无套利与欧式行权约束。把第二、三节的 call 闭式公式代入,反求 put:

P0=KerTN(d2)S0eqTN(d1).P_0 = K e^{-rT} N(-d_2) - S_0 e^{-qT} N(-d_1).

实务上这是任何 BS 实现的第一道自检:分别用闭式公式算 call 与 put,再用平价反算一次 put,三者数值差应该在 101010^{-10} 量级(浮点精度而非模型误差)。如果差到第六位之后,多半是 d2=d1σTd_2 = d_1 - \sigma\sqrt{T} 漏了符号、或 N()N(\cdot) 实现里把 erf\text{erf}erfc\text{erfc} 混了。

五、用 510300 期权做一次校准

取 2025 年 6 月某交易日盘中:沪深300 ETF(510300)现价 S0=3.85S_0 = 3.85、本月到期至 T=28/365=0.0767T = 28/365 = 0.0767 年、行权价 K=3.85K = 3.85(平值,at-the-money)、30 日历史波动率 σ=0.22\sigma = 0.22、无风险利率取 R007 折年 r=0.018r = 0.018、追踪沪深300 全收益与价格指数差值估出的连续股息率 q=0.022q = 0.022

d1=ln(3.85/3.85)+(0.0180.022+120.222)0.07670.220.0767=0+0.020220.07670.0609=0.0015510.0609=0.0255,d2=0.02550.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}

查表:N(0.0255)0.5102N(0.0255) \approx 0.5102N(0.0354)0.4859N(-0.0354) \approx 0.4859,因此

C0=3.85e0.0220.07670.51023.85e0.0180.07670.48590.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.

合约乘数 10000,单张 call 理论值约 ¥635。屏幕上同一合约报价 0.0648 时差 ¥13,折算成 IV 约高 0.5 个 vol——可能是市场对下周公布的经济数据多付了一点事件溢价。这种「价格 ↔ IV」的双向映射不在本节范围内,1.4.4 模块会专门展开。

把闭式公式拖动看响应(以 ATM 处 N(d1)N(d2)0.5N(d_1) \approx N(d_2) \approx 0.5 的下界作直觉探针,看 S0S_0KKrrqqTT 五个输入的方向性影响):

Formula Explorer

S0 * exp(-q*T) - K * exp(-r*T)

直觉检查:(1) r>qr > q 时下界为正——这是把 call 价向上压的「净持有成本」项;(2) T0T \to 0 时下界 S0K\to S_0 - K,对 ATM 收敛到 0;(3) q>rq > r 时下界翻负,提示 deep ITM call 的早行权诱惑(在美式情形下才会真正触发,见 1.4.5)。

六、内在价值与时间价值

把 call 价拆成两部分:

  • ​内在价值(intrinsic value)​ =max(S0K,0)= \max(S_0 - K, 0)。今天就能行权得到的现金(欧式不能立刻行权,所以这是「假如能行权」的影子价值)。
  • ​时间价值(time value)​ =C0= C_0 - 内在价值,恒 0\geq 0

ATM 与 OTM call 的价值全部是时间价值;深度 ITM call 的时间价值会被贴现压扁,逼近 S0eqTKerTS_0 e^{-qT} - K e^{-rT} 这一无套利下界。下两节的一阶、二阶希腊字母都在「时间价值随时间衰减、随各项输入移动」这一图景下展开。

七、练习

Exercise

某 510300 ETF 欧式 call:S0=4.00S_0 = 4.00K=4.10K = 4.10T=0.25T = 0.25 年、σ=0.20\sigma = 0.20r=0.020r = 0.020q=0.025q = 0.025

(a) 求 d1d_1d2d_2。 (b) 用 N(0.21)0.417N(-0.21) \approx 0.417N(0.31)0.378N(-0.31) \approx 0.378 算出 C0C_0。 (c) 用看跌看涨平价反推同一行权价的 put 价 P0P_0,并报告 C0P0C_0 - P_0S0eqTKerTS_0 e^{-qT} - K e^{-rT} 的差值。

提示
d1d_1 分子是 ln(4.00/4.10)+(rq+12σ2)T\ln(4.00/4.10) + (r - q + \tfrac{1}{2}\sigma^2) T:把 ln(4.00/4.10)0.0247\ln(4.00/4.10) \approx -0.0247(0.0200.025+0.020)0.25=0.00375(0.020 - 0.025 + 0.020) \cdot 0.25 = 0.00375 相加;分母 σT=0.10\sigma\sqrt{T} = 0.10;d2=d10.10d_2 = d_1 - 0.10。先把这两个数算出来再做下一步。
提示
d10.210d_1 \approx -0.210d20.310d_2 \approx -0.310。代入:C04.00e0.0250.250.4174.10e0.0200.250.3780.117C_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。平价反推:P0=C0S0eqT+KerT0.220P_0 = C_0 - S_0 e^{-qT} + K e^{-rT} \approx 0.220。两侧差应小于 10310^{-3}

八、通往下一节

到这里你能写出 C0C_0P0P_0 的闭式公式,知道 d1d_1d2d_2 各自代表什么概率,能把连续股息 qq 装进去,并用看跌看涨平价做一次跨实现的自检。但闭式公式只是一张「快照」——它告诉你今天这张 call 值多少,没告诉你当 S0S_0σ\sigmarrTT 各自抖动时这张 call 会以什么节奏被推着走。下一节把闭式公式对各个输入逐一求偏导,得到 Delta、Vega、Theta、Rho 四个一阶希腊字母:Delta 等于 N(d1)N(d_1)(call)或 N(d1)1N(d_1) - 1(put);Vega 等于 S0eqTN(d1)TS_0 e^{-qT}\, N'(d_1)\, \sqrt{T};Theta 把时间衰减与利率项一起打包;Rho 给出无风险利率的敏感度。每个 Greek 都会落到「desk 上对应几张合约、几股 ETF 的对冲指令」这一具体动作上。