NautilusTrader
以 Rust 引擎为核心、Python 为策略与编排层,统一研究、模拟和执行的多资产交易系统。
为什么值得学
适合学习严格的领域模型、订单状态、风险检查,以及回测与实盘共享逻辑的边界。
数据与控制流程
- 1市场数据事件
- 2策略决策
- 3风险检查
- 4执行引擎
- 5模拟或真实交易场所
- 6状态反馈
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 5 个核心模块
每个入口均已核对,点击可阅读源码交易领域模型
model crate 导出订单、仓位、账户、行情和交易事件等基础类型。
- 输入
- 市场和交易事实
- 输出
- 统一领域对象
crates/model/src/lib.rs数据引擎
data crate 提供数据客户端、聚合、回放与引擎模块。
- 输入
- 外部或历史市场数据
- 输出
- 内部可消费的数据事件
crates/data/src/lib.rs执行引擎
execution crate 组织客户端、订单管理、匹配与状态协调等模块。
- 输入
- 交易命令和订单事件
- 输出
- 执行状态及成交更新
crates/execution/src/lib.rs回测运行层
backtest crate 装配引擎、模拟交易所、数据迭代器和结果。
- 输入
- 历史事件与模拟配置
- 输出
- 确定性模拟结果
crates/backtest/src/lib.rs风险引擎
risk crate 提供风控引擎与仓位规模相关能力。
- 输入
- 交易请求、账户与风险约束
- 输出
- 风险检查或仓位约束结果
crates/risk/src/lib.rs建议阅读顺序
- 先读各 crate 的 lib.rs,建立模块依赖图
- 从 model 的订单和事件定义深入
- 比较 backtest 与 execution 的边界
- 最后结合 Python 示例理解策略如何调用 Rust 引擎
动手做一次
选择一个最小示例做离线回放,并绘制从行情到订单状态更新的时序图。
完成后,检查这些证据
- 相同输入和配置能复现结果
- 说明风险检查发生在哪个环节
- 列出模拟无法覆盖的外部订单、网络和对账差异
适用边界与版本说明
当前默认分支与旧版 Cython 架构差异较大;本文按核验提交的 Rust crate 结构分析,安装时应选匹配的发布版本与文档。
Star 快照:30,368 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:develop · 源码固定提交:2ebdbd71da15 ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。