随机过程与金融建模

随机过程与金融建模

一、随机过程的基本概念

1. 布朗运动(Brownian Motion)
  • 定义
    布朗运动(Wiener 过程)是一种连续时间随机过程,通常用 W ( t ) W(t) W(t) 表示,其基本性质包括:
    • W ( 0 ) = 0 W(0)=0 W(0)=0
    • 对于任意 0 ≤ t 1 < t 2 < ⋯ < t n 0 \le t_1 < t_2 < \cdots < t_n 0t1<t2<<tn,增量 W ( t i + 1 ) − W ( t i ) W(t_{i+1})-W(t_i) W(ti+1)W(ti) 彼此独立;
    • 每个增量 W ( t + Δ t ) − W ( t ) W(t+\Delta t)-W(t) W(t+Δt)W(t) 服从正态分布,均值为 0,方差为 Δ t \Delta t Δt,即
      W ( t + Δ t ) − W ( t ) ∼ N ( 0 , Δ t ) W(t+\Delta t)-W(t) \sim N(0, \Delta t) W(t+Δt)W(t)N(0,Δt)
2. 泊松过程(Poisson Process)
  • 定义
    泊松过程是一种描述单位时间内事件发生次数的随机过程,常用 N ( t ) N(t) N(t) 表示。其基本性质包括:
    • N ( 0 ) = 0 N(0)=0 N(0)=0
    • 增量 N ( t + Δ t ) − N ( t ) N(t+\Delta t)-N(t) N(t+Δt)N(t) 服从参数为 λ Δ t \lambda \Delta t λΔt 的泊松分布,即
      P ( N ( t + Δ t ) − N ( t ) = k ) = ( λ Δ t ) k k ! e − λ Δ t P(N(t+\Delta t)-N(t)=k)=\frac{(\lambda\Delta t)^k}{k!} e^{-\lambda\Delta t} P(N(t+Δt)N(t)=k)=k!(λΔt)keλΔt
    • 各个不相交时间区间内事件发生次数相互独立。

注:在金融建模中,泊松过程常用于描述跳跃风险或突发事件,而布朗运动则是最常用的连续随机过程。


二、Geometric Brownian Motion (GBM) 与股票价格建模

1. GBM 模型介绍
  • 模型形式
    在金融中,常用几何布朗运动(Geometric Brownian Motion, GBM)来描述股票价格 S ( t ) S(t) S(t) 的演变,其随机微分方程(SDE)为:
    d S ( t ) = μ S ( t )   d t + σ S ( t )   d W ( t ) dS(t) = \mu S(t) \, dt + \sigma S(t) \, dW(t) dS(t)=μS(t)dt+σS(t)dW(t)
    其中:

    • μ \mu μ 是股票的漂移率(预期收益率),
    • σ \sigma σ 是股票价格的波动率
    • W ( t ) W(t) W(t) 为标准布朗运动。
  • 解析解
    利用伊藤引理可得 GBM 的解析解为:
    S ( t ) = S ( 0 ) exp ⁡ { ( μ − σ 2 2 ) t + σ W ( t ) } S(t) = S(0) \exp\left\{ \left(\mu - \frac{\sigma^2}{2}\right)t + \sigma W(t) \right\} S(t)=S(0)exp{(μ2σ2)t+σW(t)}
    这表明股票价格是指数形式变化,随机性来源于布朗运动 W ( t ) W(t) W(t)

2. 随机微分方程(SDE)
  • 定义
    随机微分方程(Stochastic Differential Equation, SDE)是一类用来描述受随机扰动的动态系统的微分方程。上式就是一个典型的 SDE,用于描述金融资产价格的随机演变。
  • 数值求解方法
    常用的数值方法包括欧拉-马尔科夫(Euler–Maruyama)方法,其离散化公式对于 GBM 为:
    S t + Δ t = S t + μ S t Δ t + σ S t Δ t   ε S_{t+\Delta t} = S_t + \mu S_t \Delta t + \sigma S_t \sqrt{\Delta t}\, \varepsilon St+Δt=St+μStΔt+σStΔt ε
    其中 ε ∼ N ( 0 , 1 ) \varepsilon \sim N(0,1) εN(0,1)

三、案例分析与计算过程

案例:利用 GBM 模型模拟股票价格变化

假设参数

  • 初始股票价格: S ( 0 ) = 100 S(0) = 100 S(0)=100 美元
  • 漂移率: μ = 0.1 \mu = 0.1 μ=0.1(10% 年收益率)
  • 波动率: σ = 0.2 \sigma = 0.2 σ=0.2(20% 年波动率)
  • 模拟时长: T = 1 T = 1 T=1
  • 时间步长: Δ t = 1 252 \Delta t = \frac{1}{252} Δt=2521(假设一年 252 个交易日)

