4、经典库存模型:Avellaneda-Stoikov模型、Ho-Stoll模型、库存厌恶系数

做市商的核心难题是什么?说白了就两个字:库存

你手里囤了一堆货,价格一跌就亏钱。你手里没货,行情来了又赚不到。这个度怎么把握?经典模型给了我们答案。

今天聊三个东西:Avellaneda-Stoikov模型、Ho-Stoll模型,还有那个让人又爱又恨的库存厌恶系数。我当年刚入行时,觉得这些模型就是数学游戏。直到实盘跑起来,被市场狠狠教育了一顿,才明白——嗯,经典之所以是经典,是有道理的。

4.1 Avellaneda-Stoikov模型:动态报价的基石

这个模型是2008年提出的。说实话,它不算复杂,但思路非常巧妙。

核心思想是什么?你的报价要随着库存变化动态调整

你手里存货多了,就降价卖。存货少了,就提价买。听起来像常识对吧?但人家用数学把这事说清楚了。

模型里有个关键公式:

δ(s, q, t) = γσ²(T-t) + (1/γ) * ln(1 + γ/κ * q)

其中:
δ = 最优报价价差的一半
s = 当前价格
q = 库存量(正数表示多头,负数表示空头)
t = 当前时间
T = 交易结束时间
γ = 风险厌恶系数
σ = 波动率
κ = 订单到达强度

这个公式看着唬人,其实就说了两件事:

  • 时间因素:离收盘越近,价差越大。因为你要赶在收盘前把库存清掉。
  • 库存因素:库存越多,报价越偏向于卖出。库存为负(空头),报价越偏向于买入。

我在项目中遇到过一个问题:这个模型假设订单到达是泊松过程。但实盘中,订单流有明显的聚集效应。所以直接用这个公式,报价会偏保守。我的做法是加一个动态调整因子,根据最近1秒的订单频率修正κ值。

实战技巧:Avellaneda-Stoikov模型最适合做高频做市,尤其是T+0品种。如果是T+1,时间项(T-t)的意义就不大了,建议把时间项去掉,只保留库存项。

4.2 Ho-Stoll模型:考虑对手方行为

Ho-Stoll模型比Avellaneda-Stoikov更早,1979年就提出来了。它关注的是另一个维度——对手方会怎么反应

你想想看,你报了一个价格,对手方会不会接?接了之后,市场情绪会怎么变?Ho-Stoll模型把这些都考虑进去了。

模型的核心假设是:

  • 做市商是风险厌恶的
  • 订单流是随机的,但受报价影响
  • 库存成本是二次函数形式

它的最优报价策略可以简化为:

最优买价 = 真实价值 - 库存成本项 - 信息不对称项
最优卖价 = 真实价值 + 库存成本项 + 信息不对称项

说白了,就是你在报价里要留出两个缓冲:一个是库存风险,一个是信息劣势。

我曾经踩过一个坑:只考虑了库存成本,忽略了信息不对称项。结果遇到大资金进场,我的报价被反复吃掉,库存瞬间爆仓。后来我学乖了,在Ho-Stoll模型基础上,加了一个订单流不平衡指标,用来动态调整信息不对称项的大小。

注意:Ho-Stoll模型假设做市商能准确知道"真实价值"。这在理论上是成立的,但实盘中真实价值是未知的。我的做法是用VWAP(成交量加权平均价)作为真实价值的代理变量,效果还不错。

4.3 库存厌恶系数:量化你的恐惧

库存厌恶系数,英文叫Inventory Aversion Coefficient。说白了,就是你有多怕手里有货

这个系数通常用γ(伽马)表示。γ越大,你越厌恶库存,报价会越激进地往清仓方向偏移。γ越小,你越不在乎库存,报价会更接近市场中间价。

怎么确定这个γ值?我总结了三种方法:

方法 原理 适用场景 我的建议
历史回测法 用历史数据跑不同γ值,选夏普比最高的 数据充足,市场稳定 最推荐,但要注意过拟合
风险预算法 根据最大回撤容忍度反推γ 风控严格,有明确止损线 适合机构,个人用有点保守
自适应法 用实时波动率动态调整γ 波动率变化大的品种 我目前在用的方法,效果不错

我个人习惯用自适应法。具体做法是:

γ_t = γ_0 * (σ_0 / σ_t)

其中:
γ_t = 当前时刻的库存厌恶系数
γ_0 = 基准系数(通过回测得到)
σ_0 = 基准波动率(过去20天的平均波动率)
σ_t = 当前波动率(最近5分钟的波动率)

这样做的逻辑很简单:波动率大的时候,库存风险更大,所以要更厌恶库存。波动率小的时候,可以稍微放松一点。

核心要点:库存厌恶系数不是固定的。它应该随着市场状态、你的资金规模、甚至你的心理状态动态调整。我见过有人把γ设成固定值,结果遇到黑天鹅直接爆仓。记住,做市的第一原则是活着

4.4 三个模型的对比与选择

说了这么多,到底该用哪个?我画了一张图,帮你理清思路:

经典库存模型对比与选择 Avellaneda-Stoikov 核心:动态报价 关注:时间+库存 优点:数学简洁 缺点:忽略对手方 适用:高频做市 难度:★★☆☆☆ Ho-Stoll 核心:对手方行为 关注:信息不对称 优点:考虑全面 缺点:参数多 适用:中低频做市 难度:★★★☆☆ 库存厌恶系数 核心:量化恐惧 关注:风险偏好 优点:灵活可调 缺点:主观性强 适用:所有策略 难度:★★☆☆☆ 建议:高频用A-S,中低频用H-S,库存厌恶系数作为通用调节器

我的建议很简单:

  • 如果你做的是高频做市(毫秒级报价),优先用Avellaneda-Stoikov。它计算快,参数少,适合机器跑。
  • 如果你做的是中低频做市(秒级或分钟级报价),用Ho-Stoll。它考虑得更周全,能帮你避开一些大坑。
  • 不管用哪个模型,库存厌恶系数都要单独拿出来调。它就像做市策略的"油门",决定了你的激进程度。
我的经验:刚开始做市时,我同时跑了A-S和H-S两个模型。A-S负责高频部分,H-S负责中低频的风控。后来发现两个模型给出的报价经常打架。最后我干脆把H-S的库存厌恶系数输出给A-S用,效果出奇的好。有时候,组合比单一模型更强大

好了,经典库存模型就聊到这里。记住,模型只是工具,关键是你怎么用它。下一章我们聊聊实战中的库存管理技巧,到时候我会分享一些踩坑经历,保证让你少走弯路。


公众号:蓝海资料掘金营,微信deep3321