1. 做市策略基础:什么是做市商、做市策略的核心逻辑、买卖价差与库存风险
大家好,欢迎来到这门课。今天咱们聊聊做市策略最底层的那些事儿。
很多人一听到「做市商」,就觉得是高大上的量化机构。其实说白了,做市商就是市场的「摆摊人」。你想想看,菜市场里有人专门卖菜、有人专门买菜,但如果没有摊主,你来了找不到人买,想卖也找不到人收——那这市场就废了。做市商干的就是这个活:同时挂出买单和卖单,给市场提供流动性。
1.1 做市商到底在干什么?
我刚开始接触做市时,有个前辈跟我说过一句话,我一直记着:「做市商不是赌方向,而是赚服务的钱。」
什么意思呢?
传统交易员靠预测价格涨跌赚钱。做市商不一样,我们不关心价格明天是涨是跌。我们只关心一件事:能不能在买入价和卖出价之间赚到差价。
举个例子。假设现在比特币价格是 10000 美元。我做市商挂出:
- 买入价:9998 美元(我愿以这个价买)
- 卖出价:10002 美元(我愿以这个价卖)
如果有人以 9998 卖给我,又有人以 10002 从我这里买走,我就赚了 4 美元的差价。这就是做市商最基础的盈利模式。
核心要点:做市商赚的是买卖价差(Bid-Ask Spread),不是价格波动的方向性收益。
1.2 做市策略的核心逻辑
嗯,这里要展开讲一下。做市策略听起来简单,但实际跑起来坑特别多。
我个人习惯把做市策略的核心逻辑拆成三块:
- 报价生成——什么时候挂单、挂什么价格、挂多少量
- 订单管理——挂上去的单子被吃了怎么办、要不要撤单重挂
- 风险控制——库存偏了怎么调整、极端行情怎么处理
这三块缺一不可。我在项目中遇到过不少团队,只盯着报价生成,结果库存风险爆了,一天亏掉三个月的利润。
咱们先看报价生成。最简单的模型是这样的:
# 伪代码:基础报价逻辑
mid_price = (best_bid + best_ask) / 2
spread = base_spread + k * inventory_skew
bid_price = mid_price - spread / 2
ask_price = mid_price + spread / 2
bid_size = base_size * (1 - inventory_ratio)
ask_size = base_size * (1 + inventory_ratio)
你看,这里有两个关键变量:价差(spread)和库存偏移(inventory_skew)。价差决定了你每笔能赚多少,库存偏移决定了你愿不愿意接单。
一个小技巧:我刚开始做的时候,把 base_spread 设得太小,结果每笔赚的钱还不够手续费。后来我养成了一个习惯——先算清楚交易所的手续费率和滑点成本,再定 base_spread。
1.3 买卖价差:做市商的命根子
买卖价差,说白了就是你的「毛利率」。但这里有个坑——价差不是越大越好。
为什么?
你想想看,如果你把价差拉得特别大,比如买入价 9900、卖出价 10100,那确实每笔赚得多。但问题是,没人会来跟你成交。你的单子挂在那里,成了「僵尸单」。做市商的核心是周转率——单子成交得越快,你赚的钱才越多。
所以这里有个平衡:
| 价差策略 | 优点 | 缺点 |
|---|---|---|
| 窄价差 | 成交率高,周转快 | 每笔利润薄,容易被套 |
| 宽价差 | 每笔利润高,安全垫厚 | 成交率低,可能被其他做市商抢走订单 |
| 动态价差 | 根据市场波动调整,灵活 | 实现复杂,参数调优难 |
我个人偏向动态价差。市场波动大的时候,我把价差拉宽,给自己留足安全空间;市场平稳的时候,我把价差收窄,多抢一些订单。
1.4 库存风险:做市商的隐形杀手
好,接下来聊库存风险。这是做市策略里最容易被忽视、但也是最致命的问题。
库存风险是什么?
简单说,就是你手里攒了一堆货,价格突然暴跌,你就亏惨了。
做市商本质上是在做「双向报价」。理想情况下,买卖单子是对称的,你手里不持任何净头寸。但现实是,市场不可能永远平衡。有时候买单多,你手里就攒了一堆货;有时候卖单多,你就空仓了。
我曾经踩过的坑:有一次做ETH的做市,市场突然出现巨量卖单,我的买单全被吃了,手里攒了5000个ETH。我当时没及时调整报价,结果价格继续暴跌,那一波亏了将近20万美金。从那以后,我给自己定了一条铁律——库存偏离超过阈值,必须强制调整报价。
库存风险的管理,通常有几种手段:
- 报价偏移:库存偏多时,降低买入价、提高卖出价,让库存慢慢吐出去
- 对冲:在期货或期权市场做反向头寸,锁定风险
- 止损:设定库存上限,超过就暂停做市
这里我画了一张图,帮大家理解做市策略的整体框架:
这张图展示了做市策略的完整闭环。市场数据进来,经过价差计算、库存管理、风险控制三个模块的协同,输出报价。成交后反馈回来更新库存状态,形成一个循环。
1.5 三个核心参数的权衡
做市策略里,有三个参数是永远在打架的:
- 价差宽度——赚多少
- 报价深度——接多少
- 库存上限——扛多少
这三者之间是相互制约的。价差越宽,你愿意接的单量就应该越小;库存上限越高,价差就应该越宽来保护自己。
我记得有一次给一个客户调参数,他非要把价差设成 0.01%,库存上限设成 1000 个 BTC。我说你这是找死。结果跑了三天,一波行情直接爆仓。后来他老老实实按我的建议,把价差调到 0.05%,库存上限降到 200 个,才稳定下来。
避坑指南:刚开始做做市策略,我建议你把价差设得保守一点。宁可少赚,也别亏。等跑顺了,再慢慢收窄价差、提高深度。
1.6 总结一下
做市策略的基础,说白了就三件事:
- 理解做市商的角色——你不是在赌方向,你是在提供服务
- 掌握价差的逻辑——太宽没人来,太窄自己亏
- 管好库存风险——这是做市商的命门,管不好就等着爆仓
嗯,这一章的内容就到这里。下一章我们会深入讲价差模型的具体实现,包括固定价差、动态价差、以及如何根据订单簿数据实时调整报价。到时候我会带大家手写一个简单的报价引擎。