一个微分方程如何永远改变了金融市场,以及为什么它至今仍管理着数万亿美元。
引言:从物理学到财富
在 1973 年之前,期权交易就像荒野大镖客。没有人确切知道一个期权应该值多少钱。交易员依赖直觉、经验法则和运气。
当费舍尔·布莱克 (Fischer Black)、迈伦·斯科尔斯 (Myron Scholes) 和罗伯特·默顿 (Robert Merton) 发表了他们具有突破性的论文时,一切都改变了。他们采用了物理学中的热传导方程(描述热量如何通过材料扩散),并将其应用于金融市场。斯科尔斯和默顿因此发现获得 1997 年诺贝尔经济学奖(遗憾的是,布莱克并未能活着看到那一刻)。
他们的公式为市场提供了一种通用的衍生品估值语言。但它究竟描述了什么?
基本概念:期权的目的地
在深入研究数学之前,让我们回顾一下期权的基本风险特征(那些带绿色和红色线条的图表)。
期权是一种合同,赋予在未来以预先约定的价格(行权价)购买或出售资产的权利(而非义务)。
方向性策略(买入看涨和买入看跌)的风险特征。
期权中存在四种基本仓位:
- 买入看涨 (Long Call):你购买了买入资产的权利。如果标的资产价格 (S) 上涨,你的利润理论上是无限的。你的最大损失是支付给期权的权利金。
- 买入看跌 (Long Put):你购买了卖出资产的权利。当市场下跌时,你赚钱。非常适合对冲投资组合。
- 卖出看涨 (Short Call):你卖出了买入权。你会立即收到权利金,但如果资产价格“一飞冲天”,你将承担无限风险(回想一下 GameStop 轧空事件)。
- 卖出看跌 (Short Put):你卖出了卖出权。你会收到权利金,并承诺在资产价格下跌时买入。巴菲特经常使用这种方法以折扣价买入股票。
盈亏平衡点(Breakeven)计算为:行权价 (X) ± 期权权利金。
神秘方程:布莱克-斯科尔斯 PDE 分析
你经常在华尔街电影黑板上看到的公式是一个偏微分方程 (PDE):
布莱克-斯科尔斯模型的数学结构以及看涨和看跌期权的定价公式。
让我们来分解它(我们保证它不像看起来那么可怕):
- :期权价格(我们试图找到的值)。
- :时间。 显示了期权的时间价值如何衰减(Theta)。
- :标的资产价格 (Stock/Spot)。
- (Sigma):标的资产的波动率。波动率越高,期权越贵。
- :无风险利率。
该方程本质上说明:由期权和标的资产组成的对冲(无风险)投资组合的收益必须等于无风险银行存款的收益 ()。这被称为无套利原则。
实际应用:使用 Python 计算价值
该方程的解析解为我们提供了著名的布莱克-斯科尔斯看涨和看跌价格公式:
其中:
让我们用 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) 的风险管理工具。这些是期权价格相对于各种参数的导数(梯度):
- Delta ():标的资产价格变动 1 美元时,期权价格如何变动。(对 S 的一阶导数)。Delta 是你的方向性风险。
- Gamma ():标的资产价格变动 1 美元时,Delta 如何变动。(对 S 的二阶导数,即方程中的 )。Gamma 是你 Delta 的风险。
- Theta ():期权价值每天衰减多少。(对时间 的变化)。它是期权买家的敌人,卖家的朋友。
- Vega ():波动率每跳升 1% 时,价格如何变动。(剧透:Vega 实际上不是希腊字母,但它已成为传统)。
- Rho ():对利率变化的敏感性。加密交易员很少关注它,因为加密市场波动太快。
量化做市商(例如在 Deribit 或期权 DEX 上)不断交易标的资产,以保持其仓位“Delta 中性” ()。他们通过点差以及隐含波动率 (Implied Volatility) 与历史波动率之间的差异来获利。
残酷现实:模型的局限性
布莱克-斯科尔斯是一个天才公式,但它在现实世界中,特别是在加密领域,存在致命缺陷:
- 恒定波动率:该公式假设所有行权价的波动率都是相同的。实际上,存在“波动率微笑” (Volatility Smile) —— 虚值期权的价格往往高于模型的预测,因为交易员会为防范“黑天鹅”支付过高的保险费。
- 对数正态分布:该模型假设价格呈对数正态分布,且极端波动是不可能的。在加密领域,极端波动(肥尾效应)只是家常便饭。
- 连续交易:该公式假设你可以无成本地进行连续对冲。现实世界中的费用和滑点会迅速吞噬你的利润。
结论
布莱克-斯科尔斯公式是量化金融的罗塞塔石碑。即便知道它的缺点,整个金融界仍然使用布莱克-斯科尔斯波动率来报价。
理解这个公式及其“希腊字母”是从普通交易员向量化研究员迈出的一步。下一次当你决定买入期权时,请记住:你交易的不只是价格方向,你还在交易波动率和时间。
进一步阅读
代码仓库
- GitHub 仓库: suenot/options-pricing — 本文计算机和示例的完整源代码。
祝对冲愉快!📈
MarketMaker.cc Team
量化研究与策略



