基于无套利假设与伊藤引理,推导出欧式期权价格满足的偏微分方程:
∂V/∂t + ½σ²S² ∂²V/∂S² + rS ∂V/∂S – rV = 0
通过边界条件得到解析解,即 Black-Scholes 公式。
| 参数 | 符号 | 含义 | 典型影响 |
|---|---|---|---|
| S | 当前股票/指数价格 | ↑ 看涨期权 ↑ | |
| K | 期权约定的买卖价格 | ↑ 看涨期权 ↓ | |
| T | 剩余期限(年化) | ↑ 时间价值 ↑ | |
| r | 连续复利无风险利率 | ↑ 看涨期权 ↑ | |
| σ | 年化收益率标准差 | ↑ 期权价值 ↑ |
import numpy as np
from scipy.stats import norm
def black_scholes(S, K, T, r, sigma, option_type='call'):
"""
S: 标的资产价格
K: 行权价
T: 到期时间 (年)
r: 无风险利率 (连续复利)
sigma: 波动率
option_type: 'call' 或 'put'
"""
d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
if option_type == 'call':
price = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)
else: # put
price = K * np.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
return price
# 示例
print(black_scholes(S=100, K=105, T=0.5, r=0.03, sigma=0.2, option_type='call'))
# 输出 ≈ 3.67