Glosten-Milgrom 模型:逆向选择如何撑开买卖价差
Glosten-Milgrom(1985)用一个贝叶斯序贯交易模型回答『价差从哪来』:做市商面对的每一张单子都可能来自知情者,报价必须事前把这份逆向选择风险定进价里——ask = E[V|下一单是买],bid = E[V|下一单是卖]。V∈{98,102} 的两值模型实测:知情者占比 μ 从 0.1 升到 0.6,价差从 0.40 线性撑到 2.40;做市商损益分解完美验证零利润条件——μ=0.1 时对知情者亏 12.0、从不知情者赚 11.2,合计≈0,价差本质是不知情者向知情者交的转移税。价格发现的速度-成本对偶:μ=0.5 时中间价约 30 笔收敛到真值但每步价差宽,μ=0.15 时价差窄却 200 笔仍未收敛完;价差随成交衰减,因为信息逐渐进价、剩余信息不对称减小。工程输出:GM 是 PIN/VPIN 的理论地基,也解释为何财报前价差系统性走宽。诚实边界:两值真值、单位单量、零库存成本都是理想化;真实价差还含订单处理成本与库存风险两个 GM 不建模的成分。
上一篇 VWAP/TWAP 站在吃流动性的一方看执行成本,这一篇换到柜台对面:做市商为什么要收买卖价差?教科书的第一反应是「补偿库存风险和处理成本」,但 Glosten-Milgrom(1985)给出了一个更深刻的答案——哪怕做市商零成本、零库存约束、风险中性,价差依然必须存在,因为每一张进来的单子都可能来自比你知道更多的人。
这就是逆向选择价差,市场微观结构信息学派的奠基模型。
一、模型设定:一场不对称的重复博弈#
资产的真实价值 是两值随机变量:(模拟里取 98 和 102),做市商的先验 。
交易者逐个到达,每人交易 1 股。人群里混着两类人:
- 知情者(占比 ):知道 的真值。 时必买, 时必卖——永远朝对做市商不利的方向交易;
- 不知情者(占比 ):因流动性需求交易,50/50 随机买卖。
做市商看不出来者是谁,只能看到订单方向。它的武器是贝叶斯更新:买单本身就是「真值偏高」的证据(因为知情者只在高值时买)。
二、报价公式:把后验直接写进价格#
关键洞察:做市商报出的 ask 不应该是当前的期望值 ,而应该是条件在「下一单是买单」上的期望值——因为只有买单会打在 ask 上:
用贝叶斯展开(以 ask 为例):
代码就是公式的直译:
V_L, V_H = 98.0, 102.0
def gm_quotes(p, mu):
"""p = P(V=V_H) 的当前信念, mu = 知情者占比"""
p_buy = mu * p + (1 - mu) / 2 # 买单的无条件概率
p_sell = mu * (1 - p) + (1 - mu) / 2
p_up_buy = (mu + (1 - mu) / 2) * p / p_buy # P(V_H | 买单)
p_up_sell = ((1 - mu) / 2) * p / p_sell # P(V_H | 卖单)
ask = p_up_buy * V_H + (1 - p_up_buy) * V_L
bid = p_up_sell * V_H + (1 - p_up_sell) * V_L
return bid, ask, p_up_buy, p_up_sellpython这个报价规则有个漂亮的性质:每笔成交的事前期望利润恰好为零(竞争性做市假设)。ask 定在「已知对方买入后」的公允价值上,成交瞬间做市商既不赚也不亏——期望意义上。
三、价差随知情者比例撑开#
时扫描 :

数值上: 时价差 0.40, 时 1.20, 时 2.40——在 的对称点上价差恰好是 ,与知情者比例严格成正比。知情者越多,每张单子的「毒性」越大,做市商的自卫报价越宽。
这条曲线是很多实证现象的理论底座:财报公告前价差系统性走宽( 临时上升)、小盘股价差大于大盘股(信息不对称更严重)、危机中流动性蒸发(做市商怀疑所有对手盘都知情, 高位,价差宽到市场名存实亡)。
四、价格发现:速度与成本的对偶#
每笔成交后做市商更新信念,报价序列本身就是一台贝叶斯学习机。模拟真值 的路径:

对比鲜明:
- μ=0.5:订单流里一半是带信息的单子,中间价约 30 笔就收敛到 102 附近——但路上每一步的价差都很宽;
- μ=0.15:价差窄、交易便宜,但订单流信噪比低,200 笔过去信念仍未完全收敛。
这是微观结构的一个基本对偶:**知情交易是价格发现的引擎,也是流动性成本的来源。**监管想同时要「价格有效」和「价差窄」,GM 模型直白地告诉你这两个目标天然互相打架。
价差本身也随成交衰减:

