一、做市商基础:什么是做市商、做市商盈利模式、做市商风险、自动化报价系统概述
大家好,我是你们的老朋友。今天咱们正式开篇,聊聊做市商这个行当。
很多人一听到「做市商」,就觉得很高大上,好像离我们很远。其实说白了,做市商就是市场的「中间商」。你想想看,菜市场里有人专门批发蔬菜,然后零售给顾客,赚个差价。做市商在金融市场里干的,本质上也是这个活。
1.1 什么是做市商
做市商,英文叫 Market Maker。它的核心职责就一条:同时报出买入价和卖出价,并且随时准备成交。
我举个例子你就明白了。假设你打开一个交易软件,看到 BTC/USDT 的盘口上,有人挂单 50000 买入,有人挂单 50010 卖出。这个「有人」很可能就是做市商。他们不是普通散户,而是专业的机构,专门靠提供流动性赚钱。
做市商的存在,让市场变得「滑溜」。没有他们,你想买 100 个比特币,可能得等半天才有人卖给你。有了做市商,你点一下鼠标,瞬间成交。这就是流动性。
核心定义:做市商是金融市场上持续提供双边报价、承诺以自有资金成交的机构。他们是流动性的提供者,也是价格发现的参与者。
1.2 做市商的盈利模式
做市商怎么赚钱?很多人第一反应是「低买高卖」。对,但不全对。我给大家拆解一下,主要有三种盈利来源。
1.2.1 买卖价差(Bid-Ask Spread)
这是最基础的盈利方式。做市商报一个买入价(Bid)和一个卖出价(Ask),中间的差价就是利润。比如 ETH 的 Bid 是 3000,Ask 是 3001,差价 1 美金。别小看这 1 美金,一天交易几万次,积少成多。
我在做市商系统里见过一个极端案例:某个小币种,价差高达 0.5%,一天下来光价差收入就几十万美金。当然,这种机会现在越来越少了。
1.2.2 手续费返还(Rebate)
很多交易所为了吸引做市商,会提供手续费返还。你挂单成交了,交易所不仅不收你手续费,还倒贴你钱。这叫「做市商激励计划」。
我记得 2019 年帮一家交易所搭建做市系统时,他们的返佣比例高达 0.01%。对于高频交易来说,这可不是小数目。
1.2.3 库存增值
做市商手里必须持有一定数量的资产,这叫「库存」。如果市场整体上涨,库存本身也会增值。当然,反过来也可能亏损。
| 盈利来源 | 占比(典型) | 风险等级 |
|---|---|---|
| 买卖价差 | 60% | 低 |
| 手续费返还 | 25% | 低 |
| 库存增值 | 15% | 高 |
1.3 做市商的风险
做市商不是稳赚不赔的。我见过太多新手做市商,前三个月赚得盆满钵满,第四个月一把亏光。风险主要来自三个方面。
1.3.1 库存风险
你手里拿着 1000 个 ETH,突然市场暴跌 10%,你瞬间亏掉 10%。这就是库存风险。做市商必须时刻管理自己的净头寸,不能裸多或裸空。
1.3.2 逆向选择风险
这个有点绕,我解释一下。当市场出现重大消息时,信息优势方会迅速下单。做市商的报价还没来得及更新,就被「吃掉」了。结果就是:做市商在高位买入,低位卖出,亏得血本无归。
我曾经在 2020 年 3 月 12 日(312 事件)亲眼目睹一个做市商账户,因为报价更新速度跟不上,几分钟内亏损了 200 万美金。嗯,那场面,记忆犹新。
1.3.3 技术风险
做市商极度依赖系统。网络延迟、服务器宕机、API 故障,任何一个环节出问题,都可能导致巨额亏损。我建议所有做市商团队,至少准备三套冗余系统。
避坑指南:我曾经见过一个团队,只依赖单一交易所的 API。结果交易所升级维护,他们的报价系统直接瘫痪了 2 小时。那 2 小时里,市场剧烈波动,他们亏了 50 万。所以,永远要有 Plan B。
1.4 自动化报价系统概述
手动做市?那是十年前的事了。现在的做市商,全部依赖自动化报价系统。说白了,就是写代码让机器帮你报价。
1.4.1 系统核心模块
一个完整的自动化报价系统,通常包含以下几个部分:
- 行情模块:实时获取市场数据,包括盘口、成交、K线等
- 定价引擎:根据市场状态和库存,计算最优报价
- 风控模块:监控净头寸、最大亏损、报价偏离度等
- 订单管理:负责下单、撤单、查询订单状态
- 日志与监控:记录所有操作,方便事后复盘
1.4.2 系统架构图
下面这张图,是我自己画的一个简化版做市商系统架构。你一看就明白数据是怎么流转的。
1.4.3 一个简单的报价逻辑示例
下面这段代码,是我早期做的一个极简版报价逻辑。虽然简单,但核心思想都在里面了。
def calculate_quote(mid_price, spread, inventory_ratio):
"""
计算做市商报价
:param mid_price: 中间价
:param spread: 价差(百分比)
:param inventory_ratio: 库存偏离度(正数表示多头,负数表示空头)
:return: (bid_price, ask_price)
"""
# 基础价差
half_spread = mid_price * spread / 2
# 库存调整:库存越多,买入价越低,卖出价越高
inventory_adjustment = mid_price * 0.001 * inventory_ratio
bid_price = mid_price - half_spread + inventory_adjustment
ask_price = mid_price + half_spread + inventory_adjustment
return round(bid_price, 2), round(ask_price, 2)
# 示例
mid = 50000.0
spread = 0.001 # 0.1%
inventory = 0.5 # 多头偏离 50%
bid, ask = calculate_quote(mid, spread, inventory)
print(f"Bid: {bid}, Ask: {ask}")
# 输出: Bid: 49975.0, Ask: 50025.0
个人经验:实际生产环境中,报价逻辑远比这个复杂。你需要考虑订单簿深度、历史波动率、对手方行为模型等。但万变不离其宗,核心就是「在控制风险的前提下,赚取价差」。
小结
这一章我们聊了做市商的基本概念、盈利模式、主要风险,以及自动化报价系统的整体框架。说白了,做市商就是靠「流动性」吃饭的中间商。赚钱不容易,亏钱却很快。所以,风控永远是第一位的。
下一章,我们会深入讲解行情数据的获取与处理。到时候我会手把手教你写一个实时的行情订阅模块。嗯,敬请期待。