一、做市商基础:什么是做市商?核心盈利模式与风险来源

大家好,我是老张。在量化交易这行摸爬滚打了十几年,今天咱们聊聊做市商。

很多人一听到「做市商」,就觉得是高大上的华尔街机构。其实说白了,做市商就是市场的「中间商」。你想想看,菜市场里有人专门倒腾蔬菜,低价收、高价卖,赚个差价。做市商干的事,本质上差不多。

只不过,我们倒腾的不是白菜,是股票、期货、期权这些金融产品。我们不是等客户上门,而是主动在市场上挂出买单和卖单,随时准备跟任何人交易。

1.1 做市商到底在干什么?

我习惯用一个简单的例子来解释:

假设现在某只股票,市场最新成交价是100元。作为做市商,我会同时挂两个单子:

  • 买单(Bid):99.98元,买1000股
  • 卖单(Ask):100.02元,卖1000股

你看,我买的价格比市场价低2分钱,卖的价格比市场价高2分钱。如果有人想卖,他会卖给我99.98;如果有人想买,他会从我这里买100.02。这一来一回,我就赚了4分钱的差价。

这就是做市商最核心的盈利模式——买卖价差(Bid-Ask Spread)

核心公式:

做市商利润 = (卖价 - 买价) × 成交量 - 交易成本 - 库存风险成本

嗯,这里要注意。价差不是白赚的。你想想看,我挂单之后,万一市场突然暴跌呢?我手里囤了一堆高价买的货,那就亏大了。所以做市商本质上是在用「承担风险」来换取「稳定收益」。

1.2 做市商的三大盈利来源

我在项目中遇到过不少新手,以为做市商就是躺着赚价差。其实没那么简单。真正赚钱的来源,我总结为三类:

盈利来源 说明 我的经验
买卖价差 低买高卖,赚取bid-ask之间的差价 这是最基础的,但竞争激烈,现在很多品种价差只有1-2个tick
返佣/手续费减免 交易所给做市商的流动性奖励 有些交易所返佣比价差还高,这才是大头
库存增值 持有头寸期间,价格朝有利方向变动 这个看运气,但优秀的做市商会主动管理

说白了,做市商不是靠「预测涨跌」赚钱,而是靠「提供服务」赚钱。我们提供流动性,让市场更活跃,交易所给我们奖励,交易者给我们价差。

1.3 风险来源:做市商最怕什么?

我曾经在一次加密货币做市中,一夜之间亏了六位数。为什么?因为遇到了极端行情。做市商的风险,我归纳为四个字——库存风险

具体来说,有这几类:

  • 方向性风险:手里囤了多头,市场暴跌。或者空了,市场暴涨。
  • 波动率风险:市场突然剧烈波动,价差来不及调整,被套利者吃掉。
  • 流动性风险:想平仓的时候,对手盘消失了,出不了货。
  • 模型风险:定价模型错了,挂单价格不合理,被市场反复收割。

避坑指南:

我曾经犯过一个低级错误——在重大新闻发布前,没有缩小头寸规模。结果数据一出,市场瞬间跳空,我的库存直接穿仓。从那以后,我养成了一个习惯:重大事件前,必须把库存降到零

1.4 做市商的核心逻辑图

为了让你更直观地理解,我画了一张图。这张图我用了很多年,每次带新人都会拿出来讲:

做市商核心逻辑图 做市商 买方(Bid) 卖方(Ask) 卖出 买入 盈利来源 • 买卖价差(Bid-Ask Spread) • 交易所返佣/手续费减免 • 库存增值(方向性收益) 风险来源 • 方向性风险(库存敞口) • 波动率风险(跳空) • 流动性风险(无法平仓) 核心:用承担风险换取稳定收益

这张图你看懂了吗?做市商站在中间,左手接买方的卖单,右手给卖方提供买单。我们赚的是「服务费」,但代价是手里会留下库存。库存就是风险。

1.5 一个简单的做市策略示例

光说不练假把式。我写个最简单的Python代码,模拟一个做市商的行为:

# 最简单的做市商策略示例
# 假设当前市场价格为100元

current_price = 100.0
spread = 0.04  # 价差4分钱

# 挂出买单和卖单
bid_price = current_price - spread / 2  # 99.98
ask_price = current_price + spread / 2  # 100.02

print(f"买单价格: {bid_price:.2f}")
print(f"卖单价格: {ask_price:.2f}")

# 模拟成交
# 如果有人卖出,我们买入,库存增加
# 如果有人买入,我们卖出,库存减少

inventory = 0  # 初始库存为0

# 假设来了一个卖单,我们买入100股
inventory += 100
print(f"买入后库存: {inventory} 股")

# 假设来了一个买单,我们卖出50股
inventory -= 50
print(f"卖出后库存: {inventory} 股")

# 库存风险:如果价格跌到99元,我们手里的50股就亏了
price_drop = 99.0
loss = inventory * (price_drop - bid_price)
print(f"价格跌到99元时,库存亏损: {loss:.2f} 元")

你看,代码很简单。但实际生产中,要考虑的东西多得多——订单簿深度、市场冲击、延迟、对手方行为等等。这个我们后面章节会详细讲。

我的建议:

刚开始学做市商,不要一上来就搞复杂模型。先理解「价差」和「库存」这两个核心概念。把这两个搞透了,后面的风险管理、对冲策略才能学得扎实。

1.6 小结

做市商不是神秘的黑盒子。说白了,就是:

  • 赚什么钱? 赚价差、赚返佣、偶尔赚库存增值。
  • 担什么风险? 担库存风险、担波动风险、担流动性风险。
  • 核心能力? 定价能力 + 风险管理能力。

我见过太多人,以为做市商是印钞机,结果一上来就亏得血本无归。记住一句话:做市商赚的是「辛苦钱」,不是「运气钱」。每一分利润背后,都有对应的风险在等着你。

好了,这一章就到这里。下一章我们聊聊具体的定价模型——怎么确定你的买单和卖单该挂什么价格。


专注资料整理