NautilusTrader는 오픈소스·프로덕션 등급의 Rust-native 다중 자산·다중 거래소 트레이딩 엔진이다. 연구(백테스트)·결정적 시뮬레이션·라이브 실행을 하나의 이벤트 기반 아키텍처로 묶고, 전략 로직·설정·오케스트레이션은 Python(PyO3 바인딩)이 컨트롤 플레인으로 담당한다. 2026-08-18 KST 기준 GitHub REST 메타데이터·고정 커밋 README·아키텍처 문서·릴리스 API를 조사해 기록한다.
한눈에 보기
- 프로젝트 성격: 거래소 연결 라이브러리·백테스트 프레임워크·라이브 실행까지 아우르는 “생산용” 트레이딩 스택. 동일한 결정적 시간 모델로 research-to-live에 코드 변경 없이 배포를 지향한다.
- 고정 기준:
developHEAD860561f40c2a78d78752cf02c8582a4c4f2ede5a(Require OKX option instrument family, 2026-08-18T13:12:59Z). 기본 브랜치는develop. - 소유/라이선스: Nautech Systems Pty Ltd (© 2015-2026) · LGPL-3.0 · CLA 필요.
- 규모 (2026-08-18 스냅샷): stars 26,209 / forks 3,396 / open issues 102 / 20,700+ commits. 저장소 생성 2018-06-25. PyPI
nautilus_trader. - 버전 상태:
master= v1.231.0 (Release 1.231.0 Beta, 2026-08-02, 최근 안정 릴리스) ·develop= v2.0.0rc3 (Rust-native v2 릴리스 후보 전환 중). Cargo workspaceversion = "0.62.0", MSRV Rust 1.97.1. - 검증 상태: 설치·백테스트 실행·라이브 연결·벤치마크는 수행하지 않았다. README/문서 주장과 저장소 소스 구조는 분리해 기록한다.
핵심 설계
- Rust-native 코어 + Python 컨트롤 플레인: 컴파일 언어의 성능/안전과 Python의 유연성을 결합. PyO3 바인딩으로 v2 런타임을 노출하며, 미션 크리티컬 워크로드는 순수 Rust로도 작성 가능.
- 결정적 이벤트 기반 아키텍처: 백테스트·샌드박스·라이브가 같은 실행 의미론(semantics)과 시간 모델을 공유 → research-to-live parity. 전략 코드를 재구현 없이 연구→프로덕션 배포.
- 어셋 클래스 무관(asset-class-agnostic): REST API/WebSocket 피드가 있는 어떤 베뉴든 modular adapter로 통합. CEX/DEX 크립토·FX·주식·선물·옵션·베팅 거래소·예측시장 커버.
- 정밀도 모드 2종:
Price/Quantity/Money에 대해 High-precision(128-bit 정수, 소수점 16자리)과 Standard-precision(64-bit, 소수점 9자리). Python 공식 휠은 기본 high-precision, 순수 Rust crate는 기본 standard(high-precisionfeature flag). - 어드밴스드 오더 타입: TIF
IOC/FOK/GTC/GTD/DAY/AT_THE_OPEN/AT_THE_CLOSE, 실행 지시post-only/reduce-only/iceberg, 컨틴전시 오더OCO/OUO/OTO.
아키텍처
NautilusKernel 코어 컴포넌트
공통 코어는 nautilus-system crate의 NautilusKernel이 소유한다 (백테스트/샌드박스/라이브 공유).
| 컴포넌트 | 역할 |
|---|---|
MessageBus | 컴포넌트 간 통신 라우팅 — pub/sub · request/response · command/event messaging. Redis 외부 백킹 옵션 |
Cache | 인메모리 트레이딩 상태(인스트루먼트·계좌·오더·포지션) + 선택적 DB 백킹(recovery) |
DataEngine | 퀀트·트레이드·바·오더북·커스텀 데이터 처리, 구독/요청 흐름, 소비자 라우팅 |
ExecutionEngine | 오더 라이프사이클·실행 라우팅·fill·거래소 실행 상태 reconciliation |
RiskEngine | 사전 트레이드 검증(주문 필드·잔고·수량·notional·reduce-only·거래 상태), rate limit |
Portfolio | 계좌·포지션 상태 파생 — 잔고·마진·실현/미실현 PnL·익스포저 |
Trader | actor·strategy·execution algorithm 등록, 라이프사이클·클록·구독 관리 |
환경 컨텍스트 3종
Backtest: 과거 데이터 + 시뮬레이션 executionSandbox: 실시간 데이터 + 시뮬레이션 executionLive: 실시간 데이터 + 실거래소 연결 (paper/실계좌)
데이터 플로우 (QuoteTick 경로)
Adapter(API 파싱 → QuoteTick) → MPSC 채널 → DataEngine::process_data → handle_quote → Cache.add_quote → MessageBus.publish_quote(토픽, e.g. data.quotes.BINANCE.BTCUSDT-PERP) → 구독 전략 on_quote(). 전략 핸들러는 **싱글스레드 코어**에서 실행된다. 오더북 델타/스냅샷은 캐시 우선이 아니라 직접 발행되고 BookUpdater`가 별도로 북 상태를 유지한다.
실행 플로우 (Order 경로)
전략 submit_order(command) → RiskEngine 사전 트레이드 검사 → ExecutionEngine 라우팅 → ExecutionClient → Venue(REST/WS) → OrderAccepted/OrderFilled 이벤트 → MessageBus → 전략 on_order_accepted() 등.
Rust crate 구조 (23 crate)
core, model, system, data, execution, risk, portfolio, backtest, live, adapters, indicators, analysis, persistence, event_store, serialization, network, cryptography, plugin, cli, pyo3, common, testkit, infrastructure.
- 포트·어댑터(hexagonal) + DDD + 이벤트 드리븐 + 메시징 패턴을 설계 기법으로 사용.
- Crash-only design: 릴리즈 프로파일이
panic = "abort". 복구 불가 결함 시 외부 슈퍼바이저가 재시작. 정상 운영은stop/disposegraceful shutdown 유지. - Fail-fast 정책: 타임스탬프·가격·수량의 산술 오버플로, 역직렬화 시 NaN/무한대/범위 밖 값, 음수 값 변환 등은 에러/패닉. “잘못된 가격 하나가 포지션 사이징·주문 가격·백테스트 결과·자금 손실로 전파”됨을 막는다.
- Assurance-driven engineering: 핵심 도메인 타입·리스크/실행 흐름의 불변식을 단위 테스트·프로퍼티 테스트·퍼저·static assertion으로 CI에서 실행.
통합 — 어댑터 17종 (2026-08-18, 전부 “stable” 상태)
| ID | 타입 | 베뉴 |
|---|---|---|
| AX | Perpetuals Exchange | Architect / architect.exchange |
| BETFAIR | Sports Betting Exchange | Betfair |
| BINANCE | Crypto Exchange (CEX) | Binance |
| BITMEX | Crypto Exchange (CEX) | BitMEX |
| BYBIT | Crypto Exchange (CEX) | Bybit |
| COINBASE | Crypto Exchange (CEX) | Coinbase |
| DATABENTO | Data Provider | Databento |
| DERIBIT | Crypto Exchange (CEX) | Deribit |
| DERIVE | Crypto Exchange (DEX) | Derive |
| DYDX | Crypto Exchange (DEX) | dYdX |
| HYPERLIQUID | Crypto Exchange (DEX) | Hyperliquid |
| INTERACTIVE_BROKERS | Brokerage (multi-venue) | Interactive Brokers |
| KRAKEN | Crypto Exchange (CEX) | Kraken |
| LIGHTER | Crypto Exchange (DEX) | Lighter |
| OKX | Crypto Exchange (CEX) | OKX |
| POLYMARKET | Prediction Market (DEX) | Polymarket |
| TARDIS | Crypto Data Provider | Tardis |
버전·릴리스·스코프
- 시장 주기: 대략 격주(bi-weekly) 릴리스. 릴리스 노트는 best-effort. NautilusTrader는 아직 active development — breaking change 가능(특히 v2 전환 중).
- 브랜치:
master(최신 릴리스 소스, 프로덕션 권장) ·nightly(develop 일일 스냅샷, 14:00 UTC 머지) ·develop(개발 브랜치, 기본). PR은develop대상. v1은develop_v1브랜치에서 critical 보안 백포트만. - v2: Rust-native v2 런타임으로 전환 중.
2.0.0rcN휠은pip install -U nautilus_trader --pre로 테스트 가능(프로덕션 비권장). - MSRV: “일반적으로 최신 stable Rust” (현재 1.97.1). Soundness Pledge 준수.
- 오픈소스 스코프: 단일 노드 백테스팅 + 개인/소규모 팀 퀀트를 위한 라이브 트레이딩에 초점. 범위 밖(Out of scope): UI 대시보드, 분산 오케스트레이션, 내장 AI/ML 툴링.
보안
- 총체적 supply chain 통제: CODEOWNERS 게이트, 서명 커밋/불변 릴리스 태그, lockfile checksum pin, wheel만 설치, cargo-vet, LGPL-3.0-or-later 라이선스 검사.
- 스캐닝/퍼징: Gitleaks·Zizmor(pre-commit), CodeQL(PR), cargo-audit·cargo-deny·OSV Scanner·pip-audit, cargo-fuzz(어댑터·서명 표면), OpenSSF Scorecard 배지.
- 빌드/배포 무결성: GitHub Actions 커밋 SHA 핀, SLSA build provenance, Sigstore 서명 컨테이너 이미지 + SPDX SBOM, PyPI/crates.io OIDC Trusted Publishing(
release환경). - 런타임 암호화: TLS에
aws-lc-rs, Ed25519 서명에ed25519-dalek. 취약점 신고: GitHub Security Advisories / security@nautechsystems.io(48시간 이내 접수, critical 30일 패치).
설치
# Pre-built wheel (Python 3.12–3.14, Linux x86_64/ARM64 · macOS ARM64 · Windows x86_64)
pip install -U nautilus_trader
pip install -U "nautilus_trader[visualization]" # tearsheets/charts
pip install -U nautilus_trader --pre # v2.0.0rcN 테스트용
# Nautech Systems 인덱스 (PEP-503): 안정/개발 휠
pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple- uv + “vanilla” CPython 권장. Conda는 공식 미지원.
- 소스 빌드: rustup + clang/LLVM + uv →
git clone --branch develop --depth 1→make sync(PyO3 환경변수 설정) →make build. - Redis는 캐시 DB/메시지 버스 백킹으로 쓸 때만 선택적.
- Makefile 주요 타깃:
make install·make build·make build-wheel·make cargo-test(cargo-nextest) ·make pytest·make ruff·make pre-commit·make docs.
유사 도구와의 차이점 (README·문서 기반 해석)
- Backtrader/Zipline/Freqtrade — Python이 실행 엔진까지 담당하는 반면, NautilusTrader는 Rust 코어가 실행 엔진이고 Python은 컨트롤 플레인. 성능·타입 안전성에서 차이.
- CCXT — 연결 라이브러리에 머무르는 반면, NautilusTrader는 통합 실행·리스크·포트폴리오·백테스트 레이어를 포함.
- AI/LLM 트레이딩 에이전트 프레임워크(TradingAgents 등) — LLM 멀티에이전트 의사결정에 초점. NautilusTrader는 그 아래 실행/백테스트 인프라 레이어. README는 RL/ES 방식의 AI 트레이딩 에이전트 훈련 가능(engine speed)을 명시하지만 내장 AI/ML 툴링은 스코프 밖.
공식 사실·해석·미검증 범위
직접 확인한 것
- GitHub REST 메타데이터(스타·포크·라이선스·토픽·기본 브랜치)와
git ls-remoteref 확인 - 고정 커밋 README 전체(기능·통합 17종·정밀도 모드·설치·보안·릴리스 정책)
docs/concepts/architecture.md(NautilusKernel·데이터/실행 플로우·crash-only·fail-fast·assurance)docs/concepts/adapters.md·recursive 트리(4,694 파일)·릴리스 API·version.json·Cargo.toml
저장소가 주장하지만 재현하지 않은 것
- 백테스트·라이브 실행의 research-to-live parity, 성능 수치(고주파 처리량), RL/ES 에이전트 훈련 속도
- 어댑터 17종의 실제 작동 안정성, nanosecond 데이터 정밀도 경험치
이번 조사에서 하지 않은 것
pip install nautilus_trader/ Rust 소스 빌드 /make타깃 실행- 백테스트 실행, live 페이퍼/실거래 연결, 어댑터 인증
- Rust
cargo test/cargo-nextest·pytest, 벤치마크, 퍼징, 보안 감사 재현 - Docker 배포 검증
관련 메모
- 구조 페이지: nautilus-trader
- 트레이딩 MOC: moc-ai-agents-trading · 생태계 참조: trading-agent-landscape
- 관련 개념/도구: kelly-criterion · prediction-markets · polymarket (Polymarket 어댑터 stable)
- 원문 provenance: raw source:
github-nautechsystems-nautilus-trader커뮤니티 기여 통합 신규 제안은 RFC 이슈로 시작한다(ROADMAP 가이드라인).