第一章:做市系统概述

什么是做市商

做市商,说白了就是市场的「中间人」。你想想看,在交易所里,买方和卖方不是随时都能对上眼的。有人想卖,但没人买;有人想买,但没人卖——这就尴尬了。

做市商干的事很简单:同时挂出买单和卖单。比如比特币现价 50000 美元,我挂 49980 的买单,再挂 50020 的卖单。差价 40 美元,这就是我的利润空间。

我在早期做市商系统时,遇到过一个大坑:有人以为做市商就是「低买高卖」的投机者。其实完全不是。做市商赚的是买卖价差,而不是赌方向。我们提供流动性,市场给我们「服务费」——也就是那个差价。

核心要点:做市商不是交易员,是服务商。我们赚的是流动性溢价,不是方向性收益。

做市系统的核心目标

一个做市系统,目标其实就三个:

  1. 控制库存风险——手里不能囤太多货,也不能空仓太久
  2. 赚取价差收益——买卖差价要覆盖手续费和滑点
  3. 保持市场中性——不赌涨跌,只赚流动性钱

嗯,这里要注意。很多人以为做市系统就是「自动挂单」。我见过不少团队,上来就写个脚本挂单,结果被市场一波带走。为什么?因为没管住库存风险。

举个例子:你挂了 100 个比特币的买单,结果价格暴跌。你手里全是货,亏到姥姥家。所以做市系统的第一要务,是动态调整仓位

个人经验:我习惯把库存风险拆成两部分——绝对库存和相对库存。绝对库存是手里有多少货,相对库存是偏离目标仓位的程度。后者才是真正需要盯的。

做市策略的基本分类

做市策略五花八门,但万变不离其宗。我把它分成三大类:

策略类型 核心逻辑 适用场景
被动做市 挂单等成交,赚价差 高流动性、低波动市场
主动做市 吃单调整仓位,配合挂单 低流动性、高波动市场
混合做市 被动为主,主动为辅 大多数情况

被动做市,说白了就是「守株待兔」。你挂好单,等别人来吃。优点是手续费低,缺点是可能半天成交不了。

主动做市,就是「主动出击」。当库存偏离目标时,直接吃单调整。我曾在项目中遇到过这种情况:某次行情剧烈波动,被动挂单全被吃掉,库存瞬间爆仓。还好主动策略及时介入,不然就凉了。

混合做市,是我个人最推荐的。平时被动挂单赚差价,库存偏离大了就主动调整。说白了,既要赚流动性钱,又要管住风险

做市系统的技术栈概览

做市系统不是随便写个脚本就能跑的。它需要一套完整的技术栈。我画了个图,你看一眼就明白了:

做市系统技术栈架构 数据层 行情数据 | 订单簿 | 成交记录 | 历史数据 计算层 定价引擎 | 风险管理 | 信号生成 | 策略调度 执行层 订单管理 | 路由分发 | 成交确认 | 异常处理 监控层 实时监控 | 告警系统 | 日志审计 | 性能分析

数据层,负责接入交易所行情和订单簿。我建议用 WebSocket 实时流,别用 REST 轮询——延迟差太多了。

计算层,是系统的核心。定价引擎算合理价格,风险管理算库存和敞口,信号生成决定挂单还是撤单。这一层最容易出 bug,我曾经因为一个浮点数精度问题,导致定价偏差了 0.01%,结果一晚上亏了 5 万美金。

避坑指南:计算层一定要做单元测试和回测。我曾经跳过回测直接上线,结果策略在极端行情下疯狂吃单,差点把账户打爆。从那以后,我每条策略都必须跑至少 3 个月的历史数据。

执行层,负责把信号变成订单。这里要注意:订单管理不是简单的发单撤单。要考虑订单状态机、超时重发、部分成交处理。我习惯用异步事件驱动架构,每个订单都是一个独立的状态机。

监控层,很多人不重视。但说实话,做市系统 90% 的时间都在处理异常。没有监控,你都不知道系统什么时候挂了。我建议至少监控:延迟、成交率、库存偏离、盈亏曲线。

个人习惯:我会在监控层加一个「心跳检测」。每 100 毫秒检查一次系统状态,如果连续 3 次心跳异常,自动触发熔断——所有订单撤单,停止交易。宁可少赚,不能大亏。

好了,第一章就聊这么多。做市系统看着简单,但每个环节都有坑。后面我们会一步步拆解,从定价到风控,从回测到上线,把每个细节讲透。

专注资料整理