← 返回全部文章
·约 12 分钟PPT

一个反共识的起点:做市回测最大的坑,不是策略

量化交易

配套媒体

本页对应的 PPT 与演示视频

HFTENGINE-recommend.mp4
PPT
HFTENGINE-recommend.pptx浏览器不能直接打开 PPT,下载后用 PowerPoint / WPS / Keynote 查看
下载没反应?点这里复制直链

侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。

PPT../../HFTENGINE-recommend.pptx
视频../../HFTENGINE-recommend.mp4
本文目录
  1. 📌 什么是 HFTENGINE?
  2. ✨ 六大数据面板
  3. 🔬 逐帧回放:三个关键视角
  4. 视角 1:订单簿——引擎眼中的盘口
  5. 视角 2:队列位置——你的单排第几
  6. 视角 3:双通道延迟——数据晚到、订单慢响应
  7. 🎬 数据从哪来:自己录,零 API key
  8. 🛠️ 快速上手(Windows,一次配置)
  9. 📊 与常规回测框架对比
  10. 💡 适用场景
  11. 💰 开源协议
  12. 🎯 总结

📌 核心价值:它刻意不算 PnL,只把订单簿逐帧放给你看

HFTENGINE 是 hftbacktest 做市回测引擎之上的回放控制台:真实 Binance Futures 订单簿数据、tick 级重放、每个挂单的队列位置、feed 与订单双通道延迟——它不告诉你"赚没赚",只告诉你"引擎当时看到了什么、决定了什么"。

⚠️ 风险提示:本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。

封面图


大多数人做回测,第一眼看的是权益曲线:曲线漂亮,策略就能用。

但在做市(market making)这个场景里,这个习惯是危险的。做市的边际来自盘口微观结构——你挂单排在队列第几位、数据到达晚了多少微秒、订单响应慢了多少——这些变量在 K 线级回测里全部不存在。曲线漂亮,可能只是"假装成交"的假象:回测引擎默认你的单永远排第一、数据永远即时到达,于是每一笔成交都比真实世界更顺滑。

HFTENGINE 的立场很明确(README 开篇就写了 "Before you think about trading this"):

它是回测器,不是交易机器人——它不计算也不显示 PnL/权益,不放任何真实订单。

它把"结果"从视野里拿掉,只保留"过程":引擎逐帧看到什么、决定什么、排队多深、延迟多少。这是把回测从"验证策略好不好用"拉回到"验证执行保真度够不够"——后者才是前者的前提。


📌 什么是 HFTENGINE?

HFTENGINE 是一个针对 hftbacktest 做市回测的回放控制台。它运行 hftbacktest 自带的教程策略(Queue-Based Market Making、High-Frequency Grid Trading 等),基于真实录制的 Binance USDT-M 期货订单簿数据,把引擎的决策过程逐帧可视化:

  • 本地订单簿(L2 深度重建)
  • 每个 resting order 及其交易所侧队列位置估算
  • feed 延迟与订单延迟
  • 市场成交与执行
  • 采集器录制的原始 feed
  • 引擎自身运行统计

技术栈是三层:Rust runner(hftbacktest crate 之上的策略+帧记录器)+ Vite + TypeScript 文本模式仪表板(IBM VGA 位图字体风格)+ Python 工具链(录制/转换/会话构建)。

GitHub stars GitHub forks

核心定位:执行保真度回放台——先看引擎"看见的世界",再谈策略。


✨ 六大数据面板

功能面板

横屏下,六个面板同屏铺开,一帧一帧地走:

横屏全仪表板

仪表板支持 URL 参数控制布局、面板开关、缩放与播放;横屏竖屏两套布局,手机竖排模式也能看完整会话。

竖屏布局


🔬 逐帧回放:三个关键视角

视角 1:订单簿——引擎眼中的盘口

订单簿面板重建本地 L2 深度:最优买卖价、盘口各档挂单、tick size。策略的定价决策(reservation price、half spread)全部基于这张表。

订单簿焦点

视角 2:队列位置——你的单排第几

这是多数回测框架缺失的一块。HFTENGINE 对每个 resting order 给出交易所侧队列位置估算:你挂单的队列前面还有多少量。做市成交模拟直接依赖这个估算——队列排不到头,挂单就不该成交。

