nautechsystems/nautilus_trader

金融

用 Rust 事件驱动引擎跑 Python 策略,让回测与实盘共用同一套代码。

30,870
4,152
Rust
LGPL-3.0
创建于 8 年前

NautilusTrader 值得一看的前提是:你已经在用 Python 写交易策略,并且厌倦了为实盘再维护一套独立实现。它不是开箱即用的系统——交易所凭据、适配器和策略本身仍要你自己准备。

解决什么问题

量化研究者通常先用 Python 做向量化回测,再把逻辑交给别人用事件驱动系统重写一遍上实盘。重写过程正是行为漂移的地方:成交、订单有效期处理和订单状态在两套代码里可能不一致。NautilusTrader 改的是中间这一步:策略在研究、模拟和实盘三种模式下都跑在同一个 Rust 事件驱动引擎上,Python 只负责策略逻辑和配置。得到的结果是回测与实盘共用一套时间模型和执行语义,而不是两套需要对齐的实现。

有什么不同

核心机制是分层:对性能敏感的运行时、撮合语义和时间模型放在 Rust 里,策略组装留在 Python 里。按 README 的说法,同一套架构和执行语义贯穿回测与实盘,策略不必在两个阶段之间重写。回测支持同时跑多个交易场所、多个合约和多个策略,数据可以是报价 tick、成交 tick、K 线、订单簿或自定义数据,时间精度到纳秒。

代价是概念上的门槛。你不是在操作一个 DataFrame,而是要围绕缓存和消息总线组装组件,适配器负责把各家交易所 API 翻译成统一领域模型。OCO/OUO/OTO、冰山单、post-only、reduce-only 这类订单类型都有支持,但最终能不能用取决于适配器有没有翻译。项目还宣传引擎快到可以训练 RL/ES 交易智能体,这只说明它能当训练环境,并不是自带模型。

谁值得试

适合:已有 Python 策略逻辑、跨多个场所或资产类别交易、希望模拟和实盘共用一份代码的个人或小团队系统化交易者。不适合:想要托管机器人、选股筛选器或零代码回测平台的人——这是引擎和框架,不是成品。也不适合不愿学习组件模型的人,因为推荐安装路径本身就对 Python 包管理有要求。

使用条件与边界

安装有两种受支持方式:从 PyPI 或 Nautech Systems 包索引装预编译 wheel,或从源码构建,详见安装说明。维护者推荐用 uv 搭配原生 CPython;Conda 等其他 Python 发行版可能可用但不受官方支持,所以如果你现有数据栈基于 Conda,这是一个需要在投入前先确认的集成问题。Rust 内核也带来平台约束:README 列出 Linux、macOS、Windows 支持,并提供 Docker 部署。

长期维护比安装更值得注意。各集成标注了从 planned 到 stable 的状态,可查适配器文档,也就是说不同场所的覆盖度和成熟度并不一致,务必核对你需要的交易所或券商处于什么状态。路线图明确把开源方向定为面向个人和小团队的单机回测与实盘交易,见路线图,分布式或团队级部署不是目标。许可证为 LGPL-3.0,贡献代码需要签 CLA——如果你打算 fork 或把引擎嵌入产品,这一点相关。

HotRepo 点评

仅有的带日期榜单观察:项目在 2026-08-17 出现在每日趋势榜,当天 25,732 星、+115;2026-10-26 再次出现,30,869 星、+92;两次之间共有 5 个记录日期,见项目仓库。样本太少,无法据此判断热度能否持续。投入之前,先确认你要用的那个场所的适配器状态——这比星数更能决定“回测与实盘同码”的承诺是否真的成立。

Hacker News 讨论

本文由 AI 根据项目 README 生成,更新于 2026年10月26日,以项目官方文档为准。