一、做市商系统概述
什么是做市商
做市商,说白了就是交易所里的「职业买卖人」。
我刚开始接触这个领域时,也觉得做市商就是普通交易者。后来踩过坑才明白——做市商的核心任务不是「赌方向」,而是「提供流动性」。
你想想看,一个交易对如果没人买也没人卖,那这个市场就死了。做市商干的事就是:同时挂出买单和卖单,让想交易的人随时能成交。
举个例子:
- 你在币安上看到BTC/USDT,买一价30000,卖一价30001
- 这1块钱的差价,就是做市商「让」出来的空间
- 做市商赚的就是这1块钱的差价,而不是赌BTC涨跌
关键认知:做市商不是投机者,是「流动性服务商」。他们赚的是交易量×价差的乘积,而不是方向性收益。
做市商的核心盈利模式
盈利模式其实就三个字:吃价差。但具体怎么吃,这里头门道不少。
我记得刚带团队时,有个新人问我:「老师,我们挂买单和卖单,万一价格一直朝一个方向走怎么办?」
嗯,这个问题问到点子上了。做市商不是傻傻地挂单,而是有一套完整的策略:
- 价差收入:买卖价差是基础收入。比如你挂买一价100,卖一价100.1,成交一单赚0.1
- 手续费返还:交易所会给做市商返佣,有的甚至免手续费。我见过最夸张的,某所给做市商返了80%的手续费
- 库存管理收益:通过动态调整仓位,在波动中赚取额外收益。说白了就是「低买高卖」的升级版
- 资金费率套利:在永续合约市场,利用资金费率机制赚取稳定收益
我的经验:新手做市商最容易犯的错,就是只盯着价差收入。其实手续费返还和库存管理,往往才是利润的大头。我曾经有个项目,价差收入只占30%,剩下70%都来自手续费返还。
为什么会这样?因为现在交易所竞争太激烈了。价差越来越薄,单靠吃价差根本活不下去。你得把每个环节都抠出来赚钱。
做市商系统的基本架构
做市商系统,说白了就是一个「自动化赚钱机器」。它得同时干好几件事:看行情、算价格、下订单、管风险。
我个人习惯把系统分成四个核心模块:
| 模块 | 功能 | 我踩过的坑 |
|---|---|---|
| 行情模块 | 实时获取交易所的深度、成交、K线数据 | WebSocket断连没处理好,导致报价延迟了3秒,亏了20万 |
| 策略引擎 | 根据行情计算最优报价和挂单量 | 参数没做热更新,每次改参数都要重启,错过一波行情 |
| 订单管理 | 执行下单、撤单、查询订单状态 | API限频没处理好,订单被交易所拒绝,导致库存失衡 |
| 风控模块 | 监控库存、盈亏、最大回撤 | 曾经忘了设止损,一夜亏了50万 |
这四个模块怎么配合?我画了一张图,你看一眼就明白了:
这张图你看懂了吗?核心逻辑就是:
- 行情模块从交易所拿数据,喂给策略引擎
- 策略引擎算出最优报价,发给订单管理
- 订单管理执行下单,同时把结果反馈给风控
- 风控模块全程监控,一旦发现异常,立刻干预策略
避坑指南:我曾经犯过一个低级错误——把风控模块和策略引擎放在同一个进程里。结果风控模块卡住了,策略引擎也跟着停了,整个系统挂了3分钟。后来我学乖了,风控必须独立部署,甚至用单独的机器跑。
嗯,说到架构,还有一点要提:延迟。做市商系统对延迟极其敏感。我见过最夸张的,某团队为了降低1毫秒的延迟,把服务器搬到了交易所机房隔壁。你想想看,1毫秒能干什么?够你的订单排到别人后面几百位了。
所以,架构设计时一定要考虑:
- 行情数据走UDP,别走TCP(TCP重传太慢)
- 策略计算用C++或Rust,别用Python(除非你不在乎延迟)
- 订单管理用异步非阻塞模型,别用同步阻塞
- 风控模块独立线程,别和主逻辑混在一起
这些细节,后面章节我会一个一个展开讲。今天先把概念理清楚。
一句话总结:做市商就是「流动性搬运工」,靠价差和返佣赚钱。系统架构的核心是「行情→策略→订单→风控」四层闭环,每一层都不能掉链子。
公众号:蓝海资料掘金营,微信deep3321