NautilusTrader

nautechsystems/nautilus_trader 访问 GitHub ↗
🔤 Rust ★ 25910 ⑂ 0 daily #3 (+120) 抓取 2026-08-18

一句话简介

基于Rust的高性能量化交易平台,支持回测、实盘交易与多资产策略执行。

标签

  • 量化交易
  • Rust
  • 交易系统
  • 算法交易
  • 多资产

适用应用场景

  • 历史市场数据回测与策略验证
  • 实时行情监控与自动化交易
  • 跨市场投资组合与风险管理
  • 实盘交易执行与绩效分析

README 中文摘要

项目简介

NautilusTrader 是一款开源、生产级的 Rust 原生多资产、多交易场所交易引擎。系统将研究、确定性回测与实盘执行统一在同一事件驱动架构中,Python 作为策略逻辑、配置与编排的控制平面。这一分层既保留了编译型引擎的性能与安全性,又兼具 Python 在系统组合与策略开发上的灵活性。关键任务负载也可完全使用 Rust 实现。

同一套执行语义和确定性时间模型在研究环境与生产环境完全一致,策略可从研究直接迁移到实盘,无需改动代码,从而实现"研究即生产"的部署一致性。

项目名称取自古希腊语"sailor"(水手)与 naus(船),鹦鹉螺壳的对数螺旋生长结构象征着模块化、可扩展的系统设计哲学。

核心特性

  • 高性能:Rust 核心,搭配 mimalloc 内存分配器与 tokio 异步网络运行时。
  • 可靠性:Rust 类型系统与线程安全保证;可选 Redis 持久化后端。
  • 可移植:支持 Linux、macOS、Windows,可通过 Docker 部署。
  • 可扩展:模块化适配器可接入任何 REST API 或 WebSocket 数据源。
  • 高级订单:支持 IOCFOKGTCGTDDAYAT_THE_OPENAT_THE_CLOSE 等有效期,以及 post-onlyreduce-only、冰山等执行指令;支持 OCOOUOOTO 等条件单组合。
  • 可定制:可基于缓存(Cache)与消息总线(Message Bus)从零搭建自定义组件或整套系统。
  • 回测能力:同时模拟多个交易场所、品种与策略,支持历史报价 Tick、成交 Tick、K 线、订单簿及自定义数据,时间精度可达纳秒级。
  • 多场所:可在多个交易场所同时运行做市与跨场所套利策略。
  • AI 训练:引擎速度足以训练强化学习(RL)/进化策略(ES)交易智能体。

技术架构

Rust 原生核心提供确定性事件驱动运行时,Python 通过 PyO3 绑定作为控制平面。v2 版本正在逐步替代 v1,v1 仅在 develop_v1 分支接收关键安全补丁;用户安装预编译 wheel 无需 Rust 工具链。

核心价值类型(PriceQuantityMoney)支持两种精度模式:

  • 高精度:128 位整数,最多 16 位小数,值域更大。
  • 标准精度:64 位整数,最多 9 位小数。

默认官方 Python wheel 在所有平台均为高精度模式;纯 Rust crate 默认标准精度,需通过 Cargo 特性开关启用高精度。

[dependencies]
nautilus_model = { version = "*", features = ["high-precision"] }

支持的集成

项目采用适配器架构,可接入加密交易所(CEX/DEX)、传统市场(外汇、股票、期货、期权)以及预测/投注交易所。当前稳定的集成包括:AX Exchange、Betfair、Binance、BitMEX、Bybit、Coinbase、Databento、Deribit、Derive、dYdX、Hyperliquid、Interactive Brokers、Kraken、Lighter、OKX、Polymarket、Tardis 等。

分支与发布

  • master:已发布版本的稳定分支,建议生产使用。
  • nightly:每日 14:00 UTC 自动构建的快照分支,供早期测试。
  • develop:开发分支,供贡献者提交新功能。

版本遵循双周发布节奏。v2 发布候选版本使用 2.0.0rcN 编号,仅供社区测试,不建议用于真实资金生产环境。

安装方式

推荐使用 uv 包管理器搭配官方 CPython,并在虚拟环境中安装。

从 PyPI 安装

pip install -U nautilus_trader

安装 v2 发布候选版本:

pip install -U nautilus_trader --pre

安装可视化附加组件(用于交互式图表与研报):

pip install -U "nautilus_trader[visualization]"

从 Nautech Systems 软件包索引安装

该索引符合 PEP-503,提供 stable 与开发版 wheel:

pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple

若希望回退到 PyPI,可改用 --extra-index-url

从源码编译

源码编译需先安装 rustupclanguv,然后:

git clone --branch develop --depth 1 https://github.com/nautechsystems/nautilus_trader
cd nautilus_trader
make sync
export PYO3_PYTHON="$PWD/.venv/bin/python"
make build

Linux 上需额外设置 LD_LIBRARY_PATH 以定位 uv 管理的 Python 运行时库。

Makefile 常用命令

项目提供 Makefile 简化开发流程,常用目标包括:

  • make install:以 release 模式安装全部依赖与附加组件。
  • make sync:仅同步 Python 依赖,不构建包。
  • make build:以 release 模式构建并安装。
  • make build-debug:以 debug 模式构建并安装。
  • make build-wheel:构建 release 模式 wheel。
  • make cargo-test:使用 cargo-nextest 运行所有 Rust 测试。
  • make docs:构建 Sphinx Python 文档与 Cargo Rust 文档。
  • make pre-commit:运行全部 pre-commit 检查。

平台要求

平台 Rust Python
Linux (x86_64) 1.97.1 3.12-3.14
Linux (ARM64) 1.97.1 3.12-3.14
macOS (ARM64) 1.97.1 3.12-3.14
Windows (x86_64) 1.97.1 3.12-3.14

Linux 用户在安装二进制 wheel 前,请确认 glibc 版本不低于 2.35。

安全机制

项目在开发与发布全流程实施多层防护:CODEOWNERS 守护关键基础设施、依赖锁文件使用加密校验和、强制签名提交、预提交阶段运行 Gitleaks 与 Zizmor 审计、CodeQL 静态分析、cargo-audit/cargo-deny/cargo-vet/pip-audit 定期扫描、关键适配器与签名层使用 cargo-fuzz 模糊测试。Python 工件附带 SLSA 构建溯源,Docker 镜像使用 Sigstore cosign 签名并附带 SPDX SBOM 证明。

漏洞可通过 GitHub Security Advisories 私密报告,通常在 48 小时内确认、30 天内修复关键问题。

路线图与定位

项目优先聚焦 Rust 原生核心稳定化、文档完善与代码人体工学;明确不涉及 UI 仪表盘、分布式编排与内置 AI/ML 工具,以保持核心引擎的精简。新集成提案需先通过 RFC Issue 讨论。

摘要更新于 2026-08-18 00:30:44 · 原文 36919 字符 · md5 cdfc22a0008a…