1. 随机游走与布朗运动:从离散到连续的数学桥梁

大家好,欢迎来到这门课的第一讲。

说实话,每次讲到随机游走,我都会想起自己刚入行时的一个小插曲。那时候我还在做高频交易策略,总想着用离散的 tick 数据去预测下一秒的价格。结果呢?回测曲线漂亮得不像话,实盘却亏得我怀疑人生。后来我才明白——离散的随机游走和连续的布朗运动之间,差着一座数学桥梁。今天,我们就来亲手搭建这座桥。

1.1 为什么从随机游走开始?

期权定价的核心,说白了就是描述资产价格的随机运动。你想想看,股票价格是一秒一秒跳动的,还是连续滑动的?

答案是:我们看到的离散报价,背后隐藏着连续的随机过程。伊藤积分处理的就是这种连续随机过程。但直接上手连续模型,容易晕。所以,我们先从离散的随机游走入手——这是最直观的入门方式。

核心思想: 离散随机游走 → 极限 → 连续布朗运动。这个极限过程,就是伊藤积分的基石。

1.2 离散随机游走的数学定义

先看一个最简单的模型。假设时间被切成等长的小段,每段长度 Δt。在每个小段里,价格要么向上跳一步,要么向下跳一步。步长设为 Δx。

用数学语言说:

  • 初始位置 S₀ = 0
  • 每一步的位移 ΔS = ±Δx,概率各为 1/2
  • 经过 n 步后,位置 Sₙ = Δx · (X₁ + X₂ + ... + Xₙ),其中 Xᵢ = ±1

嗯,这里要注意:每一步之间是独立的。这个独立性假设,在后续的伊藤积分中会反复出现。

1.3 从离散到连续:关键的三步

我个人习惯把这座桥梁的搭建分成三步走:

  1. 缩小步长:让 Δt → 0,同时让 Δx 也变小
  2. 保持方差:为了让极限有意义,必须让 Δx 和 Δt 满足特定关系
  3. 取极限:得到连续的布朗运动 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 核心知识体系

下面这张图,是我自己梳理的本章知识脉络。建议你保存下来,学完后面几章再回来看,会有更深的理解。

随机游走 → 布朗运动:知识体系 离散随机游走 Sₙ = Δx · ΣXᵢ Δt→0 三步缩放 Δx ∝ √Δt 极限 布朗运动 W(t) ~ N(0,t) 布朗运动三条核心性质 W(0)=0 | 独立增量 | 正态增量 离散模拟 蒙特卡洛路径生成 连续建模 伊藤过程基础 期权定价 BS公式推导起点 核心结论 离散随机游走 + 正确缩放 → 连续布朗运动 → 伊藤积分的基础

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