一、做市系统概述

1.1 什么是做市系统

做市系统,说白了就是一套自动报价的机器人。

它的核心任务很简单:同时挂买单和卖单,赚取差价。你想想看,传统交易中你得等对手盘出现,做市商不一样——它主动提供流动性。我在项目中遇到过不少新手,以为做市就是高频交易,其实两者差别挺大的。

做市系统的本质是「双边报价」。它会在买一价挂单,也在卖一价挂单。只要市场波动不大,两边都能成交,赚的就是那个微小的价差。嗯,这里要注意:价差通常只有0.1%甚至更小,靠的是量取胜。

核心特征:

  • 同时提供买入和卖出报价
  • 报价频率极高,通常每秒更新数十次
  • 库存管理是命门,做不好会亏大钱

1.2 做市策略的核心逻辑

做市策略听起来玄乎,其实就三个核心问题:

  1. 报什么价?——定价模型
  2. 报多少量?——仓位管理
  3. 什么时候撤?——风险控制

我个人习惯把做市策略分成两类:

策略类型 核心逻辑 适用场景
被动做市 基于订单簿深度报价 高流动性市场
主动做市 结合预测模型调整报价 波动较大市场

举个例子。被动做市就像摆地摊——你看着周围的价格,稍微低一点买、高一点卖。主动做市则像天气预报——你得预测接下来价格会涨还是会跌,提前调整报价位置。

我曾经踩过一个坑:在波动剧烈的市场里用纯被动策略,结果库存被单向吃光,亏了不少。后来我学乖了,必须加上动态调整机制。

1.3 做市系统的技术栈概览

做市系统对技术要求很高。为什么?因为延迟就是金钱。你报价慢了0.1秒,可能就被别人抢了先机。

我整理了一个典型的技术栈:

层级 技术选型 我的建议
编程语言 C++ / Rust / Java 核心引擎用C++,辅助用Python
网络框架 ZeroMQ / Aeron / 自研UDP 别用HTTP,延迟太高
数据库 Redis / ClickHouse / InfluxDB 实时用Redis,分析用ClickHouse
硬件 FPGA / 低延迟网卡 / 托管服务器 资金充裕就上FPGA

这里有个关键点:做市系统对延迟极其敏感。我见过一个团队用Python做核心引擎,结果每次报价都要等几十毫秒——这在做市领域基本等于自杀。

避坑指南:我曾经以为用Kafka做消息队列没问题,结果发现Kafka的批处理机制会导致报价延迟抖动。后来换成了ZeroMQ的点对点模式,延迟稳定在微秒级。

做市系统的架构通常分三层:

  • 数据层:行情接入、订单簿维护、历史数据存储
  • 策略层:定价引擎、风险管理、仓位计算
  • 执行层:订单管理、交易所接口、延迟监控

下面这张图展示了做市系统的核心流程:

做市系统核心流程 数据层 行情接入 · 订单簿维护 策略层 定价引擎 · 风险管理 执行层 订单管理 · 接口 反馈回路(仓位调整、风险控制) 交易所 监控与日志系统 数据流方向:行情数据 → 策略计算 → 订单执行 → 交易所 虚线表示反馈回路,用于动态调整报价策略 关键性能指标 延迟 < 1ms | 报价更新频率 > 100次/秒 | 订单成交率 > 60%

嗯,这张图基本概括了做市系统的全貌。数据从交易所进来,经过策略层计算,再到执行层下单,同时监控系统全程跟踪。反馈回路是很多新手容易忽略的——没有反馈,策略就是瞎子。

重要提醒:做市系统不是「搭好就能赚钱」的。我见过太多团队把精力花在策略上,忽略了基础设施。结果行情一波动,系统直接崩了。记住:稳定比聪明更重要。

最后说一句:做市系统的技术栈选择,取决于你的交易规模和延迟要求。小团队用Python+Redis也能跑,但要做到专业级别,C++和FPGA几乎是标配。我个人建议从简单开始,逐步迭代——别一开始就想搞个大而全的系统。

专注资料整理