一、做市商系统概述

什么是做市商

做市商,说白了就是交易所里的「职业买卖人」。

我刚开始接触这个领域时,也觉得做市商就是普通交易者。后来踩过坑才明白——做市商的核心任务不是「赌方向」,而是「提供流动性」

你想想看,一个交易对如果没人买也没人卖,那这个市场就死了。做市商干的事就是:同时挂出买单和卖单,让想交易的人随时能成交。

举个例子:

  • 你在币安上看到BTC/USDT,买一价30000,卖一价30001
  • 这1块钱的差价,就是做市商「让」出来的空间
  • 做市商赚的就是这1块钱的差价,而不是赌BTC涨跌
关键认知:做市商不是投机者,是「流动性服务商」。他们赚的是交易量×价差的乘积,而不是方向性收益。

做市商的核心盈利模式

盈利模式其实就三个字:吃价差。但具体怎么吃,这里头门道不少。

我记得刚带团队时,有个新人问我:「老师,我们挂买单和卖单,万一价格一直朝一个方向走怎么办?」

嗯,这个问题问到点子上了。做市商不是傻傻地挂单,而是有一套完整的策略:

  1. 价差收入:买卖价差是基础收入。比如你挂买一价100,卖一价100.1,成交一单赚0.1
  2. 手续费返还:交易所会给做市商返佣,有的甚至免手续费。我见过最夸张的,某所给做市商返了80%的手续费
  3. 库存管理收益:通过动态调整仓位,在波动中赚取额外收益。说白了就是「低买高卖」的升级版
  4. 资金费率套利:在永续合约市场,利用资金费率机制赚取稳定收益
我的经验:新手做市商最容易犯的错,就是只盯着价差收入。其实手续费返还和库存管理,往往才是利润的大头。我曾经有个项目,价差收入只占30%,剩下70%都来自手续费返还。

为什么会这样?因为现在交易所竞争太激烈了。价差越来越薄,单靠吃价差根本活不下去。你得把每个环节都抠出来赚钱。

做市商系统的基本架构

做市商系统,说白了就是一个「自动化赚钱机器」。它得同时干好几件事:看行情、算价格、下订单、管风险。

我个人习惯把系统分成四个核心模块:

模块 功能 我踩过的坑
行情模块 实时获取交易所的深度、成交、K线数据 WebSocket断连没处理好,导致报价延迟了3秒,亏了20万
策略引擎 根据行情计算最优报价和挂单量 参数没做热更新,每次改参数都要重启,错过一波行情
订单管理 执行下单、撤单、查询订单状态 API限频没处理好,订单被交易所拒绝,导致库存失衡
风控模块 监控库存、盈亏、最大回撤 曾经忘了设止损,一夜亏了50万

这四个模块怎么配合?我画了一张图,你看一眼就明白了:

做市商系统核心架构图 行情模块 深度/成交/K线 策略引擎 报价计算/参数优化 订单管理 下单/撤单/状态查询 风控模块 库存/盈亏/止损 数据流 指令流 监控 干预 API 交易所

这张图你看懂了吗?核心逻辑就是:

  • 行情模块从交易所拿数据,喂给策略引擎
  • 策略引擎算出最优报价,发给订单管理
  • 订单管理执行下单,同时把结果反馈给风控
  • 风控模块全程监控,一旦发现异常,立刻干预策略
避坑指南:我曾经犯过一个低级错误——把风控模块和策略引擎放在同一个进程里。结果风控模块卡住了,策略引擎也跟着停了,整个系统挂了3分钟。后来我学乖了,风控必须独立部署,甚至用单独的机器跑

嗯,说到架构,还有一点要提:延迟。做市商系统对延迟极其敏感。我见过最夸张的,某团队为了降低1毫秒的延迟,把服务器搬到了交易所机房隔壁。你想想看,1毫秒能干什么?够你的订单排到别人后面几百位了。

所以,架构设计时一定要考虑:

  1. 行情数据走UDP,别走TCP(TCP重传太慢)
  2. 策略计算用C++或Rust,别用Python(除非你不在乎延迟)
  3. 订单管理用异步非阻塞模型,别用同步阻塞
  4. 风控模块独立线程,别和主逻辑混在一起

这些细节,后面章节我会一个一个展开讲。今天先把概念理清楚。

一句话总结:做市商就是「流动性搬运工」,靠价差和返佣赚钱。系统架构的核心是「行情→策略→订单→风控」四层闭环,每一层都不能掉链子。

公众号:蓝海资料掘金营,微信deep3321