逻辑清晰:随着信息进价, 趋向 0 或 1,剩余的不确定性(也就是知情者的剩余优势)缩小,逆向选择风险下降,价差收窄。开盘后价差快速收窄的日内模式,GM 给出了信息论解释。
五、损益分解:价差是一张转移税单#
做市商到底赚谁的钱?把 100 笔成交、400 次模拟的损益按对手方类型拆开:
# 客户买 -> 做市商在 ask 卖出,损益 = ask - V_true
# 客户卖 -> 做市商在 bid 买入,损益 = V_true - bid
mm_pnl = (px - V_true) if side == BUY else (V_true - px)python
μ=0.1 那组:对知情者累计亏 12.0,从不知情者赚 11.2,合计 −0.8 ≈ 0。所有 μ 下合计都贴着零——竞争性零利润条件在模拟里精确成立,这也是对实现正确性的最好自检。
这张图值得每个交易者盯着看一分钟:**做市商只是过路财神,价差的净流向是从不知情者流向知情者。**你每次以市价单成交,付出的半价差里有一部分是在补贴市场里比你知道更多的人。推论也直接:如果你没有信息优势,你的最优行为是尽量少穿越价差(限价单、耐心执行);如果你有真 alpha,你的利润上限正是市场为你这类人定的逆向选择税率。
六、工程含义与诚实边界#
**GM 是后续一整条工具链的地基。**Easley-O’Hara 把它扩展成事件不确定性模型,PIN(知情交易概率)直接从 GM 结构的订单流数据里极大似然估计 ,VPIN 再把它做成高频毒性监控指标——这些都是这个系列后面的主题。做执行的人也用得上:如果你的母单会被市场解读为知情单(比如总在利好前买入),你面对的价差就是为你定制的。
边界同样要说清:
- 两值真值是为了解析可解。连续真值版本(Kyle 1985 走的是另一条线性均衡路线)里价差的表达式复杂得多,但逆向选择的逻辑不变;
- 单位单量假设回避了订单大小的信息含量——真实世界里大单更可能知情,做市商会报出随量递增的价差曲线(这正是 Glosten 1994 限价簿模型的方向);
- 零库存成本、风险中性意味着 GM 价差是真实价差的下界。实证拆解(如 Huang-Stoll 分解)通常把价差分成订单处理、库存、逆向选择三块,GM 只解释最后一块——大盘股里逆向选择约占价差的 20-40%,剩下的是另两个成分;
- μ 是外生常数。真实市场里知情者会择时进场(在流动性好时隐藏自己),μ 内生化后模型变成动态博弈,价差行为更复杂。
七、从模型到数据:怎么把 μ 估出来#
GM 的结构给了一条从公开数据反推信息不对称的路。最直接的入口是价差回归:把日度相对价差对市值、波动率、成交量回归,残差里携带逆向选择成分的截面差异;更干净的是 Huang-Stoll(1997)分解——用成交价与中间价的序列协方差把价差拆成订单处理、库存、逆向选择三个组分,逆向选择占比就是 μ 的一个代理。
结构化估计走得更远:Easley 等人的 PIN 框架假设每天以概率 α 发生信息事件,事件日知情单以强度 μ 到达,然后用每日买卖单数量 的联合分布做极大似然,直接估出「任意一笔成交来自知情者」的概率。GM 模型里那个外生的 μ,在 PIN 里变成了可以逐股、逐月估计的参数——小盘股 PIN 普遍在 0.2 以上,大盘股常低于 0.1,与本文价差曲线的预测方向完全一致。对量化研究者的直接用途:PIN/逆向选择代理是流动性风险因子的原料,也是事件研究里筛选『聪明钱先行』样本的工具。
八、总结#
Glosten-Milgrom 用最小的模型回答了最根本的问题:价差不是垄断租金,不是摩擦残渣,而是信息不对称的市场定价。μ 从 0.1 到 0.6,价差从 0.40 到 2.40 严格线性;做市商对知情者亏的每一块钱,都精确地从不知情者的价差里收回来。价格发现越快的市场交易成本越高,因为两者是同一枚硬币——知情订单流——的两面。下次看到 Level-2 上的价差数字,可以把它读成市场对「下一单来自内行」的概率报价。