1. 报价引擎概述:什么是做市商报价引擎

做市商报价引擎,说白了就是一套自动计算并发送买卖报价的系统。我刚开始接触这个领域时,觉得它不就是个「自动发单机器人」吗?后来在实盘环境中摔打了几次才明白——这东西远比想象中复杂。

你想想看,一个合格的报价引擎,需要在毫秒级别内完成市场数据接收、风险计算、报价生成、订单发送这一整套流程。我在项目中遇到过最极端的情况:某次加密货币市场剧烈波动,引擎每秒要处理超过10万次报价更新。嗯,那时候我才真正理解「引擎」这两个字的分量。

1.1 核心功能

报价引擎的核心功能,我归纳为以下四点:

  • 实时定价:基于市场深度、订单簿状态、历史波动率等因素,动态计算买卖报价。说白了就是「现在这个价格,我该不该报?报多少?」
  • 风险控制:包括库存管理、最大敞口限制、报价偏离度检查等。我曾经见过一个新手团队,因为没做库存限制,一夜之间被套了500个BTC——教训惨痛。
  • 订单管理:负责报价的发送、撤单、重报。这里有个坑:交易所的API限频策略各不相同,处理不好就会被封。
  • 性能监控:延迟追踪、成交率统计、异常告警。没有监控的引擎,就像蒙眼开车。

核心指标:报价引擎的成败,通常看三个数字——延迟(<1ms)、成交率(>60%)、库存周转率。这三个指标互相制约,需要精细调优。

1.2 业务价值

做市商报价引擎的价值,体现在三个层面:

层面 价值点 我的经验
交易层面 赚取买卖价差,降低交易成本 好的引擎能把价差从5个基点压到1个基点以内
市场层面 提供流动性,稳定市场价格 我记得2020年3月那次暴跌,很多做市商直接下线了,但坚持报价的团队反而赚了大钱
技术层面 沉淀低延迟系统架构能力 这套技术栈可以复用到高频交易、套利系统上

避坑指南:我曾经以为报价引擎的核心是「快」,后来发现「稳」比「快」更重要。一个偶尔卡顿但报价稳定的引擎,比一个时快时慢的引擎更容易赚钱。

1.3 典型应用场景

不同市场的报价引擎,侧重点完全不同。我分别说说:

加密货币市场

这是最「卷」的领域。交易所多、品种多、波动大。我建议重点关注:

  • 多交易所统一管理(Binance、OKX、Coinbase等)
  • 处理分叉、空投等特殊事件
  • 应对极端波动(比如LUNA事件那种)

股票市场

监管严格,规则复杂。我记得做美股做市时,最头疼的是处理「最佳报价」规则——你不能随便报,必须遵守NBBO(全国最佳买卖报价)。

  • 遵守Reg NMS等监管规则
  • 处理盘前盘后交易时段
  • 应对财报发布等事件驱动

外汇市场

流动性分散,点差极薄。外汇做市商的核心挑战是:

  • 处理多家流动性提供商的报价聚合
  • 管理隔夜利息(Swap)
  • 应对央行干预等黑天鹅事件

注意:不同市场的报价引擎架构差异很大。不要试图做一个「万能引擎」——我在项目中见过太多这种尝试,最后都失败了。专注一个市场,把它做透。

1.4 课程整体架构

这门课共30章,我把它分成四个阶段:

  1. 基础篇(1-8章):报价引擎的核心概念、数据结构、基础算法。这部分我会手把手带你写一个最小可用的报价引擎原型。
  2. 进阶篇(9-16章):性能优化、风险模型、多资产支持。这里会涉及C++和Python的混合编程。
  3. 实战篇(17-24章):对接真实交易所、回测框架、监控系统。我会分享一些真实踩坑经历。
  4. 高级篇(25-30章):机器学习定价、分布式架构、高频优化。这部分适合想挑战极限的同学。

下面这张图展示了报价引擎的核心架构:

做市商报价引擎核心架构 市场数据层 交易所API | WebSocket | FIX协议 | 市场深度快照 延迟目标:<100μs 计算引擎层 定价模型 | 风险计算 | 库存管理 | 报价生成 核心算法:MM1、Avellaneda-Stoikov、DPP 延迟目标:<500μs 订单管理层 订单路由 | 撤单重报 | 成交确认 | 状态同步 延迟目标:<200μs 监控与风控层(贯穿全流程) 延迟监控 | 风险阈值 | 熔断机制 | 日志审计

这张图展示了报价引擎的四个核心层次。每一层都有明确的延迟目标,加起来就是端到端的延迟预算。我建议你把这个图保存下来,后续每学一章,就回来对照一下,看看当前内容属于哪个层次。

学习建议:不要急着看代码。先理解这张图里的每一层是干什么的,它们之间怎么协作。我在带团队时,新人第一周的任务就是画这张图——画到能闭着眼睛讲出来为止。

好了,第一章就到这里。记住:报价引擎不是「写代码」,而是「设计系统」。后面的章节,我们会一步步把这个系统搭建起来。


公众号:蓝海资料掘金营,微信deep3321