1. 随机游走与布朗运动:从离散到连续的数学桥梁
大家好,欢迎来到这门课的第一讲。
说实话,每次讲到随机游走,我都会想起自己刚入行时的一个小插曲。那时候我还在做高频交易策略,总想着用离散的 tick 数据去预测下一秒的价格。结果呢?回测曲线漂亮得不像话,实盘却亏得我怀疑人生。后来我才明白——离散的随机游走和连续的布朗运动之间,差着一座数学桥梁。今天,我们就来亲手搭建这座桥。
1.1 为什么从随机游走开始?
期权定价的核心,说白了就是描述资产价格的随机运动。你想想看,股票价格是一秒一秒跳动的,还是连续滑动的?
答案是:我们看到的离散报价,背后隐藏着连续的随机过程。伊藤积分处理的就是这种连续随机过程。但直接上手连续模型,容易晕。所以,我们先从离散的随机游走入手——这是最直观的入门方式。
核心思想: 离散随机游走 → 极限 → 连续布朗运动。这个极限过程,就是伊藤积分的基石。
1.2 离散随机游走的数学定义
先看一个最简单的模型。假设时间被切成等长的小段,每段长度 Δt。在每个小段里,价格要么向上跳一步,要么向下跳一步。步长设为 Δx。
用数学语言说:
- 初始位置 S₀ = 0
- 每一步的位移 ΔS = ±Δx,概率各为 1/2
- 经过 n 步后,位置 Sₙ = Δx · (X₁ + X₂ + ... + Xₙ),其中 Xᵢ = ±1
嗯,这里要注意:每一步之间是独立的。这个独立性假设,在后续的伊藤积分中会反复出现。
1.3 从离散到连续:关键的三步
我个人习惯把这座桥梁的搭建分成三步走:
- 缩小步长:让 Δt → 0,同时让 Δx 也变小
- 保持方差:为了让极限有意义,必须让 Δx 和 Δt 满足特定关系
- 取极限:得到连续的布朗运动 W(t)
我在项目中遇到过不少同学,直接跳过前两步,上来就写 dS = μdt + σdW。结果模型参数怎么调都不对。为什么?因为离散到连续的缩放关系没搞清楚。
避坑指南: 我曾经在做一个波动率套利策略时,把 Δt 和 Δx 的关系搞反了。回测时年化波动率算出来只有 5%,实盘却是 30%。后来发现,离散模型的步长缩放因子应该是 √Δt,不是 Δt。记住这个:布朗运动的方差与时间成正比,标准差与 √Δt 成正比。
1.4 布朗运动的严格定义
当 Δt → 0 时,离散随机游走的极限就是布朗运动。它满足三条性质:
| 性质 | 数学表达 | 直观理解 |
|---|---|---|
| 起点为零 | W(0) = 0 | 从原点出发 |
| 独立增量 | W(t) - W(s) 与过去独立 | 未来走势不依赖历史 |
| 正态增量 | W(t) - W(s) ~ N(0, t-s) | 增量服从正态分布 |
你想想看,这三条性质其实非常强。独立增量意味着市场没有记忆——这恰恰是有效市场假说的数学基础。当然,实际市场中存在短期动量或反转,但作为理论起点,布朗运动已经足够强大。
1.5 核心知识体系
下面这张图,是我自己梳理的本章知识脉络。建议你保存下来,学完后面几章再回来看,会有更深的理解。
1.6 代码实战:模拟随机游走收敛到布朗运动
光说不练假把式。我们写一段 Python 代码,亲眼看看离散随机游走是怎么逼近布朗运动的。
import numpy as np
import matplotlib.pyplot as plt
def simulate_random_walk(N, T=1.0):
"""
N: 时间步数
T: 总时间
返回: 离散随机游走路径
"""
dt = T / N
# 步长缩放:Δx = √dt
dx = np.sqrt(dt)
# 生成 ±1 的随机步
steps = np.random.choice([-dx, dx], size=N)
# 累积求和得到路径
path = np.concatenate([[0], np.cumsum(steps)])
time = np.linspace(0, T, N+1)
return time, path
# 模拟不同分辨率下的路径
np.random.seed(42)
plt.figure(figsize=(10, 6))
for N, color in zip([10, 50, 500], ['#e74c3c', '#e67e22', '#27ae60']):
t, w = simulate_random_walk(N)
plt.plot(t, w, label=f'N={N} steps', color=color, alpha=0.8)
# 理论布朗运动的一条样本路径(用高分辨率近似)
t_fine, w_fine = simulate_random_walk(10000)
plt.plot(t_fine, w_fine, 'k--', label='N=10000 (近似连续)', alpha=0.5)
plt.title('离散随机游走 → 连续布朗运动')
plt.xlabel('时间 t')
plt.ylabel('位置 W(t)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
⚠️ 重要提醒: 代码中的步长缩放 dx = √dt 是核心。如果你写成 dx = dt,随着 N 增大,路径会坍缩到零。如果你写成 dx = 1,路径会发散到无穷。只有 √dt 这个缩放,才能让极限存在且非平凡。这个细节,我在早期做路径依赖期权定价时踩过坑,后来花了整整两天才定位到问题。
1.7 为什么这对期权定价至关重要?
你可能会问:搞这么复杂的数学,就为了描述股价随机波动?
是的,而且理由很充分:
- 布朗运动的路径处处连续,但处处不可导——这恰好匹配真实股价的跳跃特征
- 独立增量性质——让期权定价中的无套利假设成为可能
- 正态分布假设——虽然真实市场有厚尾,但布朗运动是伊藤积分最干净的起点
我个人习惯把布朗运动看作期权定价世界的「牛顿定律」——它不完美,但离开它,整个大厦都会坍塌。后面的伊藤引理、Black-Scholes 方程,全都建立在这个基础之上。
一个小练习: 试着修改上面代码中的步长缩放因子,分别试试 dx = dt 和 dx = dt^0.3,看看路径会发生什么变化。这个练习能帮你直观理解「为什么必须是 √dt」。
好了,这一讲就到这里。离散到连续的桥梁已经搭好,下一讲我们会站在这座桥上,正式进入伊藤积分的世界。
公众号:蓝海资料掘金营,微信deep3321