【维克】从随机到有序:随机过程在金融模型中的应用

年化20%量化笔记 · 第28篇

WHY 为什么需要理解"随机过程"

市场是随机的,但随机不等于混乱

做量化交易做到第二年,我开始意识到一个残酷的事实:如果你不理解"随机"这个词的数学含义,你永远无法真正理解市场。

很多人觉得市场波动就是"噪声"------今天涨、明天跌,毫无规律可言。这种看法只对了一半。市场短期确实随机,但这种随机不是"乱来",它有结构、有边界、有统计规律。

随机过程(Stochastic Process)就是描述这种"有结构的随机"的数学工具。

举个生活化的例子:你站在广场上,每一步往哪个方向走是随机的,但你走了1000步之后,大概率不会离原点太远------你会在一个"扩散范围"内晃悠。这就是随机游走,也是金融价格运动的底层模型之一。

为什么量化交易者必须了解随机过程

  1. 期权定价的数学基础就是随机过程 ------Black-Scholes模型的核心假设是"股价服从几何布朗运动",不理解这个,你就无法真正理解期权 Greeks 的含义

  2. 策略回测的统计检验依赖随机过程理论 ------判断你的策略是"真的有效"还是"恰好拟合了一段随机数据",需要用到随机过程的性质

  3. 风险建模的底层语言 ------VaR、CVaR的计算假设价格遵循某种随机过程,搞错模型假设,风险估计就是废纸

  4. 高频策略的信号提取 ------在噪声中找到信号,本质上是在随机过程中识别"非随机"的成分

说白了,随机过程是量化金融的"操作系统"。你不需要成为数学家,但你需要理解它的基本逻辑,才能正确使用那些封装好的工具和模型。

从布朗运动到期权定价:一段传奇

1827年,植物学家罗伯特·布朗在显微镜下观察花粉颗粒在水中的运动,发现它们在做永不停歇的无规则运动------这就是"布朗运动"。

1900年,法国数学家路易·巴舍利耶(Louis Bachelier)在他的博士论文《投机理论》中,第一次用布朗运动来建模金融资产价格 ------比爱因斯坦解释布朗运动的物理机制还早了5年。

1923年,诺伯特·维纳(Norbert Wiener)严格证明了布朗运动的数学性质,此后布朗运动也被称为"维纳过程"(Wiener Process)。

1973年,Black和Scholes基于"股价服从几何布朗运动"的假设,推导出了那个改变了整个金融行业的期权定价公式。从此,随机过程从纯数学走进了华尔街的核心。

HOW 随机过程的核心概念与金融应用

1. 什么是随机过程?

随机过程是一族随机变量的集合,用时间来索引。

简单说:你在每个时间点都有一个随机变量,把这些随机变量按时间顺序串起来,就是一个随机过程。

数学表达:{X(t), t ≥ 0},表示在时间t的随机状态。

金融场景对应:

• X(t) = 股票在时间t的价格

• X(t) = 在时间t的累计收益率

• X(t) = 在时间t的波动率

2. 布朗运动(维纳过程)

布朗运动是最基本的连续时间随机过程,满足以下性质:

|--------|-------------------------|-----------------|
| 性质 | 数学表达 | 金融含义 |
| 起点为0 | W(0) = 0 | 初始冲击为0 |
| 独立增量 | W(t)-W(s) 独立于 W(s)-W(r) | 不同时段的价格变动互不影响 |
| 正态增量 | W(t)-W(s) ~ N(0, t-s) | 价格变动服从正态分布 |
| 连续路径 | W(t) 关于t连续 | 价格不会"跳跃"(理想化假设) |

关键洞察 :布朗运动的方差随时间线性增长------VarW(t) = t。这意味着,预测的时间跨度越长,不确定性越大。这和我们的直觉一致:预测明天的股价比预测明年的股价靠谱得多。

3. 几何布朗运动(GBM):股价的真实模型

布朗运动有个问题:它允许负值。但股价不可能是负数。

解决方案:几何布朗运动(Geometric Brownian Motion, GBM)

GBM的SDE(随机微分方程):

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

其中:

• S = 资产价格

