跳转到主要内容
RaoufResearchOS
中文
澳大利亚悉尼当前悉尼时间—
按 Esc 关闭此窗口。
NanoMatch

工程

NanoMatch

NanoMatch 是使用现代 C++20 构建的高性能限价订单簿与撮合引擎。它模拟金融交易所核心操作,以价格与时间优先匹配买卖订单,每秒可执行数百万操作。

  • C++20
  • CMake
  • Google Test
  • 高频交易
  • 系统编程
项目视觉标识静态

01 / 概览

有文档支持的技术栈
  • 01C++20
  • 02CMake 3.20+
  • 03Google Test 1.17
  • 04GitHub Actions CI/CD
  • 05AddressSanitizer
  • 06UBSan

问题

金融交易所需要超低延迟的订单撮合。要从系统层面理解引擎,必须在真实性能约束下从零构建。

解决方案概述

  1. 实现价格与时间优先 FIFO 撮合,支持 Limit、Market、IOC 和 FOK 订单。
  2. 通过哈希表索引实现 O(1) 取消和修改订单。
  3. 构建自定义内存池,移除热路径的堆分配开销。
  4. 为每个交易符号提供独立订单簿,支持多标的。

02 / 证据

证明与验证

  • 吞吐量:每秒 1M+ 订单,单线程合成基准。
  • 完整测试套件含 p50/p99 延迟基准。
  • 18 个测试套件中的 60+ 单元测试全部通过。
  • 每次推送执行 ASan、UBSan、cppcheck 和 clang-format。

03 / 方法

构建

技术栈

  • C++20
  • CMake 3.20+
  • Google Test 1.17
  • GitHub Actions CI/CD
  • AddressSanitizer
  • UBSan
  • 价格与时间优先 FIFO 撮合。
  • 4 种订单:Limit、Market、IOC、Fill-or-Kill。
  • 通过哈希表 O(1) 取消或修改订单。
  • 自定义内存池移除堆分配开销。

安全

  • CI 使用 AddressSanitizer 与 UndefinedBehaviorSanitizer。
  • 18 个套件中的 60+ 单元测试。
  • 每次推送执行 cppcheck 静态分析。
  • 无外部运行时依赖。

搜索

查找项目、论文、文章或页面。

30 / 41 · 搜索结果

↑ ↓ 工作空间导航Enter 打开Esc 关闭