期权定价模型入门:Black-Scholes模型核心思想

聊到期权定价,Black-Scholes模型是绕不开的起点。我当年刚接触量化时,第一反应是——这公式看着真吓人。但用久了你会发现,它的核心逻辑其实很直观。

说白了,BS模型就是在回答一个问题:这份期权现在到底值多少钱?

它假设市场是有效的,标的资产价格服从对数正态分布,然后通过无套利原理推导出一个解析解。嗯,这里要注意,BS模型有它的理想化假设,但作为入门,它是最好的框架。

BS模型的核心思想:期权价格 = 标的资产当前价格的某种函数 - 行权价的折现值,再经过正态分布概率的加权。

我个人习惯把BS模型理解成「概率加权下的期望收益折现」。你想想看,期权到期时只有两种状态:实值或虚值。BS模型就是算出了这两种状态的概率权重,然后折现到今天。

影响期权价格的5大因素

这五个因素,我建议你刻在脑子里。每次做策略时,我都会在脑子里过一遍这五个变量当前的状态。

因素 符号 对看涨期权影响 对看跌期权影响
标的资产价格 S 正向 负向
行权价 K 负向 正向
剩余时间 T 正向 正向
波动率 σ 正向 正向
无风险利率 r 正向 负向

1. 标的资产价格(S)

这个最好理解。股票涨了,看涨期权就值钱;股票跌了,看跌期权就值钱。我在项目中遇到过一种情况:标的股价剧烈波动,但期权价格变化却不大。后来发现是波动率也在同步变化,两者对冲了。

避坑指南:我曾经以为股价涨10%,看涨期权也该涨10%左右。结果发现深度实值期权的Delta接近1,但平值期权的Delta只有0.5左右。所以别想当然。

2. 行权价(K)

行权价是合约里写死的,不会变。它决定了期权是实值、平值还是虚值。我建议你在选行权价时,先想清楚你的交易目的是什么。

  • 实值期权:内在价值高,时间价值低,适合方向性交易
  • 平值期权:时间价值最高,Gamma最大,适合波动率交易
  • 虚值期权:便宜,但需要大行情才能赚钱,适合彩票策略

3. 剩余时间(T)

时间是你的朋友,也是你的敌人。对于期权买方,时间每天都在侵蚀你的持仓价值——这就是Theta。

我记得有一次做末日轮策略,距离到期只剩3天。那天标的只涨了1%,但期权价格翻了3倍。为什么?因为Gamma在到期前会变得极大。但反过来,如果方向错了,归零的速度也快得吓人。

我的经验:距离到期30天以上的期权,时间衰减比较平缓。最后两周,Theta会加速。最后一周,简直就是倒计时炸弹。

4. 波动率(σ)

这是最核心、也最容易被误解的因素。波动率不是标的涨跌的方向,而是涨跌的幅度。你想想看,一个股票每天波动1%和每天波动5%,期权的价格能一样吗?

BS模型里用的波动率,其实是隐含波动率——市场对未来波动率的预期。而历史波动率是过去实际发生的波动率。

类型 定义 用途
历史波动率(HV) 基于历史价格计算的实际波动率 判断当前IV是否偏高或偏低
隐含波动率(IV) 从期权市场价格反推出来的波动率 反映市场对未来波动的预期

避坑指南:我曾经在财报前买入跨式策略,觉得IV已经很高了,结果财报出来后IV又飙了一倍。后来我才明白,IV的「高」是相对的,你得看历史分位数,而不是绝对值。

5. 无风险利率(r)

这个因素对期权价格的影响相对较小,但你不能忽略。无风险利率越高,看涨期权越贵,看跌期权越便宜。为什么?因为资金是有时间成本的。

我一般用美国国债收益率作为无风险利率的参考。不过在实际交易中,除非利率发生剧烈变化,否则这个因素对短期期权的影响微乎其微。

隐含波动率与历史波动率

这两个概念,我建议你分开理解:

  • 历史波动率:回头看,过去30天标的实际波动了多少
  • 隐含波动率:向前看,市场认为未来30天会波动多少

隐含波动率是期权交易员的「体温计」。IV高,说明市场恐慌或兴奋;IV低,说明市场平静。我个人的交易习惯是:当IV处于历史低位时,倾向于做多波动率(买期权);当IV处于历史高位时,倾向于做空波动率(卖期权)。

注意:隐含波动率不是预测未来波动率的准确指标,它只是市场参与者的「共识」。共识可能是错的,而且经常是错的。

BS模型的核心公式(Python实现)

下面是我常用的BS定价函数。代码不长,但每次用的时候我都会再检查一遍参数有没有传对。

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:
        price = K * np.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
    
    return price

# 举个例子
price = black_scholes(S=100, K=100, T=30/365, r=0.05, sigma=0.2, option_type='call')
print(f"平值看涨期权价格: {price:.2f}")

这段代码里,norm.cdf就是正态分布的累积概率函数。d1和d2其实就是标准化后的概率阈值。说白了,BS模型就是在算「到期时股价超过行权价的概率」,然后乘以相应的折现因子。

知识体系总览

下面这张图,是我整理的本章节核心逻辑。你可以把它当成一张地图,随时回来对照。

Black-Scholes模型 标的资产价格 (S) 行权价 (K) 剩余时间 (T) 波动率 (σ) 无风险利率 (r) 历史波动率 (HV) 隐含波动率 (IV) 期权理论价格 核心模型 输入因素 波动率类型 输出结果

这张图把BS模型的输入、核心逻辑和输出串起来了。你每次做期权定价时,都可以对照这张图,看看自己是不是漏掉了哪个因素。

我的建议:刚开始学BS模型时,别急着背公式。先理解这五个因素各自怎么影响期权价格。等你把逻辑理清了,公式自然就记住了。

好了,这一章的内容就到这里。BS模型是期权定价的基石,后面的所有策略都会用到这些概念。记住这五个因素,你就掌握了期权定价的钥匙。

专注资料整理