• μ = 漂移率(期望收益率)

• σ = 波动率

• dW = 布朗运动的增量

翻译成大白话 :价格的变化 = 趋势项(μ·S·dt)+ 随机项(σ·S·dW)

• 趋势项决定了价格的"大方向"------如果μ>0,价格长期向上

• 随机项决定了价格的"波动程度"------σ越大,价格波动越剧烈

• 两项都乘以S,意味着收益率(而非价格本身)是正态分布的

这就是为什么我们用"对数收益率"而不是"价格差"来分析金融数据------因为GBM隐含假设对数收益率服从正态分布。

4. 从GBM到Black-Scholes公式

Black-Scholes模型的核心推导思路:

  1. 假设股价服从GBM → 价格路径的概率分布已知

  2. 构造无风险对冲组合 → 用期权和标的资产构建Delta中性组合

  3. 利用无套利原则 → 对冲组合的收益率必须等于无风险利率

  4. 推导PDE → 得到Black-Scholes偏微分方程

  5. 求解PDE → 得到欧式期权的解析解

最终公式(欧式看涨期权):

C = S·N(d₁) - K·e^(-rT)·N(d₂)
d₁ = ln(S/K) + (r + σ²/2)·T / (σ·√T)
d₂ = d₁ - σ·√T

这个公式的美妙之处在于:它把期权价格分解为5个可观测变量的函数------标的价格S、行权价K、无风险利率r、到期时间T、波动率σ。其中唯一不可直接观测的就是波动率σ ------这就是为什么"隐含波动率"(Implied Volatility)如此重要。

5. 实操:用Python模拟几何布朗运动

// python
import numpy as np
import matplotlib.pyplot as plt
def simulate_gbm(S0, mu, sigma, T, dt, n_paths=100):
"""
模拟几何布朗运动价格路径
Parameters:

  • S0: 初始价格
  • mu: 年化漂移率(期望收益率)
  • sigma: 年化波动率
  • T: 总时间(年)
  • dt: 时间步长
  • n_paths: 模拟路径数量
    """
    n_steps = int(T / dt)
    t = np.linspace(0, T, n_steps)

预生成随机增量

dW = np.random.standard_normal((n_paths, n_steps)) * np.sqrt(dt)

价格路径(向量化计算)

S = np.zeros((n_paths, n_steps))
S:, 0 = S0
for i in range(1, n_steps):
S:, i = S:, i-1 * np.exp(
(mu - 0.5 * sigma**2) * dt + sigma * dW:, i
)
return t, S

模拟1000条路径

np.random.seed(42)
t, S = simulate_gbm(S0=100, mu=0.08, sigma=0.2, T=1, dt=1/252, n_paths=1000)

可视化

plt.figure(figsize=(12, 6))
for i in range(50):
plt.plot(t, Si, alpha=0.3, linewidth=0.8)
plt.plot(t, np.mean(S, axis=0), 'r-', linewidth=2, label='Mean Path')
plt.xlabel('Time (years)')
plt.ylabel('Price')
plt.title('Geometric Brownian Motion - 50 Sample Paths')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

关键观察

• 每条路径都不同,但整体呈现"扇形扩散"------不确定性随时间增大

• 均值路径近似按μ=8%增长------这就是漂移项的作用

• 路径的"宽度"由σ=20%决定------波动率越大,扇面越宽

6. 蒙特卡洛模拟:用随机过程定价

当期权没有解析解时(比如亚式期权、障碍期权),蒙特卡洛模拟是标准方法:

// python
def monte_carlo_european_call(S0, K, r, sigma, T, n_paths=100000):
"""
蒙特卡洛模拟欧式看涨期权定价
"""
dt = T

模拟终端价格(GBM解析解)