队列焦点

视角 3:双通道延迟——数据晚到、订单慢响应

feed 延迟(行情到达时延)和订单延迟(下单到交易所响应时延)是两条独立通道,分别计时。回测里,策略"看见"盘口的时刻、订单"落地"的时刻,都按录制的真实时延推进,而不是假设即时。

延迟焦点


🎬 数据从哪来:自己录,零 API key

HFTENGINE 的工具链可以从 Binance 公共 websocket 直接录制订单簿与成交流——不需要 API key,不碰账户:

# 启动录制(公共 websocket,无需 API key)
.venv/Scripts/python tools/collect.py start --symbols BTCUSDT ETHUSDT
# 查看状态
.venv/Scripts/python tools/collect.py status
# 优雅停止(Ctrl+C 收尾,完成 gzip 压缩)
.venv/Scripts/python tools/collect.py stop

采集器焦点

录完的原始数据一条命令转成可回放会话:

.venv/Scripts/python tools/session.py --raw data/raw/btcusdt_20260915.gz --name btcusdt_20260915
cd dashboard && npm run dev   # http://127.0.0.1:5180/?session=btcusdt_20260915

仓库内置 data/sample/ 示例数据,克隆下来就能先回放官方样本会话。


🛠️ 快速上手(Windows,一次配置)

# 前置:Rust 工具链(MSVC)、Python 3.11+(uv)、Node 18+
git clone --recursive https://github.com/mirkovicdev/hftengine
cd hftengine
uv venv --python 3.13 .venv
uv pip install --python .venv/Scripts/python.exe hftbacktest numpy polars numba
(cd hftbacktest && cargo build --release -p collector)
(cd runner && cargo build --release)
(cd dashboard && npm install)

注意:hftbacktest 是 git submodule,必须 --recursive 克隆,或事后执行 git submodule update --init。

仓库结构很干净:

hftengine/
  hftbacktest/   nkaz001/hftbacktest 的克隆(Rust crate + Python 包 + 数据收集器)
  patches/       对该克隆的唯一改动:只读队列位置 getter
  runner/        Rust binary:策略 + 帧记录器
  dashboard/     Vite + TypeScript 回放 UI(文本模式,IBM VGA 位图字体)
  tools/         collect.py / prepare.py / session.py / hbr.py
  data/          raw/ npz/ latency/ recordings/ sample/

值得注意的细节:patches/ 里对 hftbacktest 的改动只有一处——加只读队列位置 getter。回放台是"引擎之上的观察层",不动引擎内部。


📊 与常规回测框架对比

对比表

一句话总结差异:常规框架回答"策略赚不赚",HFTENGINE 回答"你的成交假设有多真实"。它不替代策略研究框架,而是给执行假设做体检。


💡 适用场景

  • 做市策略研究者:验证队列位置、延迟建模是否扭曲了你的成交假设
  • HFT 回测质检:在信任任何策略回测之前,先回放一段真实数据看看引擎的"视野"
  • 教学/演示:文本模式仪表板逐帧展示"做市引擎在 tick 级世界里的决策过程"
  • ❌ 不适合:要权益曲线、要参数寻优、要实盘下单的场景(它刻意不做这些)

💰 开源协议

GitHub 仓库:mirkovicdev/HFTENGINE(⭐226,2026-09 新建,根目录附 LICENSE 文件) 上游引擎:nkaz001/hftbacktest(文档见 hftbacktest.readthedocs.io)

💡 数据零门槛:录制走公共 websocket,无需 API key,无需付费数据源。


🎯 总结

HFTENGINE 的价值不在"多了一个回测工具",而在它把做市回测的注意力从权益曲线拽回到执行保真度:真实录制的订单簿、tick 级逐帧重放、队列位置估算、双通道延迟计时——所有让"回测成交"和"实盘成交"产生偏差的变量,它都摆到台面上给你看。

先验证引擎看见的世界是真的,再相信它算出来的结果。

推荐指数: ⭐⭐⭐⭐(做市回测/执行保真度方向是独一档;项目 2026-09 新建,生态仍在早期)

适合人群: 做市策略研究者、HFT 回测质检、想理解 tick 级执行细节的量化工程师

立即体验: GitHub 仓库


数据截至 2026-09-21,最新信息请以仓库为准。