做市商

“做市商”(Market Maker)

“做市商”(Market Maker)是一类特殊的金融机构或个人,他们在金融市场中 持续提供买入价和卖出价,通过撮合买卖双方,来为市场提供流动性。简单来说,他们扮演的是“中间商”的角色,让市场更活跃、更容易成交。


📌 一句话定义:

做市商是通过不断报价买入和卖出某种金融资产来提供市场流动性的机构或交易者。


🧠 你可以这样理解:

假设你要卖出某只冷门股票,但市面上一时没有人买,怎么办?
这时做市商就会站出来说:“我来买。”
如果有人想买,但找不到卖家,做市商也会说:“我来卖。”
他们始终双边报价,保证市场有人愿意买、也有人愿意卖


🧾 做市商的工作机制:

角色 行为 意义
报价买入 提供买入价(Bid) 吸收流动性
报价卖出 提供卖出价(Ask) 提供流动性
赚取差价 买入价和卖出价之间的“价差”(Spread) 做市商的主要收入来源
控制库存 控制手中资产头寸,不承担过多市场方向风险 以稳定为主

💡 举例说明:

  • 做市商报价:
    比如你看到某股票:

    1
    2
    买入价(Bid):10.00
    卖出价(Ask):10.10

    这说明做市商愿意用 10 元买你的股票,也愿意以 10.1 元卖给别人。
    如果你现在买入,做市商立刻赚 0.1 元差价。


✅ 做市商的作用:

  1. 提高流动性(让交易更容易成交)
  2. 缩小买卖价差(让交易成本更低)
  3. 保持市场稳定(防止波动过大)

🏦 常见在哪些市场?

市场类型 是否有做市商
股票市场 ✅(特别是创业板、新三板)
外汇市场 ✅(如花旗、汇丰等银行)
期权市场 ✅(如高盛、Susquehanna)
加密货币市场 ✅(如Jump Crypto、Wintermute)

⚠️ 做市商不是无风险:

虽然他们赚价差,但如果市场突然大跌、或者持仓失控,他们也可能亏损。做市商通常有风险控制机制(如对冲、限仓等)。


如果你想了解 做市商与普通交易者的区别,或 做市商策略是如何运作的,我也可以详细讲解。需要吗?

做市商与普通交易者的区别

做市商(Market Maker)与普通交易者(Trader)的主要区别在于 角色定位、交易目的、行为模式、风险承受方式等多个方面。以下是全面对比:


🔍 一张图看懂核心区别

维度 做市商 普通交易者
📌 角色 市场的“撮合者”和“报价人” 市场的“参与者”和“价格接受者”
🎯 目标 提供流动性、赚取买卖价差(spread) 赚取买低卖高(方向性收益)
🔄 报价方式 双边报价(同时报买价和卖价) 单边下单(要么买入,要么卖出)
💰 收益来源 买卖之间的“价差” + 某些市场补贴 投资收益(价差、波动、趋势等)
⚖️ 风险管理 高频调仓,严格控制头寸方向性风险 可能承担较大方向性风险
🧰 工具 自动化做市算法、风险对冲模型 技术分析、基本面分析、消息驱动等
📈 交易频率 极高(高频做市、每天上千笔) 低至中(可能一天几笔或几天一笔)
🏦 资金规模 通常较大(机构级别) 中小投资者或散户为主
🔧 市场角色 “制造市场”(保持市场运作) “交易市场”(博取市场机会)

🧠 举个具体例子:

你是普通交易者:

你看好一只股票未来会上涨,就在 10 元买入,等到涨到 12 元卖出,赚 2 元差价。你是顺势而为,承担了方向风险。

做市商怎么做:

他在 9.95 元挂买单,在 10.05 元挂卖单,只要有人买入或卖出,他就同时赚取这 0.1 元的“买卖差价”。他不赌方向,只要市场有交易,他就可能获利。


🧭 举例市场定位:

市场 做市商作用 普通交易者作用
美股小盘股 主动提供报价、吸引流动性 投机短线波动或长线持有
外汇市场 银行或机构做市提供买卖价 投资者做多/做空不同货币对
加密货币 做市机器人保持流动性 散户炒币,赌行情涨跌

✅ 总结一句话:

做市商靠“吃差价”稳定赚钱,普通交易者靠“赌方向”波动赚钱。


如你感兴趣,我还可以继续扩展:

  • 做市商如何实现无风险套利?
  • 做市商使用哪些算法策略?
  • 普通交易者能否变成做市商?
  • 做市商在币圈的灰色操作风险?

可以继续深入讲。你对哪个更感兴趣?

