halo 的技术博客

返回

核心结论:在知情交易者占比超过约 2.5% 的市场里,暗池的名义节省(half-spread × 成交率)必然被逆向选择成本覆盖。 知情占比 30% 时,暗池的名义节省约 0.26 bps,但被动执行者的 markout 比 lit 市场还差 4.13 bps,净收益 −3.87 bps——每省 1 分钱价差,要额外亏 16 分钱信息成本。知情者越多,暗池越像一个「主动把买家送到知情者嘴边」的机制。

暗池(深色)vs Lit 市场(橙色):知情占比 30% 时成交后 0~20 步的累积 markout,暗池 markout 在所有时间窗口均更负,20 步后达 −23.0 bps(Lit 为 −6.2 bps)

一、为什么暗池「省价差」是纸面数字#

暗池(dark pool)在美国交易生态里占成交量的 30%~45%(某些交易日甚至超过 50%)。它的卖点简单直接:执行于 nbbo midpoint,比在 lit 市场买 ask 或卖 bid 省 half-spread

但这个「节省」忽略了一个关键成本:逆向选择(adverse selection)

暗池本质上是匿名撮合——你不知道对手是谁,做市商也不知道。当一个知情交易者(有私人信息,知道价格即将上涨)在暗池下单做多,他更急切、更单边(更倾向于成交),因此成交率远高于噪音交易者。结果:被动执行者在暗池里「中招」的概率比 lit 市场高得多。

直觉:想象你在赌场里找零——你「省了」一小笔服务费,但对手全是出老千的。省下来的钱,迟早加倍还回去。

二、受控仿真设计:把直觉拆成数字#

我们构造一个完全受控的 Kyle 风格双场所世界:

lit market(有价差)  vs  dark pool(midpoint 成交、零显性价差)
知情者(有 sig=±1 信号,价格将漂移 μ·MW) vs 噪音者(随机交易)
知情者成交率 80%    vs    噪音者成交率 40%
plaintext

关键机制:知情者更急着成交,因此成交率更高。这导致暗池中被动执行者与知情者配对的概率上升——成交率高本身是逆向选择的信号

校准参数(SEED = 20260806,600 轮蒙特卡洛)

参数说明
half-spread0.5 bps典型的美国股票买卖价差
知情信号漂移 μ1.0 bps/步知情信号对应的价格移动
markout 窗口 MW5 步衡量成交后信息泄露的时间
知情者暗池成交率80%知情者更急着成交
噪音者暗池成交率40%噪音者不那么急

三、Markout:成交之后,价格往哪走#

Markout 是衡量逆向选择的最直接指标:成交后 T+MW 步,价格向哪个方向漂移?

知情者买后,价格上涨 → 知情者 markout > 0(他赚了) 噪音者买后,价格期望不变 → markout ≈ 0 被动执行者(在暗池与知情者配对)买后,价格同样上涨,但他成交价已被做市商调整 → markout < 0

暗池(深色)vs Lit 市场(橙色):知情占比 30% 时成交后 0~20 步的累积 markout,20 步后暗池 markout 为 −23.0 bps,Lit 为 −6.2 bps,均对被动执行者而言越负越差

黑线(净收益 = 名义节省 − 逆向选择):知情占比超过约 2.5% 后,净收益翻负——暗池从「节省」变成「净亏损」。

四、成交率与订单质量:逆向选择的直接证据#

暗池成交率本身就是一个逆向选择预警指标

知情单成交率(紫色)始终为 80%,噪音单(绿色)始终为 40%;暗池整体成交率(黑线)随知情者占比上升而上升,从 40%(全噪音)升至 64%(60% 知情)。成交率高 = 你更可能在和知情者交易

为什么成交率高反而是坏事?

知情者有私人信息,他们下单时更紧迫——他们需要立刻成交,不能等。而噪音者可以等待更好的价格慢慢来。因此:

  • 知情者暗池成交率 = 80%(急着成交)
  • 噪音者暗池成交率 = 40%(不急,慢慢等 lit)
  • 被动执行者随机与任一订单配对 → 在暗池里,被动者被配对到知情者的概率 > 随机概率

这意味着:暗池整体成交率越高,说明你越可能在跟知情者交易。成交率是一个「逆向选择温度计」。

五、成本分解:名义节省 vs 逆向选择#

知情占比 30% 时,各成本项分解如下:

知情占比 30%:名义节省 0.26 bps,逆向选择损失 4.13 bps,净额 −3.87 bps;知情占比 50%:名义节省 0.30 bps,逆向选择损失 5.25 bps,净额 −4.95 bps。逆向选择损失是名义节省的 16~18 倍

场景名义节省逆向选择损失净额
知情=0%(全噪音)0.20 bps0.00 bps+0.20 bps
知情=30%0.26 bps4.13 bps−3.87 bps
知情=50%0.30 bps5.25 bps−4.95 bps

