3. 期权定价模型:Black-Scholes模型原理、输入参数与局限性
说到期权定价,Black-Scholes模型是绕不开的基石。我当年刚入行时,觉得这玩意儿就是一堆数学公式,离实战很远。后来真刀真枪做交易了才发现——不懂BS模型,你连期权价格是怎么来的都说不清楚。
说白了,BS模型就是给期权「估个价」。它告诉我们:在给定市场条件下,一个期权到底值多少钱。嗯,这里要注意,它算的是理论价,不是市场价。市场价是交易出来的,理论价是算出来的。
核心观点:BS模型不是用来预测价格的,而是用来发现定价偏差的。当市场价偏离理论价太多,套利机会就来了。
3.1 Black-Scholes模型原理
BS模型的核心假设是:标的资产价格服从几何布朗运动。说白了,就是价格变化是连续的,不会突然跳空。这个假设在大多数时候成立,但遇到黑天鹅事件就崩了。
模型推导出两个关键公式:
- 看涨期权定价:C = S₀N(d₁) - Ke⁻ʳᵀN(d₂)
- 看跌期权定价:P = Ke⁻ʳᵀN(-d₂) - S₀N(-d₁)
其中:
- d₁ = [ln(S₀/K) + (r + σ²/2)T] / (σ√T)
- d₂ = d₁ - σ√T
N(·)是标准正态分布的累积分布函数。别被公式吓到,实际工作中我们直接用代码算。
# Python实现BS看涨期权定价
import math
from scipy.stats import norm
def bs_call(S, K, T, r, sigma):
d1 = (math.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*math.sqrt(T))
d2 = d1 - sigma*math.sqrt(T)
call_price = S*norm.cdf(d1) - K*math.exp(-r*T)*norm.cdf(d2)
return call_price
# 举个例子
S = 100 # 标的价格
K = 105 # 行权价
T = 0.5 # 半年到期
r = 0.03 # 无风险利率3%
sigma = 0.2 # 波动率20%
price = bs_call(S, K, T, r, sigma)
print(f"看涨期权理论价: {price:.2f}")
个人经验:我习惯在代码里把d₁和d₂单独打印出来看看。如果d₁特别大(比如大于3),说明期权深度实值,价格基本等于内在价值。如果d₁是负数,那就是虚值期权,时间价值占大头。
3.2 输入参数详解
BS模型有五个输入参数。每个参数怎么取,都有讲究。我一个个说。
| 参数 | 符号 | 说明 | 实战取值建议 |
|---|---|---|---|
| 标的价格 | S₀ | 当前标的资产的市场价格 | 取最新成交价,注意流动性差的标的用中间价 |
| 行权价 | K | 期权合约约定的买卖价格 | 固定值,合约条款里写死的 |
| 到期时间 | T | 剩余到期时间(年化) | 用实际天数/365,别用交易日 |
| 波动率 | σ | 标的资产价格的波动程度 | 最难取的参数,后面细说 |
| 无风险利率 | r | 无风险资产的收益率 | 一般用国债收益率或SHIBOR |
3.3 波动率:最关键的参数
波动率是BS模型里最「玄学」的参数。为什么?因为它不可观测。你想想看,未来的波动率谁知道呢?
实战中我们分两种:
- 历史波动率:用过去一段时间的价格数据算出来的。我一般用20个交易日或60个交易日。
- 隐含波动率:把市场价格代入BS公式反推出来的波动率。这个才是交易员真正关心的。
# 计算历史波动率
import numpy as np
prices = [100, 102, 101, 103, 105, 104, 106] # 假设的日收盘价
log_returns = np.diff(np.log(prices))
hist_vol = np.std(log_returns) * np.sqrt(252) # 年化
print(f"历史波动率: {hist_vol:.2%}")
避坑指南:我曾经犯过一个低级错误——用日收益率算波动率时忘了年化。结果算出来的期权价格低得离谱,差点错过一个套利机会。记住:BS模型要求的是年化波动率,日波动率要乘以√252。
3.4 模型局限性
BS模型再好,也有硬伤。我做了这么多年,总结出几个最要命的局限:
- 假设波动率恒定——现实中波动率会变,而且会聚集。市场大跌时波动率飙升,BS模型就失灵了。
- 假设无交易成本——实际交易有手续费、滑点、买卖价差。高频交易时这些成本能吃掉利润。
- 假设连续交易——现实中只能按市场开盘时间交易,不能24小时连续对冲。
- 假设标的资产价格连续——遇到熔断、停牌、跳空,BS模型直接崩。
- 忽略股息——有股息分红的股票,BS模型需要调整。我一般用股息率修正版。
我的看法:BS模型就像一把瑞士军刀——能解决80%的问题,但别指望它万能。遇到奇异期权、极端行情,该上蒙特卡洛模拟就得上。
3.5 知识体系图
下面这张图是我自己画的,把BS模型的核心逻辑串起来了。你看一遍就能记住。
这张图把BS模型的「输入→计算→输出→局限」串起来了。你把它存下来,以后做定价时对照着看,思路会清晰很多。
实战建议:我每次用BS模型定价,都会先检查波动率参数。如果隐含波动率比历史波动率高太多,说明市场在定价「恐慌」,这时候做卖方要小心。
好了,BS模型的核心内容就这些。记住:模型是工具,不是真理。用得好能赚钱,用得不好会亏钱。关键还是理解背后的逻辑,以及知道什么时候该用、什么时候该换。