第19章 做市商竞争分析:对手方行为建模、报价博弈、市场份额优化
做市这行,说白了就是跟人抢饭吃。
你报个价,对面可能是散户,也可能是另一家做市商。我做了这么多年,最大的体会就是——你不分析对手,你就等着被收割。今天咱们聊聊怎么建模对手方行为、怎么博弈报价、怎么优化你的市场份额。
19.1 对手方行为建模:先搞清楚对面是谁
我习惯把对手分成三类:
- 散户/零售流:单子小,情绪化,追涨杀跌。他们不看波动率曲面,只看价格涨跌。
- 机构/算法流:单子大,有策略,会拆单。他们盯着你的报价深度和滑点。
- 其他做市商:最头疼的一类。他们跟你一样,也在猜你的底牌。
怎么建模?我一般用订单流特征来反推对手类型。
核心指标:
- 订单到达率(λ):高频还是低频?
- 订单大小分布:是1手的小单,还是100手的巨单?
- 报价偏离度:对手报的是NBBO中间价,还是贴边报?
- 撤单率:挂单后多久撤?散户可能挂10秒,机构可能挂1秒。
举个例子。我曾经遇到一个对手,每次在ATM期权上挂单,都是刚好比我的报价低0.01。撤单率极高,几乎不成交。我一开始以为是散户,后来发现他每次撤单后,都会在更优的位置重新挂。嗯,这明显是另一家做市商在试探我的底价。
建模方法其实不复杂。我常用隐马尔可夫模型(HMM)来分类对手状态。假设对手有“激进”、“中性”、“保守”三种状态,观测值是订单特征。训练好之后,你就能实时判断对面是什么路数。
# 伪代码示例:HMM对手分类
from hmmlearn import hmm
# 观测特征:订单大小、报价偏离、撤单间隔
observations = [[1, 0.01, 10], [100, 0.005, 1], ...]
model = hmm.GaussianHMM(n_components=3, covariance_type="diag")
model.fit(observations)
# 实时预测对手状态
state = model.predict([[order_size, spread_dev, cancel_interval]])
19.2 报价博弈:你报的每一分钱都是信号
报价不是随便填的。你报高了,对手吃你的单;你报低了,你吃对手的单。但问题是——你报低的时候,对手可能也在报低。
我个人的经验是,报价博弈的核心在于信息不对称。你知道自己的库存和风险偏好,但不知道对手的。所以你要通过报价来“试探”对手。
一个小技巧:
我习惯在报价中加入“噪声”。比如,我的理论价格是10.00,我可能会报10.01或9.99,而不是精确的10.00。这样对手很难从我的报价中反推出我的真实模型参数。
更高级的博弈,是用贝叶斯纳什均衡来建模。假设你和对手都是理性的,各自有私有信息(比如库存、风险厌恶系数)。你报一个价,对手根据这个价更新他对你的判断,然后他再报一个价。循环往复。
我曾经在项目中用过一个简化模型:
# 报价博弈简化模型
def optimal_quote(my_inventory, my_risk_aversion, opponent_quote):
# 假设对手的库存服从正态分布
opponent_inventory_mean = 100
opponent_inventory_std = 50
# 根据对手报价更新对手库存的信念
# 报价越低,说明对手库存越大(急于出货)
updated_mean = opponent_inventory_mean - 0.5 * (opponent_quote - 10.0)
# 计算最优报价
my_quote = 10.0 - my_risk_aversion * my_inventory + 0.2 * updated_mean
return my_quote
当然,实际中比这复杂得多。但核心思想是一样的:你的报价不只是价格,还是信号。
19.3 市场份额优化:不是越大越好
很多人以为做市商的目标是抢最多的单。错了。我见过太多做市商,市场份额冲到30%,结果亏得一塌糊涂。为什么?因为你抢到的单子,可能都是别人不要的烂单。
市场份额优化的本质,是在盈利和市占率之间找平衡。我一般用夏普比率来评估每个品种的做市质量。如果一个品种的夏普比率低于1,我宁愿少做,甚至不做。
| 品种 | 市场份额 | 日均盈亏 | 夏普比率 | 建议 |
|---|---|---|---|---|
| 沪深300 ETF期权 | 25% | +50,000 | 2.1 | 维持 |
| 中证500 ETF期权 | 35% | +10,000 | 0.8 | 缩减 |
| 科创50 ETF期权 | 15% | +30,000 | 1.5 | 扩大 |
你看,中证500的市占率最高,但夏普比率最低。说白了,你是在用高风险换低收益。我建议把资源往科创50倾斜,虽然市占率低,但每一块钱的风险调整后收益更高。
避坑指南:
我曾经在某个品种上死磕市占率,结果被另一家做市商反向收割。他故意在远月合约上报低价,引诱我跟着降价,然后他在近月合约上吃我的单。等我反应过来,已经亏了200万。所以记住:市场份额是结果,不是目标。
19.4 实战中的动态调整
市场是活的,你的策略也得是活的。我一般每天开盘前做三件事:
- 更新对手模型:用昨天的订单流数据重新训练HMM,看看对手的状态有没有变化。
- 调整报价策略:如果发现某个对手变得激进,我就把报价间距拉大,减少被吃单的风险。
- 优化市场份额分配:根据夏普比率和当前库存,决定今天重点做哪个品种。
你想想看,如果你每天都是机械地报同样的价,那跟送钱有什么区别?
最后说一句,做市商竞争分析,本质上是一场信息战。谁对对手的了解更深,谁就能在报价博弈中占优。我建议你从今天开始,记录每一个对手的订单特征,哪怕只是简单的Excel表格。三个月后,你会发现自己的报价胜率明显提升。
本章核心要点:
- 对手方行为建模:用HMM分类对手状态,实时调整策略
- 报价博弈:报价是信号,用贝叶斯纳什均衡优化
- 市场份额优化:用夏普比率衡量做市质量,别盲目追市占率
- 动态调整:每天更新模型,适应市场变化
这张图把整个分析框架串起来了。从输入到输出,每一步都环环相扣。你照着这个框架去搭建自己的系统,至少能少走三年弯路。