NautilusTrader
一句话简介
基于Rust的高性能量化交易平台,支持回测、实盘交易与多资产策略执行。
标签
适用应用场景
- 历史市场数据回测与策略验证
- 实时行情监控与自动化交易
- 跨市场投资组合与风险管理
- 实盘交易执行与绩效分析
README 中文摘要
项目简介
NautilusTrader 是一款开源、生产级的 Rust 原生多资产、多交易场所交易引擎。系统将研究、确定性回测与实盘执行统一在同一事件驱动架构中,Python 作为策略逻辑、配置与编排的控制平面。这一分层既保留了编译型引擎的性能与安全性,又兼具 Python 在系统组合与策略开发上的灵活性。关键任务负载也可完全使用 Rust 实现。
同一套执行语义和确定性时间模型在研究环境与生产环境完全一致,策略可从研究直接迁移到实盘,无需改动代码,从而实现"研究即生产"的部署一致性。
项目名称取自古希腊语"sailor"(水手)与 naus(船),鹦鹉螺壳的对数螺旋生长结构象征着模块化、可扩展的系统设计哲学。
核心特性
- 高性能:Rust 核心,搭配
mimalloc内存分配器与tokio异步网络运行时。 - 可靠性:Rust 类型系统与线程安全保证;可选 Redis 持久化后端。
- 可移植:支持 Linux、macOS、Windows,可通过 Docker 部署。
- 可扩展:模块化适配器可接入任何 REST API 或 WebSocket 数据源。
- 高级订单:支持
IOC、FOK、GTC、GTD、DAY、AT_THE_OPEN、AT_THE_CLOSE等有效期,以及post-only、reduce-only、冰山等执行指令;支持OCO、OUO、OTO等条件单组合。 - 可定制:可基于缓存(Cache)与消息总线(Message Bus)从零搭建自定义组件或整套系统。
- 回测能力:同时模拟多个交易场所、品种与策略,支持历史报价 Tick、成交 Tick、K 线、订单簿及自定义数据,时间精度可达纳秒级。
- 多场所:可在多个交易场所同时运行做市与跨场所套利策略。
- AI 训练:引擎速度足以训练强化学习(RL)/进化策略(ES)交易智能体。
技术架构
Rust 原生核心提供确定性事件驱动运行时,Python 通过 PyO3 绑定作为控制平面。v2 版本正在逐步替代 v1,v1 仅在 develop_v1 分支接收关键安全补丁;用户安装预编译 wheel 无需 Rust 工具链。
核心价值类型(Price、Quantity、Money)支持两种精度模式:
- 高精度: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。
从源码编译
源码编译需先安装 rustup、clang 与 uv,然后:
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…