3、随机过程与布朗运动:随机游走、维纳过程、几何布朗运动、伊藤引理简介

聊到Black-Scholes模型,绕不开一个核心概念——随机过程

说白了,股票价格不是确定性的。它今天涨明天跌,你没法用一个简单的公式预测。那怎么办?数学家们想了个办法:用概率来描述这种不确定性。这就是随机过程干的事。

我个人习惯把随机过程理解成「带随机性的时间序列」。每个时间点,价格都是一个随机变量。把这些变量串起来,就构成了一条路径。嗯,这就是我们常说的样本路径

3.1 随机游走:最朴素的随机过程

先从一个最简单的模型说起——随机游走

想象你站在一条直线上。每过一秒,你抛一枚硬币:正面朝上,你向右走一步;反面朝上,你向左走一步。这就是一维随机游走。

数学上可以写成:

Sₜ = S₀ + ε₁ + ε₂ + ... + εₜ

其中每个 εᵢ 独立同分布,取 +1 或 -1 的概率各为 1/2。

我在项目中遇到过一个问题:用随机游走模拟股价,结果发现模拟出来的价格经常变成负数。这显然不合理——股票价格不可能为负。所以随机游走虽然简单,但直接套用在金融上是有问题的。

注意: 随机游走的方差随时间线性增长。这意味着时间越长,价格的不确定性越大。这在金融中其实挺符合直觉的——你很难预测一年后的股价,但预测明天相对容易。

3.2 维纳过程:连续时间的随机游走

随机游走是离散时间的。如果我们把时间间隔无限缩小,会发生什么?

这就引出了维纳过程,也叫布朗运动。它是随机游走在连续时间下的极限。

维纳过程 Wₜ 有三个关键性质:

  • W₀ = 0(从原点出发)
  • 增量独立:Wₜ - Wₛ 与过去无关
  • 增量服从正态分布:Wₜ - Wₛ ~ N(0, t-s)

你想想看,第三条性质很有意思。方差等于时间差。这意味着时间越长,不确定性越大,但增长方式是「平方根」级别的——标准差是 √(t-s)。

我曾经在调试一个期权定价程序时,发现结果总是不对。查了半天,原来是随机数生成器的方差设错了。嗯,这里要注意:维纳过程的增量方差是 Δt,不是 Δt²。

核心要点: 维纳过程是连续时间、连续路径的随机过程。它的路径处处连续,但处处不可导。说白了,你没法求它的导数——因为太「抖」了。

3.3 几何布朗运动:股价的标准模型

回到股价问题。我们想要一个模型,满足两个条件:

  1. 价格始终为正
  2. 收益率(而非价格本身)服从正态分布

这就是几何布朗运动(GBM)的由来。

它的随机微分方程(SDE)形式是:

dSₜ = μ Sₜ dt + σ Sₜ dWₜ

其中:

  • μ 是漂移率(期望收益率)
  • σ 是波动率(标准差)
  • dWₜ 是维纳过程的增量

这个方程的意思是:股价的变化 = 确定性趋势项 + 随机波动项。趋势项让股价长期向上,随机项让股价上下波动。

我建议你记住它的解析解:

Sₜ = S₀ · exp((μ - σ²/2)t + σWₜ)

注意那个 -σ²/2 项。很多人第一次看到会疑惑:为什么漂移率要减去半个方差?

其实这是因为对数正态分布的特性。几何布朗运动的期望收益率是 μ,但中位数收益率是 μ - σ²/2。如果你用蒙特卡洛模拟,会发现大多数路径的终点低于 exp(μt)——这就是所谓的「波动率拖累」效应。

实战技巧: 用Python模拟GBM路径时,记得用对数形式:
log(Sₜ) = log(S₀) + (μ - σ²/2)t + σ·√t·Z
其中 Z 是标准正态随机数。这样写数值稳定性更好。

3.4 伊藤引理:随机微积分的基石

普通微积分里,我们求导、积分都有现成的规则。但随机过程不一样——因为 dWₜ 的平方不是零,而是 dt。

