返回文章列表
February 20, 2026
5 分钟阅读

布莱克-斯科尔斯公式:期权数学与交易圣杯

布莱克-斯科尔斯公式:期权数学与交易圣杯
布莱克-斯科尔斯
期权
衍生品
量化交易
波动率
希腊字母
python
量化金融

一个微分方程如何永远改变了金融市场,以及为什么它至今仍管理着数万亿美元。

引言:从物理学到财富

在 1973 年之前,期权交易就像荒野大镖客。没有人确切知道一个期权应该值多少钱。交易员依赖直觉、经验法则和运气。

当费舍尔·布莱克 (Fischer Black)、迈伦·斯科尔斯 (Myron Scholes) 和罗伯特·默顿 (Robert Merton) 发表了他们具有突破性的论文时,一切都改变了。他们采用了物理学中的热传导方程(描述热量如何通过材料扩散),并将其应用于金融市场。斯科尔斯和默顿因此发现获得 1997 年诺贝尔经济学奖(遗憾的是,布莱克并未能活着看到那一刻)。

他们的公式为市场提供了一种通用的衍生品估值语言。但它究竟描述了什么?

基本概念:期权的目的地

在深入研究数学之前,让我们回顾一下期权的基本风险特征(那些带绿色和红色线条的图表)。

期权是一种合同,赋予在未来以预先约定的价格(行权价)购买或出售资产的权利(而非义务)。

期权收益图 方向性策略(买入看涨和买入看跌)的风险特征。

期权中存在四种基本仓位:

  1. 买入看涨 (Long Call):你购买了买入资产的权利。如果标的资产价格 (S) 上涨,你的利润理论上是无限的。你的最大损失是支付给期权的权利金。
  2. 买入看跌 (Long Put):你购买了卖出资产的权利。当市场下跌时,你赚钱。非常适合对冲投资组合。
  3. 卖出看涨 (Short Call):你卖出了买入权。你会立即收到权利金,但如果资产价格“一飞冲天”,你将承担无限风险(回想一下 GameStop 轧空事件)。
  4. 卖出看跌 (Short Put):你卖出了卖出权。你会收到权利金,并承诺在资产价格下跌时买入。巴菲特经常使用这种方法以折扣价买入股票。

盈亏平衡点(Breakeven)计算为:行权价 (X) ± 期权权利金。

神秘方程:布莱克-斯科尔斯 PDE 分析

你经常在华尔街电影黑板上看到的公式是一个偏微分方程 (PDE):

布莱克-斯科尔斯公式可视化 布莱克-斯科尔斯模型的数学结构以及看涨和看跌期权的定价公式。

Vt+12σ2S22VS2+rSVSrV=0\frac{\partial V}{\partial t} + \frac{1}{2} \sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} + rS \frac{\partial V}{\partial S} - rV = 0

让我们来分解它(我们保证它不像看起来那么可怕):

  • VV:期权价格(我们试图找到的值)。
  • tt:时间。Vt\frac{\partial V}{\partial t} 显示了期权的时间价值如何衰减(Theta)。
  • SS:标的资产价格 (Stock/Spot)。
  • σ\sigma (Sigma):标的资产的波动率。波动率越高,期权越贵。
  • rr:无风险利率。

该方程本质上说明:由期权和标的资产组成的对冲(无风险)投资组合的收益必须等于无风险银行存款的收益 (rVrV)。这被称为无套利原则。

实际应用:使用 Python 计算价值

该方程的解析解为我们提供了著名的布莱克-斯科尔斯看涨和看跌价格公式:

C=S0N(d1)XerTN(d2)C = S_0 N(d_1) - X e^{-rT} N(d_2) P=XerTN(d2)S0N(d1)P = X e^{-rT} N(-d_2) - S_0 N(-d_1)

其中: d1=ln(S0/X)+(r+σ2/2)TσTd_1 = \frac{\ln(S_0/X) + (r + \sigma^2/2)T}{\sigma \sqrt{T}} d2=d1σTd_2 = d_1 - \sigma \sqrt{T}

让我们用 Python 来编写它。将复杂的数学转化为现成价格的代码:

