第一章:做市系统概述
什么是做市商
做市商,说白了就是市场的「中间人」。你想想看,在交易所里,买方和卖方不是随时都能对上眼的。有人想卖,但没人买;有人想买,但没人卖——这就尴尬了。
做市商干的事很简单:同时挂出买单和卖单。比如比特币现价 50000 美元,我挂 49980 的买单,再挂 50020 的卖单。差价 40 美元,这就是我的利润空间。
我在早期做市商系统时,遇到过一个大坑:有人以为做市商就是「低买高卖」的投机者。其实完全不是。做市商赚的是买卖价差,而不是赌方向。我们提供流动性,市场给我们「服务费」——也就是那个差价。
做市系统的核心目标
一个做市系统,目标其实就三个:
- 控制库存风险——手里不能囤太多货,也不能空仓太久
- 赚取价差收益——买卖差价要覆盖手续费和滑点
- 保持市场中性——不赌涨跌,只赚流动性钱
嗯,这里要注意。很多人以为做市系统就是「自动挂单」。我见过不少团队,上来就写个脚本挂单,结果被市场一波带走。为什么?因为没管住库存风险。
举个例子:你挂了 100 个比特币的买单,结果价格暴跌。你手里全是货,亏到姥姥家。所以做市系统的第一要务,是动态调整仓位。
做市策略的基本分类
做市策略五花八门,但万变不离其宗。我把它分成三大类:
| 策略类型 | 核心逻辑 | 适用场景 |
|---|---|---|
| 被动做市 | 挂单等成交,赚价差 | 高流动性、低波动市场 |
| 主动做市 | 吃单调整仓位,配合挂单 | 低流动性、高波动市场 |
| 混合做市 | 被动为主,主动为辅 | 大多数情况 |
被动做市,说白了就是「守株待兔」。你挂好单,等别人来吃。优点是手续费低,缺点是可能半天成交不了。
主动做市,就是「主动出击」。当库存偏离目标时,直接吃单调整。我曾在项目中遇到过这种情况:某次行情剧烈波动,被动挂单全被吃掉,库存瞬间爆仓。还好主动策略及时介入,不然就凉了。
混合做市,是我个人最推荐的。平时被动挂单赚差价,库存偏离大了就主动调整。说白了,既要赚流动性钱,又要管住风险。
做市系统的技术栈概览
做市系统不是随便写个脚本就能跑的。它需要一套完整的技术栈。我画了个图,你看一眼就明白了:
数据层,负责接入交易所行情和订单簿。我建议用 WebSocket 实时流,别用 REST 轮询——延迟差太多了。
计算层,是系统的核心。定价引擎算合理价格,风险管理算库存和敞口,信号生成决定挂单还是撤单。这一层最容易出 bug,我曾经因为一个浮点数精度问题,导致定价偏差了 0.01%,结果一晚上亏了 5 万美金。
执行层,负责把信号变成订单。这里要注意:订单管理不是简单的发单撤单。要考虑订单状态机、超时重发、部分成交处理。我习惯用异步事件驱动架构,每个订单都是一个独立的状态机。
监控层,很多人不重视。但说实话,做市系统 90% 的时间都在处理异常。没有监控,你都不知道系统什么时候挂了。我建议至少监控:延迟、成交率、库存偏离、盈亏曲线。
好了,第一章就聊这么多。做市系统看着简单,但每个环节都有坑。后面我们会一步步拆解,从定价到风控,从回测到上线,把每个细节讲透。