找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4298

积分

0

好友

560

主题
发表于 7 小时前 | 查看: 6| 回复: 0

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。质量属性优先可靠性与性能。

NautilusTrader系统架构:NautilusKernel、MessageBus、Cache、DataEngine、ExecutionEngine、RiskEngine等核心组件之间的交互关系

核心组件:

  • 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

从源码安装:

  1. 安装 rustup、clang(Linux)、uv。
  2. git clone --branch develop --depth 1 https://github.com/nautechsystems/nautilus_trader && cd nautilus_trader
  3. uv sync --all-extras
  4. 设置 PYO3_PYTHON 等环境变量(Linux/macOS)。
  5. 可选 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 查询持仓状态。

示例流程:

  1. 准备数据(合成或加载进 ParquetCatalog / 用 Loader+Wrangler)。
  2. 创建 BacktestEngine(或 Node),添加 Venue(OMS 类型、账户类型、初始资金、杠杆)、Instrument、Data、Strategy。
  3. engine.run() → 生成账户/持仓/成交报告。
  4. 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。

实操时务必阅读对应版本文档与适配器指南。如果你在搭建高性能量化交易系统,遇到架构或性能瓶颈,云栈社区有众多技术专家交流讨论。




上一篇:CUDA的20年软件壁垒,真被AI编程10小时攻破了吗?
下一篇:GPT-Live 拆解:OpenAI 如何让 95% 音频帧不再延迟
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-5 11:26 , Processed in 0.856598 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表