NautilusTrader 是 Nautech Systems 开源的生产级多资产、多场所交易引擎(LGPL-3.0)。核心用 Rust 编写,Python 作为控制平面(策略、配置、编排),同一套事件驱动语义与纳秒时间模型贯穿回测、沙箱与实盘,策略代码零修改即可从研究部署到生产。资产类别无关,任何 REST/WebSocket 场所均可通过模块化适配器接入。
核心功能
- 高性能:Rust 核心 + tokio 异步网络 + mimalloc 分配器。
- 可靠:类型与线程安全,可选 Redis/PostgreSQL 状态持久化,crash-only 设计(不可恢复错误立即终止并走统一恢复路径)。
- 便携:Linux(x86_64/ARM64)、macOS(ARM64)、Windows(x86_64),支持 Docker。
- 灵活:适配器支持 Binance、Bybit、OKX、Interactive Brokers、Databento、dYdX、Hyperliquid、Polymarket、Betfair 等(完整列表见官方 docs/integrations)。
- 高级订单:TIF(IOC/FOK/GTC/GTD/DAY/AT_THE_OPEN/AT_THE_CLOSE)、post-only、reduce-only、iceberg、OCO/OUO/OTO、STOP 系列、TRAILING_STOP 等。
- 回测:多场所/多工具/多策略,纳秒分辨率,支持 QuoteTick、TradeTick、Bar、OrderBook(L1/L2/L3/Depth10)、自定义数据;ParquetDataCatalog + 高/低级 API。
- 实盘与沙箱:策略代码完全一致;实时数据 + 虚拟/真实执行。
- 多场所:同时做市与跨场所策略。
- AI 友好:速度足以训练 RL/ES 代理。
- 领域模型:Price/Quantity/Money(默认128位高精度,最大16位小数;Windows 默认64位)、Instrument、Order、Position、Account(Cash/Margin/Betting)、Greeks、Continuous Futures、Synthetics 等。
- 可扩展:自定义 Actor/Strategy/ExecAlgorithm、MessageBus、Cache、自定义数据与组件。
技术原理与架构
采用 领域驱动设计 + 事件驱动 + 端口与适配器 + crash-only。质量属性优先可靠性与性能。

核心组件:
- NautilusKernel:统一编排,管理生命周期与环境上下文(backtest/sandbox/live)。
- MessageBus:Pub/Sub、Req/Rep、Command/Event,可选 Redis 持久化;单线程核心保证确定性顺序(类 LMAX disruptor),I/O 在后台线程/Tokio。
- Cache:高性能内存中心存储(工具、账户、订单、持仓等)。
- DataEngine / ExecutionEngine / RiskEngine:数据路由、订单生命周期与对账、预交易风控与实时暴露监控。
数据流示例(QuoteTick):适配器标准化 → DataEngine → Cache → MessageBus 发布 → 策略 on_quote_tick。订单流:策略 submit_order → RiskEngine 校验 → ExecutionEngine → 场所适配器 → 回报回填。
所有时间戳纳秒 UTC,UUID v4。支持高/标准精度模式。单进程仅一个 Node(全局单例限制),需隔离时用多进程。
安装方法
推荐 uv + 纯 CPython 虚拟环境(Python 3.12–3.14)。
快速安装(PyPI):
uv pip install -U nautilus_trader
# 预发布/v2 RC
uv pip install -U nautilus_trader --pre
# 可选extras
uv pip install -U "nautilus_trader[docker,ib,betfair,polymarket,visualization]"
从 Nautech 索引(含 nightly/develop):
uv pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple
从源码安装:
- 安装 rustup、clang(Linux)、uv。
-
git clone --branch develop --depth 1 https://github.com/nautechsystems/nautilus_trader && cd nautilus_trader
uv sync --all-extras
- 设置
PYO3_PYTHON 等环境变量(Linux/macOS)。
- 可选
make build-debug-v2(PyO3 v2 路径)。
Docker 镜像:ghcr.io/nautechsystems/nautilus_trader 与 jupyterlab 变体(带 SLSA/Sigstore 证明)。
高效使用方法(实操偏重)
推荐先走高阶 API(BacktestNode + ParquetDataCatalog)以便无缝切换实盘;低阶 BacktestEngine 适合库开发与直接控制。
最小策略骨架(官方 Quickstart 风格):继承 Strategy,配置用 StrategyConfig,在 on_start 注册指标并订阅数据,在 on_bar/on_quote_tick 等处理逻辑,用 order_factory 提交订单,portfolio 查询持仓状态。
示例流程:
- 准备数据(合成或加载进 ParquetCatalog / 用 Loader+Wrangler)。
- 创建
BacktestEngine(或 Node),添加 Venue(OMS 类型、账户类型、初始资金、杠杆)、Instrument、Data、Strategy。
engine.run() → 生成账户/持仓/成交报告。
engine.dispose()。
实盘用 TradingNode,配置相同策略 + 数据/执行客户端即可。多策略共享 Cache 与 MessageBus。指标内置(如 EMA),也可自定义。日志级别建议 ERROR(尤其 Jupyter)。
完整示例与教程见 官方文档(quickstart、backtest high/low-level、tutorials)与仓库 examples/。
NautilusTrader 消除了“Python 研究 vs 编译实盘”的鸿沟,用确定性事件模型与类型安全把研究风险降到最低。适合需要真正生产级性能、多市场统一执行、可审计回放的量化团队与个人。当前处于 1.x 末期向 Rust+PyO3 v2 过渡阶段,建议关注官方 docs/nightly 与 Discord。
实操时务必阅读对应版本文档与适配器指南。如果你在搭建高性能量化交易系统,遇到架构或性能瓶颈,云栈社区有众多技术专家交流讨论。