Z = np.random.standard_normal(n_paths)
S_T = S0 * np.exp((r - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * Z)

计算payoff

payoff = np.maximum(S_T - K, 0)

折现

option_price = np.exp(-r * T) * np.mean(payoff)
std_error = np.exp(-r * T) * np.std(payoff) / np.sqrt(n_paths)
return option_price, std_error

示例:S=100, K=105, r=5%, σ=20%, T=1年

price, se = monte_carlo_european_call(100, 105, 0.05, 0.2, 1)
print(f"Monte Carlo Price: {price:.4f} ± {se:.4f}")

对比BS解析解

from scipy.stats import norm
d1 = (np.log(100/105) + (0.05 + 0.2**2/2)*1) / (0.2*np.sqrt(1))
d2 = d1 - 0.2*np.sqrt(1)
bs_price = 100*norm.cdf(d1) - 105*np.exp(-0.05)*norm.cdf(d2)
print(f"BS Analytical Price: {bs_price:.4f}")

蒙特卡洛方法的精度与路径数量的平方根成正比 ------要提升10倍精度,需要100倍的路径。这是它的天然局限,也是方差缩减技术(对偶变量、控制变量、重要性采样)存在的意义。

WHAT 掌握随机过程后的可量化产出

你能做什么

  1. 理解期权定价模型的底层逻辑 ------不再是"套公式",而是知道公式从哪来、假设是什么、什么时候会失效

  2. 用蒙特卡洛模拟给复杂衍生品定价 ------包括亚式期权、障碍期权、百慕大期权等没有解析解的产品

  3. 正确评估策略的统计显著性 ------区分"真Alpha"和"随机噪声"

  4. 构建更精确的风险模型 ------理解VaR计算背后的分布假设,知道什么时候该用t分布替代正态分布

  5. 识别模型假设的局限性 ------GBM假设对数收益率正态、波动率恒定、路径连续------现实中这些假设全部不完美成立

行动

|--------|------------------------------------------------|----------|---------------|
| 序号 | 行动 | 预期时间 | 产出 |
| 1 | 跑通GBM模拟代码,观察不同μ和σ下的路径形态 | 1小时 | 直觉理解漂移和波动率的作用 |
| 2 | 用蒙特卡洛给一个欧式期权定价,对比BS公式结果 | 1小时 | 验证数值方法的准确性 |
| 3 | 读取真实股票数据,拟合GBM参数(μ和σ) | 2小时 | 理解模型校准过程 |
| 4 | 尝试给一个亚式期权用蒙特卡洛定价 | 2小时 | 掌握复杂衍生品定价方法 |
| 5 | 阅读Shreve《Stochastic Calculus for Finance》第1-3章 | 1周 | 建立严格的数学框架 |

量化指标

• GBM模拟1000条路径后,终端价格的标准差应接近 S₀·σ·√T

• 蒙特卡洛10万路径定价欧式期权,误差通常在BS解析解的0.5%以内

• 真实数据拟合的年化波动率,通常在15%-35%区间(主要股指)

• 模拟路径的"扇面扩散"速率与√T成正比------这是检验模拟正确性的快速方法

下一步预告

第29篇:大数定律与中心极限定理:为什么长期均值终将回归? ------从随机过程的统计规律出发,理解为什么足够多的独立随机变量之和趋近正态分布,以及这对策略评估和风险管理的深层意义。

相关推荐
其实防守也摸鱼1 小时前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
服务器·数据库·学习·开源·github·命令行·linux系统
开朗小哥2 小时前
Agent claudecode学习记录
学习
LONGZHIQIN2 小时前
TIA Portal Openness学习笔记
笔记·学习
网络工程小王2 小时前
【HCIE-AI】12.deepspeed分布式并行训练进阶版
人工智能·pytorch·分布式·学习·昇腾·deepspeed
小+不通文墨2 小时前
--no-multibyte-chars 解决OLED_data.c移植后中文乱码问题
c语言·经验分享·笔记·学习
知识分享小能手3 小时前
统计学学习教程,从入门到精通,一元线性回归 —— 知识点详解(17)
学习·算法·线性回归
青山是哪个青山3 小时前
LangChain 1.x 学习笔记(一):为什么需要 LangChain?一文彻底理解 LangChain 生态
笔记·学习·langchain
cooldream20093 小时前
AI 时代,前端工程师的“新学习路线“—— 从“学框架“到“用 AI“
前端·人工智能·学习
CappuccinoRose3 小时前
Rust学习文档(二)
开发语言·后端·学习·rust