3. 信息不对称博弈:知情交易者与做市商的博弈模型、逆向选择成本
好,咱们进入第三章。这一章要聊的东西,说白了就是市场里最核心的“猫鼠游戏”——知情交易者和做市商之间的博弈。你想想看,如果所有人都知道同样的信息,那市场就不存在了。正是因为有人知道得多,有人知道得少,才有了交易,才有了利润和亏损。
我个人习惯把这种博弈叫做“不对称的拳击赛”。一方戴着夜视镜,另一方蒙着眼睛。做市商就是那个蒙着眼睛的,他只能靠感觉和策略来防守。
3.1 知情交易者 vs 做市商:一场不公平的游戏
先定义一下角色。
- 知情交易者:手里有内幕消息,或者通过深度研究发现了别人没发现的价值。他知道股票的真实价值是100块,但现在市场只卖90块。他会怎么做?买,使劲买。
- 做市商:他的任务是提供流动性。你买他就卖,你卖他就买。他赚的是买卖价差,也就是那个“一档”和“二档”之间的差价。但他最怕什么?怕被知情交易者“打脸”。
我在项目中遇到过一种情况:某只小盘股,平时成交量很低,做市商报的价差很大,比如买一10.00,卖一10.10。突然有一天,买单像潮水一样涌来,把卖一、卖二、卖三全部吃掉。做市商一看不对劲,赶紧把卖单撤掉,重新报更高的价格。但已经晚了,他卖出的那些低价单,全被知情交易者吃掉了。
这就是典型的博弈过程:
- 做市商报出买卖价格(Bid/Ask)。
- 知情交易者判断价格是否偏离真实价值。
- 如果偏离,知情交易者选择方向进行交易。
- 做市商根据成交情况,调整报价。
这个循环,每秒钟都在发生。
核心结论:做市商永远处于信息劣势。他只能通过观察订单流来推测“有没有大鱼在吃”。
3.2 逆向选择成本:做市商的“隐形亏损”
什么叫逆向选择?说白了就是“坏蛋挑软柿子捏”。
做市商报出10.00的买价和10.10的卖价。如果这时候来了一个卖单,把10.00的买单砸穿了。做市商接住了。他以为自己在做一笔“低买高卖”的好生意。但实际情况可能是:知情交易者知道这只股票马上要跌到9.50,所以急着出货。做市商接盘后,股价果然暴跌,他亏惨了。
这个亏损,就是逆向选择成本。
我曾经在回测一个高频策略时,发现一个有趣的现象:策略在大部分时间都是赚钱的,但偶尔会有一两笔巨亏。后来一查,全是发生在财报发布前几分钟。那时候信息不对称最严重,做市商根本不敢接单,价差拉得巨大。我的策略却傻乎乎地冲进去,结果被“割”了。
逆向选择成本可以用一个简单的公式来理解:
逆向选择成本 = (真实价值 - 交易价格) × 交易量
如果做市商以10.00的价格买入,而真实价值只有9.50,那他的逆向选择成本就是0.50元每股。交易量越大,亏得越惨。
避坑指南:我曾经以为只要价差够大就能覆盖风险。后来发现,在信息极度不对称的时候(比如财报前、重大新闻前),价差再大也救不了你。因为知情交易者会一次性吃掉所有流动性,让你根本来不及调整报价。
3.3 博弈模型的数学框架
咱们稍微上点硬菜。这个博弈可以用一个简单的模型来描述。
假设:
- 股票的真实价值 V 有两种可能:高(V_H)或低(V_L),概率各50%。
- 知情交易者知道 V 的真实值。
- 做市商不知道,只能根据订单流来推断。
- 做市商报出买价 B 和卖价 A。
做市商的期望收益公式是这样的:
E[π] = P(知情) × (B - V) + P(不知情) × (B - E[V])
其中:
- P(知情) 是订单来自知情交易者的概率。
- B - V 是如果知情交易者卖出,做市商的亏损(因为V可能比B高)。
- P(不知情) 是订单来自噪音交易者的概率。
- B - E[V] 是如果噪音交易者卖出,做市商的盈利(因为噪音交易者不关心真实价值)。
你想想看,如果P(知情)很高,做市商就必须把B压得很低,或者把A抬得很高,才能保证自己不亏。这就是为什么在重大消息发布前,价差会突然变大——做市商在用价差来“筛选”知情交易者。
实战技巧:我个人习惯用“订单流不平衡度”来估算P(知情)。如果买单和卖单的比例突然失衡,比如买单占比超过70%,而且持续超过5分钟,那大概率是有知情交易者在行动。这时候,我会选择暂停交易,或者把止损设得更紧一些。
3.4 如何量化逆向选择成本?
在订单流分析中,我们常用一个指标叫VPIN(成交量同步概率)。这个指标可以估算当前订单流中知情交易者的比例。
VPIN的计算逻辑:
- 把成交量分成若干桶(比如每桶1000股)。
- 统计每个桶里买单和卖单的差值。
- 计算这个差值的绝对值,除以总成交量。
- 值越高,说明订单流越不平衡,知情交易的可能性越大。
代码实现很简单:
def calculate_vpin(trades, bucket_volume=1000):
buy_volume = 0
sell_volume = 0
vpin_values = []
for trade in trades:
if trade['side'] == 'buy':
buy_volume += trade['volume']
else:
sell_volume += trade['volume']
if buy_volume + sell_volume >= bucket_volume:
imbalance = abs(buy_volume - sell_volume)
vpin = imbalance / (buy_volume + sell_volume)
vpin_values.append(vpin)
buy_volume = 0
sell_volume = 0
return vpin_values
嗯,这里要注意:VPIN值超过0.7的时候,基本可以断定有知情交易者在活动。这时候做市商应该大幅收窄报价,甚至暂停报价。
3.5 知识体系图
下面这张图,是我自己画的一个框架,帮你理清这一章的核心逻辑:
这张图把整个博弈链条串起来了。你从左边看起:知情交易者和噪音交易者同时向做市商发起交易。做市商无法区分两者,只能通过价差来保护自己。而价差的大小,直接决定了逆向选择成本的高低。
我个人习惯在每天开盘前,先跑一遍VPIN指标,看看当前市场的信息不对称程度。如果VPIN超过0.6,我会把仓位减半,或者干脆只做市不持仓。记住,在信息不对称的战场上,活下来比赚钱更重要。
本章核心:逆向选择成本是做市商最大的敌人。理解它、量化它、管理它,你才能在订单流的博弈中占据主动。
公众号:蓝海资料掘金营,微信deep3321