计算步骤

  1. 离散化时间区间
    将 1 年分成 252 个时间步,每步 Δ t ≈ 0.00397 \Delta t \approx 0.00397 Δt0.00397 年。
  2. 生成标准正态随机数
    对于每一步生成独立的 ε ∼ N ( 0 , 1 ) \varepsilon \sim N(0,1) εN(0,1)
  3. 迭代更新股票价格
    采用欧拉-马尔科夫方法:
    S t + Δ t = S t + μ S t Δ t + σ S t Δ t   ε S_{t+\Delta t} = S_t + \mu S_t \Delta t + \sigma S_t \sqrt{\Delta t}\, \varepsilon St+Δt=St+μStΔt+σStΔt ε
    或者直接利用 GBM 的解析解:
    S ( t ) = 100 × exp ⁡ { ( 0.1 − 0. 2 2 2 ) t + 0.2   W ( t ) } S(t) = 100 \times \exp\left\{ \left(0.1 - \frac{0.2^2}{2}\right)t + 0.2\, W(t) \right\} S(t)=100×exp{(0.120.22)t+0.2W(t)}
    其中 W ( t ) W(t) W(t) 可由累加生成的正态随机变量构成,满足 W ( t + Δ t ) = W ( t ) + Δ t   ε W(t+\Delta t) = W(t) + \sqrt{\Delta t}\, \varepsilon W(t+Δt)=W(t)+Δt ε

计算示例结果
由于涉及随机性,每次模拟结果不同。例如一次模拟可能得到股票价格在 1 年末约为 115 美元,但结果需要通过多次运行统计分布。


四、课堂活动

活动目的

  • 通过 Python 编程模拟 GBM 模型,直观观察股票价格的随机演变。
  • 分析不同参数(如波动率 σ \sigma σ 与漂移率 μ \mu μ)对股票价格走势的影响。
  • 讨论随机过程在金融市场中的实际应用,如波动率建模和风险管理。

活动安排

  1. 模拟任务
    学生需编写 Python 代码模拟股票价格路径,并绘制股票价格随时间的变化图。
  2. 计算过程讨论
    • 讨论欧拉-马尔科夫方法的步骤和参数选择。
    • 分析模拟结果:例如,多次模拟后观察股票价格的分布、平均值与标准差。
  3. 讨论实际应用
    • 讨论 GBM 模型的局限性与改进,如在波动率建模中加入跳跃项、随机波动率等。

五、Python 代码实现示例

以下给出一个利用 Python 模拟单条股票价格路径的代码示例,同时绘制出股票价格随时间变化的图表:

import numpy as np
import matplotlib.pyplot as plt

# 参数设置
S0 = 100            # 初始股票价格
mu = 0.1            # 漂移率(年收益率10%)
sigma = 0.2         # 波动率(20%)
T = 1.0             # 模拟时长(1年)
N = 252             # 时间步数(交易日数)
dt = T / N          # 时间步长

# 时间向量
t = np.linspace(0, T, N+1)

# 初始化股票价格数组
S = np.zeros(N+1)
S[0] = S0

# 模拟标准布朗运动增量:epsilon ~ N(0,1)
np.random.seed(42)  # 为可重复性设定随机种子
epsilon = np.random.normal(0, 1, N)

# 采用欧拉-马尔科夫方法更新股票价格
for i in range(1, N+1):
    S[i] = S[i-1] + mu * S[i-1] * dt + sigma * S[i-1] * np.sqrt(dt) * epsilon[i-1]

# 或者直接采用 GBM 的解析解(累加布朗运动)
# 计算 W(t)
W = np.concatenate(([0], np.cumsum(np.sqrt(dt) * epsilon)))
S_analytic = S0 * np.exp((mu - 0.5 * sigma**2) * t + sigma * W)

# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(t, S, label="Euler-Maruyama 模拟", lw=2)
plt.plot(t, S_analytic, label="解析解模拟", lw=2, linestyle='--')
plt.title("Geometric Brownian Motion 模拟股票价格")
plt.xlabel("时间 (年)")
plt.ylabel("股票价格")
plt.legend()
plt.grid(True)
plt.show()

# 打印最终股票价格(例如 1 年末价格)
print("1 年末模拟股票价格 (Euler-Maruyama) = {:.2f}".format(S[-1]))
print("1 年末模拟股票价格 (解析解) = {:.2f}".format(S_analytic[-1]))

代码说明

  • 我们设定初始股票价格为 100 美元,年收益率 10%,波动率 20%,一年 252 个交易日。
  • 使用欧拉-马尔科夫方法模拟股票价格路径,同时给出基于 GBM 解析解的结果进行对比。
  • 绘制的图表展示了股票价格随时间的变化趋势,并打印出一年末的股票价格。

六、总结与讨论

  1. 随机过程基本概念
    • 介绍了布朗运动和泊松过程的基本定义及其在金融建模中的作用。
  2. GBM 模型及 SDE
    • 阐明了几何布朗运动的数学形式、解析解及其应用,说明了如何用随机微分方程描述股票价格演变。
  3. 模拟与应用
    • 通过 Python 编程示例,让学生直观地观察股票价格的随机路径,并讨论不同参数对价格波动的影响。
  4. 课堂讨论
    • 分析随机过程在波动率建模、风险管理等金融应用中的重要性,探讨 GBM 模型的局限性和扩展方向(如跳跃扩散模型)。

通过本课学习,不仅掌握了随机过程与金融建模的基本理论,还通过实际编程和案例分析,理解了如何利用 GBM 模型描述和模拟股票价格的随机演变,为后续更复杂的金融工程建模打下坚实基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值