第4章 随机微分方程(SDE)入门:描述资产价格的动态
好,咱们今天来聊聊随机微分方程。说实话,这名字听着挺唬人的。但你别怕,它本质上就是个工具——用来描述资产价格怎么“随机”变动的工具。
我在做量化交易那几年,最深的体会就是:如果你不懂SDE,你根本没法真正理解期权定价和投资组合优化。那些漂亮的公式背后,全是SDE的影子。
4.1 为什么需要随机微分方程?
先问个问题:股票价格是确定的吗?
显然不是。你今天买进去,明天可能涨5%,也可能跌3%。没人能精确预测。那怎么办?
传统微分方程告诉我们:dS/dt = μS,意思是价格按固定速率增长。但现实世界哪有这么美好?
所以我们需要引入一个随机项——说白了,就是给确定性模型加点“噪音”。
核心思想:资产价格 = 确定性趋势 + 随机波动
4.2 从布朗运动说起
随机微分方程的基础,是布朗运动。你可能听说过这个名字——它最早用来描述花粉在水中的随机运动。
数学上,我们用 W(t) 表示标准布朗运动。它有这几个性质:
W(0) = 0,从零点出发- 增量独立:不同时间段的变动互不影响
- 增量服从正态分布:
W(t) - W(s) ~ N(0, t-s)
嗯,这里要注意:布朗运动的路径是连续的,但几乎处处不可导。什么意思?就是它一直在动,但你没法算它的“瞬时速度”。
我的经验:刚开始学的时候,我总想用普通微积分去处理布朗运动,结果算出来的东西全不对。后来才明白——布朗运动太“粗糙”了,普通导数对它不适用。
4.3 伊藤引理:随机微积分的核心
既然普通微积分不行,那怎么办?伊藤清(Kiyoshi Itô)给出了答案。
伊藤引理是随机微积分的“链式法则”。它告诉我们:如果一个随机过程 X(t) 满足SDE,那么它的函数 f(X(t), t) 也满足一个SDE。
公式长这样:
df = (∂f/∂t + μ ∂f/∂X + ½ σ² ∂²f/∂X²) dt + σ ∂f/∂X dW
你看,多了一项 ½ σ² ∂²f/∂X²。这就是随机微积分和普通微积分的区别——多了个二阶项。
为什么会这样?因为布朗运动的二次变分不为零。嗯,这个有点深,你先记住结论就行。
避坑指南:我曾经在写定价引擎时,直接用普通链式法则去推导期权价格,结果差了整整一个二阶项。后来排查了两天才发现——伊藤引理的那½项,千万不能漏!
4.4 几何布朗运动:股票价格的经典模型
好了,有了工具,咱们来看最常用的模型——几何布朗运动(GBM)。
它的SDE形式是:
dS = μ S dt + σ S dW
其中:
μ是漂移率(预期收益率)σ是波动率(风险度量)dW是布朗运动增量
这个模型有个好处:价格永远不会变成负数(因为 S 在乘法中)。而且,它的对数收益率服从正态分布。
用伊藤引理,我们可以解出它的显式解:
S(t) = S(0) exp((μ - ½σ²)t + σ W(t))
你看,价格是指数形式的。这就是为什么我们常说“股票价格服从对数正态分布”。
实际应用:我在做风险管理系统时,就用GBM来模拟上千条资产价格路径。每条路径跑1000步,然后算VaR和CVaR。虽然模型简单,但够用。
4.5 更复杂的SDE模型
当然,GBM不是万能的。实际市场中,波动率会变,价格会有跳跃。所以有了更复杂的模型:
| 模型名称 | SDE形式 | 特点 |
|---|---|---|
| 均值回复模型 | dX = θ(μ - X)dt + σ dW | 利率、汇率常用 |
| Heston模型 | dS = μS dt + √v S dW₁ dv = κ(θ - v)dt + σ√v dW₂ |
波动率随机变化 |
| 跳跃扩散模型 | dS = μS dt + σS dW + J dN | 考虑突发事件 |
我个人习惯:先用GBM做初步分析,如果发现波动率有明显聚集效应,再换Heston模型。别一上来就用复杂的,容易翻车。
4.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)
dW = np.random.normal(0, np.sqrt(dt), N)
W = np.cumsum(dW)
# 计算价格路径
t = np.linspace(0, T, N)
S = S0 * np.exp((mu - 0.5*sigma**2)*t + sigma*W)
# 画图
plt.plot(t, S)
plt.xlabel('时间(年)')
plt.ylabel('价格')
plt.title('几何布朗运动模拟')
plt.show()
这段代码我用了无数次。你跑一次就能看到:价格路径是连续的,但上下波动很大。这就是随机性的魅力。
小技巧:模拟多条路径时,记得用不同的随机种子。我一般跑10000条,然后取分位数做压力测试。
4.7 本章知识体系
下面这张图,帮你理清本章的核心逻辑:
这张图把本章内容串起来了。从“为什么需要SDE”出发,到布朗运动和伊藤引理这两个基础工具,再到最常用的GBM模型,最后扩展到更复杂的模型。你顺着这个逻辑走,就不会迷路。
4.8 小结
这一章我们聊了:
- 随机微分方程是描述资产价格动态的核心工具
- 布朗运动是随机性的数学基础
- 伊藤引理是随机微积分的“秘密武器”
- 几何布朗运动是最经典的股票价格模型
- 实际中还有更复杂的模型,但GBM是起点
说实话,SDE这东西刚接触时确实有点绕。但只要你多写几行代码,多跑几次模拟,慢慢就找到感觉了。我当年也是从一脸懵到逐渐上手,花了大概两周时间。
下一章,咱们会把这些工具用到投资组合优化中。到时候你就知道,今天学的这些有多重要了。