25、流动性提供策略:被动做市与主动做市、流动性挖矿、做市商联盟、跨交易所流动性聚合
流动性,说白了就是市场的血液。没有流动性,你的订单挂在那里半天没人理,买卖价差大得吓人。我做量化这些年,见过太多因为流动性不足而爆仓的案例。今天咱们就聊聊,怎么系统地提供流动性,以及背后的策略逻辑。
一、被动做市 vs 主动做市
先分清楚两个概念。被动做市,就是你在订单簿上挂单,等着别人来吃。主动做市,是你主动去市场上扫单,或者用算法吃掉对手的流动性。两者思路完全不同。
1. 被动做市:赚的是价差和返佣
被动做市的核心逻辑很简单:你在买一价挂买单,在卖一价挂卖单。如果市场波动不大,两边都成交,你就赚到了价差。很多交易所还会给挂单方返佣,这又是一笔收入。
我个人的习惯是,被动做市一定要控制好库存风险。你想想看,如果市场突然暴跌,你手里的买单全成交了,卖单却没人理,那你就变成了一堆现货的多头。嗯,这很危险。
我在项目中遇到过一种情况:某个小币种,价差很大,返佣也很高。团队一算,觉得稳赚。结果市场突然出现一个巨量卖单,直接把买一价砸穿了。我们的买单全成交,卖单一个没动。那一波亏了十几个点。所以啊,被动做市不是无脑挂单,你得有止损机制。
2. 主动做市:赚的是信息优势和速度优势
主动做市,说白了就是你去吃别人的单子。什么时候会这么做?当你判断市场即将出现方向性波动时,或者你发现了套利机会时。
举个例子。我在做跨交易所套利时,经常需要主动吃掉一个交易所的卖单,同时在另一个交易所挂出卖单。这种操作,本质上就是主动做市。你承担了瞬时库存风险,但换来了确定性收益。
二、流动性挖矿:DeFi时代的创新
流动性挖矿,这个词在2020年夏天火得一塌糊涂。说白了,就是你把资产质押到去中心化交易所的流动性池里,然后获得治理代币作为奖励。
但这里有个坑,我必须要说。流动性挖矿的收益,看起来年化几百甚至几千,但你要考虑两个问题:
- 无常损失: 币价波动越大,你的损失越大。我在Uniswap上挖过一段时间,ETH从300涨到400,我池子里的ETH数量少了,USDT多了。虽然赚了手续费和代币,但算上无常损失,其实没赚多少。
- 代币价格下跌: 很多项目方发的治理代币,挖矿结束后就暴跌。你辛辛苦苦挖了三个月,最后代币归零。嗯,这种事我见过不止一次。
三、做市商联盟:抱团取暖
做市商联盟,就是几个做市商联合起来,共同为某个交易对提供流动性。好处很明显:
- 资金规模更大: 单个做市商可能只有几百万,联盟可以凑到几千万甚至上亿。深度更好,价差更小。
- 风险共担: 遇到极端行情,大家一起扛。不会因为一个做市商撤单而导致流动性枯竭。
- 信息共享: 联盟内部可以共享一些市场数据,比如订单流、大单预警等。当然,这需要信任基础。
我参与过一个联盟,专门做某个新兴交易所的BTC/USDT交易对。我们约定好,每个人负责不同的价格区间。比如我负责买一到买五,另一个团队负责卖一到卖五。这样就不会互相抢单,还能保证整个订单簿的深度。
但联盟也有问题。你想想看,如果有人作弊怎么办?比如他偷偷在联盟之外挂单,或者利用联盟的信息提前下单。所以,联盟的治理机制很重要。我们当时用的是智能合约,所有挂单和撤单都上链,公开透明。
四、跨交易所流动性聚合
这个就更有意思了。不同交易所的流动性是割裂的,同一个币种,在A交易所可能深度很好,在B交易所可能深度很差。跨交易所流动性聚合,就是把这些流动性整合起来,让用户能以一个更好的价格成交。
实现方式主要有两种:
| 方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 智能路由 | 根据各交易所的实时深度,自动选择最优路径 | 成交价格最优,用户体验好 | 延迟较高,需要实时计算 |
| 原子交换 | 通过跨链技术,实现不同链上的资产交换 | 去中心化,安全性高 | 速度慢,成本高 |
我个人更倾向于智能路由的方式。为什么呢?因为速度快。我在做套利时,每一毫秒都很关键。原子交换虽然安全,但等它确认完,黄花菜都凉了。
这里给一个简单的智能路由伪代码,帮你理解核心逻辑:
def smart_route(order, exchanges):
# 获取各交易所的实时深度
depths = [get_depth(ex, order.symbol) for ex in exchanges]
# 计算每个交易所的最优可成交价格
best_price = None
best_exchange = None
for depth in depths:
if order.side == 'buy':
price = depth.asks[0].price
else:
price = depth.bids[0].price
if best_price is None or price < best_price:
best_price = price
best_exchange = depth.exchange
# 如果最优价格优于当前市场价,则执行
if best_price < order.market_price * 1.001:
execute_order(order, best_exchange)
else:
# 否则拆单,分批执行
split_and_execute(order, depths)
这段代码很简单,但实际生产中要考虑的东西多得多。比如滑点、网络延迟、交易所的限频等等。我建议你从模拟盘开始,跑通了再上实盘。
五、知识体系总览
下面这张图,是我梳理的本章知识体系。你可以把它当作一个思维导图,快速回顾核心内容。
这张图把五个核心策略串起来了。你仔细看,其实它们之间是有联系的。比如做市商联盟可以更好地实现跨交易所聚合,流动性挖矿也可以看作是一种被动做市的变体。理解这些关联,你才能真正用好这些策略。