期权与隐含波动率入门(Black-Scholes)
:::info 学习目标 你将能计算欧式看涨期权和 Greeks,检查无套利价格边界,反解 IV,并说明 Black–Scholes 假设与真实波动率曲面的差异。 :::
直觉
期权给你「以约定价 、在到期 买卖标的」的权利。看涨期权(call)的价值取决于:现价 越高、越值钱,行权价 越低、越值钱,到期越远、波动越大、越值钱(波动 = 机会)。Black-Scholes 给出这四者(加无风险利率 )到价格的解析公式。反过来,从市场报价倒推回波动率,就得到隐含波动率(IV)。它是使模型价格等于市场价格的参数,不应直接等同于无偏的未来波动预测。同一到期日的不同行权价往往形成微笑或偏斜。
Black-Scholes 与 Greeks
看涨期权价格:
主要希腊字母(风险敏感度):(标的价格变动 1 单位时,期权价格的一阶变化)、(Delta 的变化率)、(波动率敏感度)。Delta 是敏感度,不是百分比意义上的价格弹性。
「人话」解释:什么是「隐含波动率微笑」?
Black-Scholes 假设波动率 是常数——但真实市场里,不同行权价的期权隐含波动率并不一样。外汇和部分商品常见较对称的“微笑”;股票指数更常见左翼较高的波动率偏斜(smirk/skew),反映下跌保险需求与负跳跃风险。曲面形状还受供需、杠杆效应和期限影响,不能只用“肥尾”一个原因解释。本页代码人为构造对称微笑,目的是演示 IV 反解,不代表所有市场的真实形状。
可运行案例:BS 定价、Greeks、IV 反推与微笑
假设真实定价波动率随行权价变化(人为构造一个微笑),先用 BS 算出各档 call 价格,再用二分法反推 IV,复现微笑曲线。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
S, r, T = 100.0, 0.02, 0.25
def bs_call(sigma, K):
d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
def iv(price, K): # 二分法反推: bs_call 关于 sigma 单调递增
lo, hi = 1e-4, 3.0
for _ in range(100):
m = 0.5*(lo + hi)
if bs_call(m, K) < price: lo = m # 价格偏低 -> sigma 偏低
else: hi = m
return 0.5*(lo + hi)
sigma0 = 0.20
true_vol = lambda K: sigma0*(1 + 1.5*(np.log(K/S))**2) # 人为微笑: OTM 更贵
strikes = np.linspace(80, 120, 21)
prices = [bs_call(true_vol(K), K) for K in strikes]
ivs = [iv(p, K) for p, K in zip(prices, strikes)]
# 平值期权的 Greeks
K_atm = 100.0; sig = sigma0
d1 = (np.log(S/K_atm)+(r+0.5*sig**2)*T)/(sig*np.sqrt(T))
print(f"ATM call: Delta={norm.cdf(d1):.3f} Gamma={norm.pdf(d1)/(S*sig*np.sqrt(T)):.4f} "
f"Vega={S*norm.pdf(d1)*np.sqrt(T):.3f}")
print(f"真实定价波动率(ATM)={true_vol(K_atm):.3f} 反推 IV(ATM)={iv(bs_call(true_vol(K_atm),K_atm),K_atm):.3f}")
plt.figure(figsize=(9, 3.5))
plt.plot(strikes, [v*100 for v in ivs], 'o-', color='purple', lw=1.4)
plt.axvline(S, color='gray', ls='--', lw=0.8, label='平值 S')
plt.title('隐含波动率微笑(反推自 BS 价格)'); plt.xlabel('行权价 K'); plt.ylabel('IV (%)')
plt.legend(fontsize=9); plt.tight_layout(); plt.show()
print("\n→ 微笑形态说明市场为尾部定价高于正态, 收益分布肥尾。")
无套利检查与模型边界
反解 IV 前先检查 call 是否满足 ;越界价格没有有效 IV。Black–Scholes 假设连续交易、常数波动和无跳跃,且本页未加入股息。Vega 很小时,极深实值/虚值期权的 IV 对一分钱报价误差都很敏感,因此真实曲面要做流动性过滤和无套利平滑。
实践与延伸
- 输入违反上下界的价格,让 IV 求解器返回明确错误。
- 加入连续股息率,并验证 put-call parity。
延伸阅读:Hull《Options, Futures, and Other Derivatives》;Gatheral《The Volatility Surface》。
小结
- Black-Scholes:,连接 与期权价;
- Greeks()量化对价格、凸性、波动率的敏感度;
- 隐含波动率从市场价反推;其微笑形态是「市场认为分布肥尾」的直接证据。
章末自测
1. 关于本章主题,哪项说法更准确?