3. 合作博弈与做市:流动性战场上的默契与竞争
做市商这行,干久了你会发现一个有意思的现象:明明大家都是竞争对手,却常常表现出一种诡异的默契。这背后,其实就是合作博弈在起作用。
我个人习惯把做市商之间的互动看作一场「有限合作」的游戏。咱们不是朋友,但也不是死敌。说白了,大家都是为了赚钱,而赚钱的前提是——市场得活着。
3.1 合作博弈的核心理念:从囚徒困境到共赢
先聊聊合作博弈的本质。传统博弈论里有个经典模型叫囚徒困境,两个囚犯各自选择背叛,结果双双倒霉。但在做市场景下,如果两个做市商都选择「恶意报价」——比如疯狂收窄价差、互相抢单——最后谁都赚不到钱。
为什么? 因为价差太薄,覆盖不了风险敞口和手续费。我见过不少新手做市商,上来就拼价格,结果一个月亏掉半年利润。
合作博弈的核心,就是找到那个「大家都别太狠」的均衡点。这个点不是靠签合同达成的,而是靠市场信号和长期利益博弈出来的。
核心公式(简化版):
做市商利润 = 交易量 × 价差 - 库存风险成本 - 手续费
当价差过小时,利润为负。所以理性做市商不会无限收窄价差。
3.2 做市商之间的默契:心照不宣的规则
做市商之间的默契,有点像开车时的「让行规则」。没有明文规定,但大家都懂。
- 价差默契: 同一品种上,主流做市商通常维持相近的价差。如果有人突然把价差砍掉一半,其他人会跟进,但不会跟进太多。因为大家都知道,这种「价格战」没有赢家。
- 订单簿分层: 我习惯把订单簿分成三层:近端(1-3档)、中端(4-10档)、远端(10档以上)。近端是主战场,中端是缓冲带,远端是战略储备。默契在于:大家通常不会在中远端恶意插队。
- 时间优先 vs 价格优先: 在价格相同的情况下,先到先得。所以做市商会尽量保持报价同步,避免被「插队」吃掉流动性。
避坑指南: 我曾经在ETH-USDT上犯过一个错。当时我为了抢单,把近端价差压到了0.01%,结果其他做市商瞬间撤单,我一个人扛了500 ETH的库存。那波行情波动了2%,我亏了10万美金。从那以后,我再也不做「出头鸟」。
3.3 竞争:暗流涌动的博弈
默契归默契,竞争从未消失。只是竞争的形式变了——从「价格战」变成了「速度战」和「信息战」。
| 竞争维度 | 传统做法 | 现代做法 |
|---|---|---|
| 价格 | 收窄价差 | 算法优化,动态调整 |
| 速度 | 低延迟硬件 | FPGA、内核旁路、托管 |
| 信息 | 公开数据 | 订单流分析、模式识别 |
| 策略 | 固定报价 | 强化学习、博弈树搜索 |
你看,竞争已经升级了。现在大家比的不是谁更「狠」,而是谁更「聪明」。我见过一个团队,他们专门分析对手的撤单模式,然后提前调整自己的报价。这其实就是博弈论里的「策略推断」。
3.4 流动性博弈:谁在掌控市场?
流动性博弈,说白了就是「谁先动,谁吃亏」。做市商之间有个潜规则:不要轻易打破平衡。因为一旦有人先撤单,其他人也会跟着撤,流动性瞬间枯竭,价格剧烈波动。
我举个例子。假设某个币种在Binance上有三个主要做市商:A、B、C。正常情况下,每个人提供100 BTC的流动性。突然,A撤掉了50 BTC的买单。B和C会怎么反应?
- 理性反应: B和C也会撤掉部分买单,因为A的撤单意味着市场可能有问题(比如有大户要砸盘)。
- 非理性反应: B和C选择不动,结果A的撤单导致买盘变薄,价格下跌,B和C的库存亏损。
你看,这就是流动性博弈的微妙之处。每个人都想「搭便车」,但没人愿意当「冤大头」。
注意: 流动性博弈中,最危险的是「信息不对称」。如果你发现某个做市商突然大规模撤单,别犹豫,跟着撤。我曾经因为犹豫了3秒,被一波砸盘吃掉20%的仓位。
3.5 知识体系框架:合作博弈与做市
下面这张图,是我自己总结的做市商博弈框架。你可以把它当作一个思维导图来用。
3.6 实战中的博弈策略
说了这么多理论,来点实际的。我在做市策略里,通常会嵌入几个博弈逻辑:
- 信号检测: 实时监控对手的撤单频率和规模。如果某对手在1秒内撤单超过3次,我会自动降低自己的报价深度。
- 动态价差: 根据市场参与者的数量调整价差。参与者越多,价差越窄;参与者越少,价差越宽。这其实是「合作博弈」的自动化实现。
- 反欺诈机制: 有些做市商会用「虚假报价」来诱导你。比如挂一个大单但不成交,等你跟单后立刻撤单。我的策略会识别这种模式,并暂时屏蔽该对手的报价信号。
代码片段:简单的撤单检测逻辑
def detect_abnormal_cancels(order_book, threshold=3, window_ms=1000):
"""
检测异常撤单行为
:param order_book: 当前订单簿
:param threshold: 撤单次数阈值
:param window_ms: 时间窗口(毫秒)
"""
cancel_count = 0
for event in order_book.events:
if event.type == 'CANCEL' and event.timestamp - last_time < window_ms:
cancel_count += 1
if cancel_count > threshold:
print(f"警告:检测到异常撤单,次数={cancel_count}")
return True
return False
嗯,这个逻辑看起来简单,但实际部署时要注意延迟。我建议用C++或者Rust来实现核心检测,Python只做监控和报警。
3.7 最后说两句
合作博弈与做市,说白了就是一场「有限信任」的游戏。你不需要完全信任对手,但你需要相信:如果大家都守规矩,市场会更好,每个人都能赚到钱。
但别忘了,总有人会打破规矩。所以,保持警惕,动态调整,才是长久之道。