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 共同的起点。
二、方法流程:参数估计与风险中性转换
把 GBM 用于实战,需要把连续模型离散化并估计参数。常用流程如下:
- 取对数价格 \(x_t = \ln S_t\),则 \(dx_t = (\mu - \sigma^2/2)dt + \sigma dW_t\);
- 用固定时间步 \(\Delta t\)(如 1 分钟、5 分钟)计算对数收益 \(r_i = x_{i+1}-x_i\);
- 估计波动率:\(\hat\sigma = \text{std}(r_i)/\sqrt{\Delta t}\),再年化;
- 估计漂移:\(\hat\mu = \text{mean}(r_i)/\Delta t + \hat\sigma^2/2\);
- 风险中性定价时,把真实漂移 \(\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}")
三、案例/场景:波动率如何改变报价
假设某永续合约中间价 \(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 → 保留价格偏移 | 偏移方向用于引导库存回归 |
四、误区与复盘
复盘时建议记录:每笔报价对应的 σ 估计值、库存 q、实际成交价与理论保留价格的偏差。若发现成交集中在保留价格一侧,说明漂移或库存偏移参数设置不合理;若价差长期无法成交,说明 σ 估计偏高或 γ 过大。通过参数敏感性回测,可以找到适合自身资金曲线与成交频率的 σ、γ 组合。
总结来说,布朗运动提供了随机性的数学语言,几何布朗运动保证了价格的正性与对数正态分布,波动率决定报价宽度,漂移项在风险中性框架下被无风险利率替代,而风险中性定价让做市商可以脱离方向预测,专注于价差与库存管理。这五个概念构成了 Avellaneda-Stoikov 策略的建模地基。