做市商策略是如何运作的

做市商策略的核心在于:不断提供买入和卖出报价,赚取买卖差价(spread),同时通过风控机制控制风险,保持中性头寸。这类策略大多数是自动化、量化驱动的,特别是在股票、期货、外汇、加密货币等高频市场。


🧠 一句话理解:

做市商不是靠赌对方向赚钱,而是靠频繁交易“赚差价”,通过算法和风险对冲保持稳健。


🧰 做市商策略核心组成部分:

1. 定价模型(Fair Value Model)

做市商需要知道某资产的“理论价格”,这通常基于:

  • 实时市场行情(盘口、成交)
  • 标的资产的波动率
  • 期货与现货之间的关系
  • 利率、套利模型、订单流等

🔹 简单模型:

公允价 = 最新成交价
🔹 复杂模型(比如期权):
公允价 = Black-Scholes 模型定价 + 风险溢价


2. 双边报价策略(Bid-Ask Quoting)

一旦知道了“公允价”,做市商就会同时报出:

  • 买入价(Bid) = 公允价 - spread/2
  • 卖出价(Ask) = 公允价 + spread/2

➡️ 目的:赚取中间的“差价”

🔸 示例:
假设系统计算出的BTC公允价是 30,000 美元,做市商可能报:

  • Bid:29,990
  • Ask:30,010
    → 他赚取 20 美元差价(只要有人来买或卖)

3. 库存管理(Inventory Control)

做市商会因为成交而积累头寸(比如越卖越多,形成空头风险),这时候需要控制持仓风险。

📉 做法:

  • 调整报价:如果手中BTC太多,就下调Bid、提高Ask,减缓买入,鼓励卖出
  • 对冲交易:去其他交易所平仓或使用衍生品对冲

🎯 目标:头寸尽量中性,不押注行情方向


4. 动态调整算法

做市商会根据市场环境(波动率、成交量、对手方行为)动态改变策略参数:

市场状态 报价行为
市场波动大 拉大spread,控制风险
成交稀少 主动报更激进价格抢交易
库存不平衡 调整价格,引导市场方向成交
高频抢单对手多 提高更新频率,减少被吃掉

5. 盈利来源

来源 说明
✅ Spread利润 每次成交赚取买卖价差
✅ 流动性奖励 某些交易所会返佣给高频做市商(尤其是币圈)
✅ 套利收益 在多个市场或品种之间做套利(跨市场、跨期、跨品)
✅ 对冲优化 利用波动套利、时间价值挖掘额外收益

📊 做市商 vs 高频交易者(HFT):

特点 做市商 高频交易者
报价方式 主动双边报价 看机会迅速下单
策略类型 稳定赚spread 多策略并行(趋势、反转、套利)
风险偏好 低风险、中性头寸 有时承担方向性
收益模式 多次小额盈利 多种机会源快速获利

✅ 举个真实例子(币圈做市商):

比如你是币圈做市商,给某新上线代币 USDT/ABC 报价:

1
2
3
4
公允价:1.00 USDT
报单:
Bid0.995 买入10000 ABC
Ask1.005 卖出10000 ABC

用户买入,你卖出,赚0.005;
用户卖出,你买入,再倒给其他交易所套利或平仓。

一天中反复这样成交几千次,哪怕一单赚0.005 USDT,只要交易量大,利润就可观。


⚠️ 风险点

  • 极端行情:闪崩时会被一边吃穿,造成巨大浮亏
  • 对手盘信息优势:被机构高频“盯单”、套利
  • 流动性枯竭:没人成交,自己积压风险
  • 系统失控:算法bug,导致连环错误挂单

如果你想深入了解:

  • 具体的做市算法公式(如 Avellaneda-Stoikov 模型)
  • 如何用 Python 实现简单做市机器人
  • 币圈/股市中有哪些知名做市机构

我也可以继续展开,告诉你从零构建做市系统的核心逻辑。需要吗?

从零构建做市系统的核心逻辑

从零构建一个做市系统,其实就像构建一个“永不休息的自动交易机器人”,它持续观察市场、定价、挂单、调整库存、控制风险。

这套系统大致由 6大核心模块 组成,每一个都可以单独开发、测试和优化。以下是完整的构建逻辑和步骤:


🧱 做市系统的核心模块概览