这就是伊藤引理要解决的问题。

简单说,伊藤引理告诉我们:如果一个随机过程 Xₜ 满足 SDE,那么它的函数 f(Xₜ, t) 也满足一个SDE。公式是:

df = (∂f/∂t + μ·∂f/∂x + ½σ²·∂²f/∂x²)dt + σ·∂f/∂x·dWₜ

注意那个 ½σ²·∂²f/∂x² 项。这就是伊藤引理和普通微积分最大的区别——多了二阶项。

为什么会这样?因为 dWₜ 的方差是 dt,所以 (dWₜ)² 的期望是 dt。在随机微积分里,我们把它当作确定性的 dt 来处理。

我记得刚学的时候,总觉得这个推导很玄乎。后来做了一次期权对冲的模拟,才发现伊藤引理不是理论游戏——它直接决定了你如何对冲期权风险。

为什么伊藤引理对Black-Scholes重要?
Black-Scholes模型假设股价服从几何布朗运动。然后用伊藤引理推导出期权价格的偏微分方程。没有伊藤引理,就没有BS公式。

3.5 知识体系总览

下面这张图总结了本章的核心逻辑:

随机过程与布朗运动:知识体系 随机游走 离散时间,±1步长 维纳过程 连续时间,正态增量 几何布朗运动 股价标准模型 伊藤引理 随机微积分的链式法则 Black-Scholes 模型 从离散到连续,从简单到复杂,最终服务于期权定价

从这张图可以看得很清楚:随机游走是基础,维纳过程是它的连续版本,几何布朗运动是股价的实用模型,而伊藤引理则是连接随机过程和期权定价的桥梁。

3.6 代码实战:模拟几何布朗运动

光说不练假把式。我们写段Python代码,模拟一下GBM路径。

import numpy as np
import matplotlib.pyplot as plt

# 参数设置
S0 = 100       # 初始价格
mu = 0.05      # 年化收益率
sigma = 0.2    # 年化波动率
T = 1.0        # 时间长度(年)
N = 252        # 交易日数
dt = T / N     # 时间步长

# 生成随机数
np.random.seed(42)
Z = np.random.normal(0, 1, N)

# 模拟价格路径(对数形式)
log_S = np.zeros(N)
log_S[0] = np.log(S0)

for t in range(1, N):
    log_S[t] = log_S[t-1] + (mu - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * Z[t]

# 转回价格
S = np.exp(log_S)

# 绘制路径
plt.figure(figsize=(10, 5))
plt.plot(S, 'b-', linewidth=1.5)
plt.title('几何布朗运动模拟路径 (S₀=100, μ=5%, σ=20%)')
plt.xlabel('交易日')
plt.ylabel('价格')
plt.grid(True, alpha=0.3)
plt.show()

这段代码模拟了一年的股价走势。你可以试试改变 μ 和 σ,看看路径会怎么变化。

我个人的经验是:波动率 σ 对路径形状的影响远大于漂移率 μ。高波动率下,路径看起来「毛刺」很多,上下乱窜。低波动率则平滑得多。

一个小技巧: 模拟多条路径时,用矩阵运算代替循环,速度能快几十倍。
log_S = np.cumsum((mu - 0.5*sigma**2)*dt + sigma*np.sqrt(dt)*Z, axis=1)

3.7 避坑指南

最后分享几个我踩过的坑:

  • 时间步长别太大: 我曾经用 dt=0.1 模拟,结果路径看起来像锯齿。金融数据至少用日频(dt=1/252)。
  • 随机数种子要固定: 调试时如果不固定种子,每次结果都不一样,根本没法找bug。
  • 注意对数与指数的转换: 模拟时用对数价格,最后再转回来。直接模拟价格容易出负数。
  • 伊藤引理的二阶项别漏: 写代码时,μ - σ²/2 这个修正项很容易忘。忘了的话,模拟的长期均值就不对了。

嗯,这一章的内容就到这。随机过程是量化金融的基石,理解透了,后面的期权定价才能站得稳。


公众号:蓝海资料掘金营,微信deep3321