import numpy as np from scipy.stats import norm import math def black_scholes(S, X, T, r, sigma, option_type="call"): """ 使用布莱克-斯科尔斯模型计算期权价格。 S: 当前标的资产价格 X: 行权价 (Strike) T: 到期时间(以年为单位) r: 无风险利率 sigma: 标的资产波动率 option_type: "call" 或 "put" """ if T <= 0: if option_type == "call": return max(0.0, S - X) else: return max(0.0, X - S) d1 = (math.log(S / X) + (r + 0.5 * sigma**2) * T) / (sigma * math.sqrt(T)) d2 = d1 - sigma * math.sqrt(T) if option_type == "call": price = S * norm.cdf(d1) - X * math.exp(-r * T) * norm.cdf(d2) elif option_type == "put": price = X * math.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1) else: raise ValueError("option_type 必须是 'call' 或 'put'") return price current_price = 100.0 # 比特币 $100k(为什么不呢?) strike_price = 100.0 # 平值 (ATM) 行权价 time_to_expiry = 30/365 # 30 天后到期 risk_free_rate = 0.05 # 5% 年化利率 volatility = 0.50 # 50% 波动率(典型的加密市场波动率) call_price = black_scholes(current_price, strike_price, time_to_expiry, risk_free_rate, volatility, "call") put_price = black_scholes(current_price, strike_price, time_to_expiry, risk_free_rate, volatility, "put") print(f"看涨期权理论价格: ${call_price:.2f}") print(f"看跌期权理论价格: ${put_price:.2f}")

期权之主:认识“希腊字母”

布莱克-斯科尔斯模型不仅给了我们一个价格,还给了我们被称为“希腊字母” (The Greeks) 的风险管理工具。这些是期权价格相对于各种参数的导数(梯度):

  1. Delta (Δ\Delta):标的资产价格变动 1 美元时,期权价格如何变动。(对 S 的一阶导数)。Delta 是你的方向性风险。
  2. Gamma (Γ\Gamma):标的资产价格变动 1 美元时,Delta 如何变动。(对 S 的二阶导数,即方程中的 2VS2\frac{\partial^2 V}{\partial S^2})。Gamma 是你 Delta 的风险。
  3. Theta (Θ\Theta):期权价值每天衰减多少。(对时间 tt 的变化)。它是期权买家的敌人,卖家的朋友。
  4. Vega (V\mathcal{V}):波动率每跳升 1% 时,价格如何变动。(剧透:Vega 实际上不是希腊字母,但它已成为传统)。
  5. Rho (ρ\rho):对利率变化的敏感性。加密交易员很少关注它,因为加密市场波动太快。

量化做市商(例如在 Deribit 或期权 DEX 上)不断交易标的资产,以保持其仓位“Delta 中性” (Δ=0\Delta = 0)。他们通过点差以及隐含波动率 (Implied Volatility) 与历史波动率之间的差异来获利。

残酷现实:模型的局限性

布莱克-斯科尔斯是一个天才公式,但它在现实世界中,特别是在加密领域,存在致命缺陷:

  1. 恒定波动率:该公式假设所有行权价的波动率都是相同的。实际上,存在“波动率微笑” (Volatility Smile) —— 虚值期权的价格往往高于模型的预测,因为交易员会为防范“黑天鹅”支付过高的保险费。
  2. 对数正态分布:该模型假设价格呈对数正态分布,且极端波动是不可能的。在加密领域,极端波动(肥尾效应)只是家常便饭。
  3. 连续交易:该公式假设你可以无成本地进行连续对冲。现实世界中的费用和滑点会迅速吞噬你的利润。

结论

布莱克-斯科尔斯公式是量化金融的罗塞塔石碑。即便知道它的缺点,整个金融界仍然使用布莱克-斯科尔斯波动率来报价。

理解这个公式及其“希腊字母”是从普通交易员向量化研究员迈出的一步。下一次当你决定买入期权时,请记住:你交易的不只是价格方向,你还在交易波动率和时间。

进一步阅读

代码仓库

祝对冲愉快!📈

免责声明:本文提供的信息仅用于教育和参考目的,不构成财务、投资或交易建议。加密货币交易涉及重大损失风险。

MarketMaker.cc Team

量化研究与策略

在 Telegram 中讨论