知情占比 30% 时,逆向选择损失是名义节省的 15.9 倍。这不是边际效应——这是压倒性的信息不对称。

六、安慰剂检验:三个对抗式验证#

安慰剂 1:知情=0% 真值检验#

当我们把所有知情交易者删掉(informed_frac = 0),理论上:

  • 没有价格漂移 → 逆向选择 = 0
  • 暗池每笔省 half-spread → 净额 = 名义节省 = 0.20 bps

仿真结果:净额 = 0.20 bps,逆向选择损失 = 0.00 bps(精确到小数点后 4 位)✓

这个检验证明:当市场里没有信息不对称,暗池的节省就是真实的。但现实市场里,这假设从来都不成立。

安慰剂 2:打乱成交配对#

当我们随机打乱「谁和谁成交」(把成交配对和订单类型独立化),知情者 vs 噪音者的成交率差异被抹平,逆向选择损失归零

知情=30% 真实:净额 −3.87 bps;知情=30% 打乱后:净额 +0.26 bps(= 名义节省);知情=50% 真实:净额 −4.95 bps;知情=50% 打乱后:净额 +0.30 bps(= 名义节省)

打乱后,净额精确回到名义节省水平。这证明:逆向选择完全来自「知情者成交率 > 噪音者」这个结构本身,而非来自价格噪声。

安慰剂 3:知情者 vs 噪音者的暗池 markout 差异#

知情占比=0%(全噪音)时,暗池×知情者 markout = 0 bps(理论上不存在知情者);知情=30% 时暗池×知情者 markout = −12.5 bps;知情=50% 时暗池×知情者 markout = −12.5 bps(恒定)。暗池整体 markout 随知情者增加而下降

知情者在暗池的 markout = −12.5 bps(恒定,与知情占比无关),而噪音者在暗池的 markout ≈ 0 bps。暗池对知情者是亏的,对噪音者是平的,对被动执行者(随机与之配对)是负的——三方都在被知情者单向收割。

七、陷阱与局限(诚实版)#

1. 仿真参数 ≠ 现实参数

本文的 drift=1.0 bps/步、β=0.25 是校准到「知情 30% 时净收益变负」的参数。真实市场里知情信号强度、市场微观结构噪声、订单簿动态都不同。仿真结论是定性方向正确,定量数字仅供参考

2. 匿名性假设的边界

暗池确实匿名——但 IEX 的「speed bump」机制、某些暗池的反钓鱼规则、部分知情者的大单拆小策略,都会改变配对概率。匿名不是绝对的。

3. markout 窗口是人为选择

本文用 MW=5 步(T+5 分钟级别)衡量信息泄露。真实世界里,信息泄露速度取决于信息精度、资产波动率、流动性。窗口越长,逆向选择越明显(T+20 步时暗池 markout = −23 bps vs lit = −6.2 bps)。

4. 未建模滑点 / 冲击成本

暗池「大单优先」机制(block priority)让大单成交率更高——如果你的订单规模大,你在暗池反而更可能跟大单(通常是知情者)配对,逆向选择更严重。

5. 数据来源是仿真,不是真实交易记录

所有图表基于受控仿真(已知真值)。真实市场里,暗池运营商的 fill-rate 数据不公开,第三方研究依赖有限的数据集(e.g. Almgren & Chriss 2000s 的经验数据)。

八、实践 Checklist#

如果你负责执行算法或交易成本分析,以下是可以立刻用的检查清单:

  • 在暗池下单前,先看你的标的:A股里,换手率高、散户多的股票(如小盘股、概念股),知情占比相对低;大盘蓝筹、机构重仓股里知情占比更高
  • 用 fill-rate 逆向选择预警:如果某暗池的 fill-rate 在你交易时段异常高(>60%),说明市场里知情者活跃,此时回避暗池
  • VWAP/TWAP 里暗池比例要设上限:建议暗池比例不超过 30%,剩余走 lit 市场;算法执行时,暗池只用「不急着成交」的被动单
  • 监控 markout 后验:跑执行后分析(post-trade analysis),用 T+5min 或 T+30min mid 作为基准,分解 lit vs dark 的实现价差;超过阈值就触发预警
  • 不同标的用不同策略:高频 alpha 剥头皮策略不需要暗池(价差太薄);中频价值投资、事件驱动策略,如果标的知情者多,用暗池反而亏更多
  • 知情者比例是动态的:财报发布前后、宏观数据公布前,暗池里知情者密度激增——这些时段临时关闭暗池执行,切换到 lit 的 IOC 或市价单

本文所有数字基于 SEED=20260806 的受控仿真,真实市场数字可能存在量级差异。脚本见 scripts/gen_dark_pool_adverse_selection.py,原始数据见 public/images/dark-pool-adverse-selection/stats.json

暗池逆向选择:省下的半个价差被信息成本吃掉了多少
https://blog.halo26812.eu.org/blog/dark-pool-adverse-selection
Author halo
Published at 2026年8月6日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