模块编号 名称 功能简述
1️⃣ 市场数据模块 实时获取市场行情数据(盘口、成交)
2️⃣ 定价模型(Fair Pricing) 动态估算资产的“合理价格”
3️⃣ 报价引擎(Quote Engine) 生成买卖报价(Bid/Ask)
4️⃣ 订单管理系统(OMS) 提交/撤销挂单,监听成交回报
5️⃣ 库存风险控制(Inventory Risk Control) 管理头寸,动态调整策略参数
6️⃣ 策略参数与风控机制(Risk & Config) 控制最大挂单量、滑点容忍度等风险规则

🛠️ 模块拆解与构建方法

1️⃣ 市场数据模块

目的:实时获取市场信息
常见数据

  • order book(买一/卖一/深度)
  • ticker(最新成交价)
  • trades(每一笔成交)
  • account info(余额、持仓、挂单)

🧩 如何实现:

  • REST API + Websocket 结合
  • 每秒更新一次快照,websocket监听异动
1
2
3
4
5
# 示例:获取币安最新orderbook
import requests
orderbook = requests.get("https://api.binance.com/api/v3/depth?symbol=BTCUSDT&limit=5").json()
bid_price = float(orderbook['bids'][0][0])
ask_price = float(orderbook['asks'][0][0])

2️⃣ 定价模型(Fair Value)

核心逻辑:估算当前“合理”交易价格
最基础模型:

1
fair_value = (best_bid + best_ask) / 2

更高级的模型考虑:

  • EMA加权中间价
  • Black-Scholes(用于期权)
  • VWAP、TWAP
  • 其他交易所对冲价格(跨市场定价)

3️⃣ 报价引擎(Quote Engine)

核心逻辑:在 fair_value 基础上挂买卖单

1
2
3
spread = 0.002  # 假设2个点
bid = fair_value * (1 - spread / 2)
ask = fair_value * (1 + spread / 2)

根据库存动态调整:

1
2
3
# 如果当前持有太多 BTC,就提高 ask,降低 bid
bid *= 0.995 if inventory > threshold else 1
ask *= 1.005 if inventory > threshold else 1

4️⃣ 订单管理系统(OMS)

  • 提交挂单
  • 撤销挂单
  • 接收成交回报,更新库存

📌 注意:

  • 订单ID、状态跟踪
  • 异常处理(订单失败、延迟)

5️⃣ 库存风险控制模块

目标:让做市商“中性”,不过多赌方向

典型策略:

  • 设定最大允许持仓上限 max_position
  • 当持仓偏离太多 → 缩小一侧报价 or 主动对冲
  • 允许动态调整挂单数量:
1
quote_size = base_size * (1 - abs(inventory) / max_position)

6️⃣ 风控机制

包括但不限于:

  • 每分钟最大订单数
  • 单笔最大成交额
  • 累计亏损超过某阈值 → 停止做市
  • 高频撤单限制

🧠 工作循环逻辑(主流程)

1
2
3
4
5
6
7
8
while True:
1. 获取实时行情数据
2. 计算公允价格
3. 根据库存生成 bid/ask
4. 取消老订单,提交新订单
5. 监听成交,更新库存与状态
6. 动态调整报价策略
7. 记录日志,检查风控

🔄 一个最简版本伪代码(币圈)

1
2
3
4
5
6
7
8
9
10
11
12
while True:
market = get_orderbook()
fair_price = (market['bid'] + market['ask']) / 2

bid_price = fair_price * 0.999
ask_price = fair_price * 1.001

cancel_all_orders()
place_limit_order("buy", bid_price, size)
place_limit_order("sell", ask_price, size)

sleep(3)

📊 日志与监控

必须有完善的日志与告警:

  • 每笔订单的响应与成交记录
  • 持仓变化曲线
  • 盈亏追踪(MTM浮盈、成交收益)
  • 报价行为与撤单行为日志

✅ 进阶功能可选:

功能 描述
跨市场做市 同时在多个交易所提供流动性
自动套利 价格差异过大时进行对冲交易
多品种管理 不同币种/股票自动独立做市
强化学习 学习订单簿行为、用户流动性模式

🚧 风险提示

  • 黑天鹅事件会导致一侧报价被吃光,形成爆仓
  • 某些交易平台滑点极大,做市反成亏市
  • 数据丢包、网络延迟将造成挂单错位
  • 法规风险:有些国家对“自动做市行为”需备案

📦 最后总结一句话:

一个做市系统的本质就是 —— 实时计算价格,合理挂单,持续调整风险,在价格波动中赚每一分钱的差价。


如果你希望我:

  • 提供一个实际可运行的 Python 简版做市机器人源码
  • 帮你设计一个用于模拟测试的回测框架
  • 推荐一些开源做市系统作为参考(如 Hummingbot)

我可以继续帮你构建或实战部署。需要哪一块?

参考资料