3. 随机过程与资产价格建模

做市策略的核心不是预测方向,而是对价格未来分布进行定价,并用报价去赚取买卖价差。Avellaneda-Stoikov 模型之所以成立,前提是我们对“中间价如何演化”有一个可计算的随机过程假设。本节把这条假设链讲清楚:从布朗运动到几何布朗运动,再到漂移项、波动率与风险中性定价,最后落到做市参数上。

一、核心原理:价格为什么用随机过程描述

资产价格在任意时刻都受到大量独立信息冲击:成交、宏观数据、资金流、情绪。单笔冲击方向不可预测,但累积效应在统计上呈现规律。随机过程就是用概率分布刻画这种“不可预测但有结构”的演化。

最基础的是标准布朗运动 \(W_t\),它有三个关键性质:

  • 增量独立:未来增量与过去路径无关;
  • 增量正态:\(W_{t+\Delta t}-W_t \sim N(0,\Delta t)\);
  • 路径连续但处处不可微,波动随 \(\sqrt{\Delta t}\) 缩放。

但布朗运动本身可以取负值,而股票、加密货币价格不能为负。于是引入几何布朗运动(GBM):

dS_t = μ S_t dt + σ S_t dW_t

其中:
S_t  当前资产价格
μ    漂移项(年化期望收益率)
σ    波动率(年化标准差)
dW_t 布朗增量

两边除以 \(S_t\) 后,收益率服从带漂移的布朗运动。解这个随机微分方程得到:

S_t = S_0 * exp[(μ - σ²/2)t + σ W_t]

这意味着价格服从对数正态分布,永远为正,且对数收益率正态。这是 Black-Scholes 与 Avellaneda-Stoikov 共同的起点。

从布朗运动到做市报价的建模链路 标准布朗运动 W_t ~ N(0,t) 独立增量·连续路径 几何布朗运动 dS=μSdt+σSdW 价格恒正·对数正态 参数估计 μ 漂移 · σ 波动率 滚动窗口校准 风险中性 μ→r 无套利定价 Avellaneda-Stoikov 报价输入 σ → 价差宽度 · 库存风险 · 保留价格 r(s,t) = s − q·γ·σ²·(T−t) σ 上升 价差扩大·库存惩罚加重 μ 漂移 风险中性下被 r 替代 T−t 剩余时间 越接近收盘·库存惩罚越小

二、方法流程:参数估计与风险中性转换

把 GBM 用于实战,需要把连续模型离散化并估计参数。常用流程如下:

  1. 取对数价格 \(x_t = \ln S_t\),则 \(dx_t = (\mu - \sigma^2/2)dt + \sigma dW_t\);
  2. 用固定时间步 \(\Delta t\)(如 1 分钟、5 分钟)计算对数收益 \(r_i = x_{i+1}-x_i\);
  3. 估计波动率:\(\hat\sigma = \text{std}(r_i)/\sqrt{\Delta t}\),再年化;
  4. 估计漂移:\(\hat\mu = \text{mean}(r_i)/\Delta t + \hat\sigma^2/2\);
  5. 风险中性定价时,把真实漂移 \(\mu\) 替换为无风险利率 \(r\)(或资金费率),得到风险中性测度下的价格分布。
import numpy as np

# 假设 prices 为按固定间隔采样的中间价序列
log_ret = np.diff(np.log(prices))
dt = 1 / (24 * 60)          # 1分钟,单位为“天”
sigma = log_ret.std() / np.sqrt(dt)
mu = log_ret.mean() / dt + 0.5 * sigma**2

print(f"年化波动率 sigma = {sigma*np.sqrt(365):.4f}")
print(f"年化漂移   mu    = {mu*365:.4f}")
做市场景中,漂移项 μ 通常被弱化甚至忽略,因为做市赚的是价差与库存管理收益,而非方向收益。风险中性框架下用 r 替代 μ,可以让报价不依赖对方向的判断,更稳健。

三、案例/场景:波动率如何改变报价

假设某永续合约中间价 \(S=30000\),做市商库存 \(q=0\),风险厌恶系数 \(\gamma=0.1\),剩余时间 \(T-t=1\) 天。Avellaneda-Stoikov 保留价格与最优价差近似为:

保留价格:r(s,t) = s − q·γ·σ²·(T−t)
最优价差:δ_total ≈ γ·σ²·(T−t) + (2/γ)·ln(1+γ/k)

当 \(\sigma\) 从 0.5(日波动 50%)上升到 1.0 时,\(\sigma^2\) 变为 4 倍,库存惩罚项和价差项同步放大。这意味着:波动率越高,报价越宽,库存容忍度越低。如果此时仍按低波动参数报价,做市商会在剧烈行情中被单边成交打穿库存。

参数 含义 对报价的影响 实战注意
σ 波动率 价格离散程度 σ↑ → 价差↑、库存惩罚↑ 用滚动窗口估计,避免用全样本
μ 漂移 期望收益率 风险中性下被 r 替代 不要用 μ 做方向押注
γ 风险厌恶 库存惩罚强度 γ↑ → 报价更保守 与资金规模、回撤容忍度匹配
T−t 剩余时间 策略剩余周期 临近结束 → 库存惩罚↓ 收盘前可适度收窄价差
q 库存 当前净头寸 q≠0 → 保留价格偏移 偏移方向用于引导库存回归

四、误区与复盘

误区一:把 μ 当成可预测的收益信号。 GBM 中 μ 是常数假设,真实市场漂移时变且极难估计。做市策略若依赖 μ 方向,就退化为趋势策略,失去做市的中性优势。
误区二:用历史波动率直接外推未来。 波动率具有聚集性和均值回归,平静期后常伴随波动放大。建议用 EWMA 或 GARCH 类方法,并设置波动率上限保护。
误区三:忽略跳跃与厚尾。 GBM 假设连续路径,但加密市场常有跳空。跳跃会让理论价差严重低估风险,需在 σ 之外增加跳跃补偿项或直接扩大最小价差。

复盘时建议记录:每笔报价对应的 σ 估计值、库存 q、实际成交价与理论保留价格的偏差。若发现成交集中在保留价格一侧,说明漂移或库存偏移参数设置不合理;若价差长期无法成交,说明 σ 估计偏高或 γ 过大。通过参数敏感性回测,可以找到适合自身资金曲线与成交频率的 σ、γ 组合。

总结来说,布朗运动提供了随机性的数学语言,几何布朗运动保证了价格的正性与对数正态分布,波动率决定报价宽度,漂移项在风险中性框架下被无风险利率替代,而风险中性定价让做市商可以脱离方向预测,专注于价差与库存管理。这五个概念构成了 Avellaneda-Stoikov 策略的建模地基。