第四章 经典定价模型:Avellaneda-Stoikov、Ho-Stoll与Glosten-Milgrom

做市商定价模型,说白了就是回答一个问题:我该用什么价格买卖?

这章我们聊三个经典模型。它们分别从不同角度切入,各有各的脾气。我个人习惯把它们看作做市商定价的「三根柱子」——理解了它们,你就能看懂市面上90%的做市策略逻辑。

4.1 Avellaneda-Stoikov模型:库存风险的「温度计」

这个模型是我最早接触的做市模型之一。当时我在做期权做市系统,发现一个现象:持仓多了,报价就会不自觉往中间收。为什么?因为怕库存砸手里。

Avellaneda-Stoikov模型(简称AS模型)就是干这个的。它把做市商的报价决策拆成两部分:

  • 基准价格:通常是中间价,或者你预测的资产真实价值
  • 报价偏移:根据当前库存和风险偏好,动态调整买卖价

核心公式长这样:

# Avellaneda-Stoikov 报价偏移计算
def compute_spread_adjustment(inventory, gamma, sigma, T):
    """
    inventory: 当前库存(正数表示多头,负数表示空头)
    gamma: 风险厌恶系数(越大越保守)
    sigma: 波动率
    T: 做市时间窗口
    """
    # 库存项:库存越大,报价越往反方向偏移
    inventory_term = -gamma * sigma**2 * inventory * T
    
    # 价差项:波动越大,价差越宽
    spread_term = gamma * sigma**2 * T / 2
    
    return inventory_term, spread_term

嗯,这里要注意:gamma这个参数很关键。我见过有人把它设成0.1,结果库存稍微大一点,报价就飞到天上去了。后来我学乖了——gamma值一般取0.01到0.1之间,具体要看你的风险承受能力。

核心思想:AS模型本质上是一个「库存厌恶」模型。库存越多,你越不愿意继续吃进同方向的单子,所以报价会往反方向偏移。

我的经验:在实际项目中,我会把AS模型和实时波动率估计结合起来。波动率飙升时,自动调宽价差;波动率平稳时,收窄价差赚更多。这个组合拳效果不错。

4.2 Ho-Stoll模型:订单流与逆向选择的博弈

Ho-Stoll模型比AS模型更早出现。它关注的是另一个问题:对手方为什么愿意跟我交易?

你想想看,如果市场上所有人都知道你是做市商,他们就会专门挑你报价有漏洞的时候来打。这就是逆向选择(adverse selection)。

Ho-Stoll模型把做市商的决策建模成一个动态优化问题。它假设:

  • 订单到达是随机的(泊松过程)
  • 做市商可以调整买卖报价
  • 目标是最大化期望收益,同时控制库存风险

模型给出的结论很直观:

  1. 价差与波动率正相关——波动越大,价差越宽
  2. 价差与交易频率负相关——交易越频繁,价差可以收窄
  3. 库存水平影响报价偏移——和AS模型类似

避坑指南:我曾经在实盘环境中直接套用Ho-Stoll模型的原始参数,结果亏了一周。后来发现,模型假设订单到达是独立的,但实际市场中订单是聚集的——大单后面往往跟着更多大单。所以,一定要对模型做适应性调整,不能生搬硬套。

4.3 Glosten-Milgrom模型:信息不对称的「照妖镜」

Glosten-Milgrom模型(简称GM模型)是我个人最喜欢的。它从信息经济学的角度切入,回答了一个根本问题:做市商如何应对知情交易者?

模型假设市场上有两类交易者:

  • 知情交易者:知道资产的真实价值,只在有利可图时交易
  • 不知情交易者:随机交易,可能是流动性需求

做市商不知道对手方是哪一类,只能通过订单流来推断。结果就是:价差必须足够大,才能弥补知情交易者带来的损失

GM模型给出了一个简洁的价差公式:

# Glosten-Milgrom 价差计算
def compute_gm_spread(alpha, V_H, V_L, sigma_noise):
    """
    alpha: 知情交易者比例
    V_H: 资产高估值
    V_L: 资产低估值
    sigma_noise: 噪声交易者波动
    """
    # 信息不对称程度
    info_asymmetry = alpha * (V_H - V_L)
    
    # 最优价差
    spread = info_asymmetry / (1 + sigma_noise)
    
    return spread

说白了,知情交易者比例越高,价差就得越宽。这就是为什么财报发布前后,做市商都会大幅调宽价差——因为这时候知情交易者最多。

关键洞察:GM模型告诉我们,做市商本质上是在和「信息」博弈。你赚的钱,大部分来自不知情交易者的流动性需求;你亏的钱,几乎都来自知情交易者的信息优势。

4.4 三个模型的对比与选择

这三个模型各有侧重,我整理了一张对比表:

模型 核心关注点 输入参数 适用场景
Avellaneda-Stoikov 库存风险 库存量、波动率、风险厌恶系数 高频做市、期权做市
Ho-Stoll 订单流动态 订单到达率、波动率、库存 股票做市、ETF做市
Glosten-Milgrom 信息不对称 知情交易者比例、资产价值区间 事件驱动做市、低流动性市场

我个人习惯这样选:

  • 如果做的是高频做市,AS模型最实用——计算简单,反应快
  • 如果做的是股票或ETF做市,Ho-Stoll模型更合适——能捕捉订单流模式
  • 如果市场信息不对称严重(比如财报季、并购消息),GM模型是必选项

我的建议:别只用一个模型。我在实盘系统中,通常把AS模型作为基础框架,然后用GM模型动态调整价差,最后用Ho-Stoll模型做订单流预测。三个模型配合使用,效果远好于单独用任何一个。

4.5 知识体系总览

下面这张图展示了三个模型的核心逻辑和相互关系:

做市商定价模型知识体系 做市商定价模型 Avellaneda-Stoikov Ho-Stoll Glosten-Milgrom 核心:库存风险 核心:订单流动态 核心:信息不对称 关键参数 库存量、波动率 风险厌恶系数 关键参数 订单到达率、波动率 库存水平 关键参数 知情交易者比例 资产价值区间 适用场景 高频做市、期权做市 适用场景 股票做市、ETF做市 适用场景 事件驱动、低流动性市场 三个模型配合使用,效果远好于单独用任何一个

这张图把三个模型的核心关注点、关键参数和适用场景都串起来了。你想想看,做市商定价其实就是在库存风险、订单流动态和信息不对称这三者之间找平衡。没有哪个模型是万能的,关键是要理解每个模型的假设和局限。

最后提醒一句:模型再好,也要结合市场微观结构来用。我曾经在某个交易所直接套用AS模型,结果发现那个交易所的订单簿结构和模型假设完全不一样——吃了大亏。所以,先理解市场,再套模型,顺序不能搞反。


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