4、定价模型:Black-Scholes框架下的路径依赖期权定价
路径依赖期权,说白了就是期权的最终收益不光看到期日的价格,还得看整个路径怎么走的。我刚开始接触这类产品时,总觉得这玩意儿有点「不讲武德」——明明BS公式那么漂亮,怎么一碰到路径依赖就变得这么棘手?
嗯,今天我们就来聊聊,在Black-Scholes框架下,怎么给这些「不听话」的期权定价。
4.1 路径依赖期权的分类
我个人习惯把路径依赖期权分成两大类:
- 弱路径依赖:收益只取决于路径上的极值或特定点。比如亚式期权看的是均价,回望期权看的是最高价或最低价。
- 强路径依赖:收益取决于整个路径的细节。比如障碍期权,一旦触碰某个价格,期权就失效或生效。
你想想看,这两类期权的定价难度完全不在一个量级上。弱路径依赖的,我们还能用解析解或近似解搞定;强路径依赖的,很多时候只能靠蒙特卡洛模拟硬算。
核心观点:BS框架下,路径依赖期权的定价本质上是求解带路径约束的偏微分方程。但大多数情况下,我们找不到闭式解。
4.2 亚式期权:平均价格的魅力
亚式期权是我在项目中遇到最多的路径依赖产品。它的收益取决于标的资产在某个时间段内的平均价格。
举个例子:一个亚式看涨期权,到期收益是 max(S_avg - K, 0),其中 S_avg 是这段时间内的平均价格。
为什么会有这种产品?说白了,就是为了防止操纵。你想想看,如果一个大户想在到期日拉高价格,普通欧式期权就容易被操纵。但亚式期权看的是均价,想操纵整个时间段的价格?成本太高了。
4.2.1 几何平均亚式期权
几何平均亚式期权有个好性质——它仍然服从对数正态分布。为什么呢?因为几何平均的对数就是对数价格的算术平均,而BS模型下对数价格是正态分布的。
所以,几何平均亚式期权有解析解。公式长这样:
C = S0 * exp((b - r) * T) * N(d1) - K * exp(-r * T) * N(d2)
其中:
b = 0.5 * (r - q - sigma^2 / 6)
d1 = (ln(S0/K) + (b + sigma_avg^2 / 2) * T) / (sigma_avg * sqrt(T))
d2 = d1 - sigma_avg * sqrt(T)
sigma_avg = sigma / sqrt(3)
嗯,这里要注意:这个公式只适用于连续采样的情况。实际交易中,我们通常用离散采样,这时候就需要做近似处理了。
我的经验:我曾经在给一个结构化产品定价时,直接用连续采样公式替代离散采样,结果偏差了将近2%。后来我改用修正的离散采样公式,误差才降到0.3%以内。所以,千万别偷懒。
4.2.2 算术平均亚式期权
算术平均亚式期权就麻烦多了。算术平均的对数不服从正态分布,所以没有解析解。
那怎么办?我常用的方法有:
- 近似法:用矩匹配法,把算术平均的分布近似成对数正态分布。这个方法简单,但精度有限。
- 数值法:用蒙特卡洛模拟。这个方法最通用,但计算量大。
- 偏微分方程法:引入一个额外的状态变量,把问题转化为二维PDE。这个方法精度高,但实现复杂。
我个人习惯用蒙特卡洛模拟,配合对偶变量法来降低方差。效果还不错。
4.3 障碍期权:触碰即触发
障碍期权是另一种常见的路径依赖产品。它的特点是:一旦标的资产价格触碰某个预设的障碍水平,期权要么失效(敲出),要么生效(敲入)。
我记得有一次,一个客户想给一个向下敲出的看涨期权定价。他问我:「这个期权是不是比普通看涨便宜?」我说:「当然便宜,因为敲出条款相当于给了卖方一个免费的保护。」
障碍期权的定价,在BS框架下是有解析解的。公式比较复杂,但核心思路是用镜像法(Method of Images)来处理边界条件。
4.3.1 向下敲出看涨期权
这个期权的特点是:如果价格跌到障碍水平H以下,期权就作废。否则,到期时就是一个普通看涨期权。
定价公式:
C_di = C_BS(S0, K, T, r, q, sigma)
- (H/S0)^(2 * (r - q) / sigma^2 - 1) * C_BS(H^2 / S0, K, T, r, q, sigma)
这个公式看着吓人,其实原理很简单:用镜像法把障碍边界反射过去,然后减去反射部分的价值。
避坑指南:我曾经在实现这个公式时,忽略了分红率q的影响,结果算出来的价格和蒙特卡洛模拟差了5%。后来才发现,公式中的指数项必须包含q。所以,千万别把q当成0来处理,除非真的没有分红。
4.3.2 障碍期权的希腊字母
障碍期权的希腊字母比普通期权复杂得多。最典型的是Delta,在障碍附近会出现不连续的情况。
为什么会这样?因为一旦价格接近障碍,期权是否存活就变得非常不确定。Delta会变得非常大,甚至出现跳跃。
我建议在做对冲时,一定要小心处理障碍附近的Delta。一个常用的技巧是:在障碍附近用更小的步长做数值差分,或者直接用解析公式计算Delta。
4.4 回望期权:后悔药的味道
回望期权,说白了就是给你一个「后悔」的机会。它的收益取决于路径上的最优价格。
比如,浮动行权价的回望看涨期权,到期收益是 max(S_T - S_min, 0)。也就是说,你可以用整个时间段内的最低价来买入。
这种期权很贵,因为它的收益永远不会是负的。我在项目中很少见到实际交易的回望期权,更多是作为结构化产品的组成部分出现。
回望期权在BS框架下也有解析解。公式涉及正态分布的累积函数和概率密度函数,计算起来稍微复杂一些。
4.5 蒙特卡洛模拟:最后的武器
当解析解不存在时,蒙特卡洛模拟就是我们最后的武器。它的思路很简单:模拟大量路径,计算每条路径的收益,然后取平均并贴现。
但这里有个坑:路径依赖期权的模拟需要存储整个路径,或者至少存储路径上的关键信息。比如亚式期权需要记录价格序列,障碍期权需要检查是否触碰障碍。
我常用的模拟框架:
import numpy as np
def monte_carlo_asian_option(S0, K, T, r, sigma, n_steps, n_paths):
dt = T / n_steps
discount = np.exp(-r * T)
# 生成路径
Z = np.random.standard_normal((n_paths, n_steps))
S = S0 * np.exp(np.cumsum((r - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * Z, axis=1))
# 计算平均价格
S_avg = np.mean(S, axis=1)
# 计算收益
payoff = np.maximum(S_avg - K, 0)
# 贴现
price = discount * np.mean(payoff)
return price
嗯,这个代码很简单,但实际使用时需要做方差缩减。我常用的方法有:对偶变量法、控制变量法、重要性采样法。
我的建议:对于路径依赖期权,对偶变量法是最容易实现的方差缩减技术。你只需要生成一组随机数,然后取它们的相反数作为另一组路径。这样,方差可以降低一半左右。
4.6 知识体系总览
下面这张图总结了本章的核心内容:
4.7 小结
路径依赖期权的定价,说白了就是在BS框架下处理路径约束。弱路径依赖的,我们还能找到一些解析解或近似解;强路径依赖的,基本只能靠蒙特卡洛模拟。
我个人觉得,理解这些期权的定价逻辑,比记住公式更重要。因为实际交易中,你遇到的往往是各种期权的组合,需要灵活运用不同的方法。
嗯,今天就聊到这里。下一章我们会讨论随机波动率模型,那又是一个全新的世界。