본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 07. 05:13

NautilusTrader: Rust 기반 다중 자산/장소 거래 엔진

요약

NautilusTrader는 다중 자산 및 다중 장소 거래를 위한 오픈소스, 프로덕션급의 Rust 기반 엔진입니다. 이 시스템은 연구(백테스팅)와 실시간 실행을 단일 이벤트 구동 아키텍처 내에서 통합하여, 전략이 코드 변경 없이 연구 환경에서 실제 운영까지 결정론적으로 배포될 수 있게 합니다. 성능과 안전성을 위해 핵심 거래 로직은 Rust로 구현하고, Python을 제어 평면으로 사용하여 유연한 개발 및 오케스트레이션을 지원합니다.

핵심 포인트

  • **Rust 기반의 고성능 코어:** Tokio를 활용한 비동기 네트워킹과 Rust의 타입 안전성을 통해 높은 성능과 신뢰성을 보장하며, 임계 작업 부하에 적합합니다.
  • **연구-실행 통합 (DevOps 개선):** 백테스팅 및 연구 환경과 실시간 프로덕션 환경이 동일한 실행 세맨틱스 및 시간 모델을 공유하여 배포 리스크를 최소화합니다.
  • **다중 자산/장소 지원:** 암호화폐, 전통 금융(FX, 주식, 선물), 베팅 등 다양한 자산 클래스와 REST API 또는 WebSocket 피드를 가진 모든 장소를 모듈러 어댑터로 통합할 수 있습니다.
  • **하이브리드 아키텍처의 유연성:** 핵심 엔진은 Rust로 작성되어 성능을 극대화하고, Python을 제어 평면으로 사용하여 전략 개발 및 시스템 구성에 대한 높은 유연성을 제공합니다.
BranchVersionStatus
master
nightly
develop
PlatformRustPython
Linux (x86_64)
1.95.03.12-3.14
Linux (ARM64)
1.95.03.12-3.14
macOS (ARM64)
1.95.03.12-3.14
Windows (x86_64)
1.95.03.12-3.14

Docs: https://nautilustrader.io/docs/**Website**: https://nautilustrader.io**Support**: support@nautilustrader.io

NautilusTrader 는 다중 자산, 다중 장소 거래 시스템을 위한 오픈소스, 프로덕션급, Rust 기반 엔진입니다.

시스템은 연구, 결정론적 시뮬레이션, 실시간 실행을 단일 이벤트 구동 아키텍처 내에서 통합하며, 전략 로직, 구성, 오케스트레이션을 위한 제어 평면으로 Python 이 사용됩니다.

이 분리 구조는 컴파일된 거래 엔진의 성능과 안전성을 제공함과 동시에 시스템 구성 및 전략 개발에 대한 Python 의 유연성을 제공합니다. 임계 작업 부하를 위해 거래 시스템은 Rust 로 완전히 작성될 수도 있습니다.

연구와 실시간 시스템 모두 동일한 실행 세맨틱스 및 결정론적 시간 모델을 사용합니다. 전략은 코드 변경 없이 연구에서 프로덕션으로 배포되며, 일반적으로 배포 리스크를 유발하는 편차를 줄여줍니다.

NautilusTrader 는 자산 클래스 무관합니다. REST API 또는 WebSocket 피드를 가진 모든 장소를 모듈러 어댑터를 통해 통합할 수 있습니다. 현재 통합은 암호화폐 거래소 (CEX 및 DEX), 전통 시장 (FX, 주식, 선물, 옵션), 베팅 거래소를 포함합니다.

Fast: tokio 를 사용한 비동기 네트워킹을 가진 Rust 코어.Reliable: Rust 의 타입 및 스레드 안전성으로 뒷받침되며, 선택적 Redis 기반 상태 지속성.Portable: Linux, macOS, Windows 에서 실행됩니다. Docker 를 사용하여 배포합니다.Flexible: 모듈러 어댑터를 통해 모든 REST API 또는 WebSocket 피드를 통합합니다.Advanced: Time in force IOC, FOK, GTC, GTD, DAY, AT_THE_OPEN, AT_THE_CLOSE, 고급 주문 유형 및 조건부 트리거. 실행 지시사항 post-only, reduce-only, 그리고 아이스베르그. contingency orders 를 포함하며 OCO, OUO, OTO.

Customizable: 사용자 정의 컴포넌트 또는 캐시 및 메시지 버스를 사용하여 시스템을从头부터 조립합니다.Backtesting: 나노초 해상도로 역사적 쿼티틱, 트레이드 틱, 바, 주문簿, 커스텀 데이터를 사용하여 여러 장소, 도구, 전략을 동시에 사용합니다.Live: 연구와 실시간 배포 간 동일한 전략 구현.Multi-venue: 여러 장소를 동시에 실행하며 시장 메이킹 및 교차 장소 전략을 실행합니다.AI Training: RL/ES 를 훈련할 AI 트레이딩 에이전트를 위한 엔진은 충분히 빠릅니다.

nautilus 는 고대 그리스어 'sailor' 나 'ship' 에서 유래했습니다.

나일러스 쉘은 성장 인자가 로그 나선형에 근사하는 모듈러 챔버로 구성됩니다. 이 아이디어는 디자인 및 아키텍처의 미학으로 번역될 수 있습니다.

거래 전략 연구는 일반적으로 벡터화된 접근 방식으로 Python 을 사용하여 수행되며, 프로덕션 거래 시스템은 이벤트 구동 아키텍처를 가진 컴파일된 언어로 별도로 구현됩니다.

NautilusTrader 는 이 분리를 제거합니다.

Rust 기반 코어는 연구 및 실시간 실행을 위한 결정론적 이벤트 구동 런타임 제공하며, Python 은 제어 평면으로 사용됩니다. 동일한 아키텍처, 실행 세맨틱스 및 시간 모델은 두 환경 모두에서 작동하여 재구현 없이 전략이 연구에서 프로덕션으로 이동할 수 있습니다.

PyO3 를 통해 Python bindings 가 제공되며, Cython 에서의 마이그레이션이 진행 중입니다. 설치 시에는 Rust toolchain 이 필요하지 않습니다.

이 프로젝트는 Soundness Pledge 를 준수합니다:

"이 프로젝트의 의도는 soundness bugs 에 자유로움이다. 개발자들은 이를 피하기 위해 최선을 다할 것이며, 분석 및 수정에 도움을 요청한다."

참고
MSRV: NautilusTrader 는 Rust 언어와 컴파일러의 개선에 크게 의존합니다.
결과적으로, Minimum Supported Rust Version (MSRV) 은 일반적으로 최신 안정 버전과 같습니다.

NautilusTrader 는 adapters 와 함께 작동하도록 모듈러하게 설계되어 있으며, 이를 통해 거래소 및 데이터 제공업체와의 연결을 가능하게 합니다. 이는 원시 API 를 통합된 인터페이스와 정규화된 도메인 모델로 변환합니다.

현재 다음 통합이 지원되며, 자세한 내용은 docs/integrations/를 참조하세요:

NameIDTypeStatusDocs
AX ExchangeAXPerpetuals ExchangeGuide
BetfairBETFAIRSports Betting ExchangeGuide
BinanceBINANCECrypto Exchange (CEX)Guide
CoinbaseCOINBASECrypto Exchange (CEX)Guide
BitMEXBITMEXCrypto Exchange (CEX)Guide
BybitBYBITCrypto Exchange (CEX)Guide
DatabentoDATABENTOData ProviderGuide
DeribitDERIBITCrypto Exchange (CEX)Guide
dYdXDYDXCrypto Exchange (DEX)Guide
HyperliquidHYPERLIQUIDCrypto Exchange (DEX)Guide
Interactive BrokersINTERACTIVE_BROKERSBrokerage (multi-venue)Guide
KrakenKRAKENCrypto Exchange (CEX)Guide
OKXOKXCrypto Exchange (CEX)Guide
PolymarketPOLYMARKETPrediction Market (DEX)Guide
TardisTARDISCrypto Data ProviderGuide

ID: 통합 adapter 클라이언트의 기본 client ID.Type: 통합의 유형 (종종 거래소 유형).

planned
: 향후 개발을 위한 계획.
building
:建设中, 사용 가능한 상태일 가능성이 낮음.
beta
: 최소 작동 상태로 완료되고 베타 테스트 단계에 있음.
stable
: 안정화된 기능 집합 및 API, 통합은 개발자와 사용자가 합리적인 수준으로 테스트됨 (일부 버그는 여전히 존재할 수 있음).

더 자세한 내용은 Integrations 문서를 참조하세요.

Roadmap 은 NautilusTrader 의 전략 방향을 개요합니다. 현재 우선 순위는 Rust-native 코어를 완성하고, 문서 개선을 하고, 코드 에르고닉스를 향상시키는 것입니다.

오픈 소스 프로젝트는 개인 및 소규모 양적 트레이더를 위한 단일 노드 백테스팅과 실시간 거래에 초점을 맞춥니다. UI 대시보드, 분산 오케스트레이션, 내장 AI/ML 도구 등은 핵심 엔진 및 생태계 지속성을 유지하기 위해 범위를 벗어납니다.

새로운 통합 제안은 PR 제출 전에 적합성을 논의하기 위해 RFC 이슈로 시작해야 합니다. 지침은 Community-contributed integrations 을 참조하세요.

경고
NautilusTrader 는 여전히 활발한 개발 중입니다. 일부 기능은 불완전할 수 있으며, API 가 더 안정화되지만, 릴리스 간에 변경 사항이 발생할 수 있습니다.
우리는 이러한 변경 사항을 최대 노력 기준으로 릴리스 노트에 문서화하려 합니다.

우리는 2 주마다 릴리스 스케줄을 따르려 하지만, 실험적이거나 큰 기능은 지연을 초래할 수 있습니다.

우리는 모든 브랜치에서 안정적인 패스 빌드를 유지하려 합니다.

master
: 최신 릴리스 버전을 위한 소스 코드 반영; 프로덕션 사용에 권장됨.
nightly

Daily snapshots of the develop branch for early testing; merged at 14:00 UTC and as required. develop: Active development branch for contributors and feature work.

Note

Our roadmap aims to achieve a stable API for version 2.x (likely after the Rust port).
Once this milestone is reached, we plan to implement a formal deprecation process for any API changes.
This approach allows us to maintain a rapid development pace for now.

NautilusTrader supports two precision modes for its core value types (Price, Quantity, Money), which differ in their internal bit-width and maximum decimal precision.

High-precision: 128-bit integers with up to 16 decimals of precision, and a larger value range.Standard-precision: 64-bit integers with up to 9 decimals of precision, and a smaller value range.

Note

By default, the official Python wheels ship in high-precision (128-bit) mode on Linux and macOS.
On Windows, only standard-precision (64-bit) Python wheels are available because MSVC's C/C++ frontend does not support __int128, preventing the Cython/FFI layer from handling 128-bit integers.

For pure Rust crates, high-precision works on all platforms (including Windows) since Rust handles i128/u128 via software emulation. The default is standard-precision unless you explicitly enable the high-precision feature flag.

See the Installation Guide for further details.

Rust feature flag: To enable high-precision mode in Rust, add the high-precision feature to your Cargo.toml:

[dependencies]
nautilus_model = { version = "*", features = ["high-precision"] }

We recommend using the latest supported version of Python and installing nautilus_trader inside a virtual environment to isolate dependencies.

There are two supported ways to install:

  • Pre-built binary wheel from PyPI or the Nautech Systems package index.
  • Build from source.

Tip

We highly recommend installing using the uv package manager with a "vanilla" CPython.
Conda and other Python distributions may work but aren't officially supported.

To install the latest binary wheel (or sdist package) from PyPI using Python's pip package manager:

pip install -U nautilus_trader

Install optional dependencies as 'extras' for specific integrations (e.g., betfair, docker, dydx, ib, polymarket, visualization):

pip install -U "nautilus_trader[docker,ib]"

See the Installation Guide for the full list of available extras.

The Nautech Systems package index (packages.nautechsystems.io) complies with PEP-503 and hosts both stable and development binary wheels for nautilus_trader.
This enables users to install either the latest stable release or pre-release versions for testing.

Stable wheels correspond to official releases of nautilus_trader on PyPI, and use standard versioning.

To install the latest stable release:

pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple

Tip

Use --extra-index-url instead of --index-url if you want pip to fall back to PyPI automatically.

Development wheels are published from both the nightly and develop branches,
allowing users to test features and fixes ahead of stable releases.

This process also helps preserve compute resources and provides easy access to the exact binaries tested in CI pipelines, while adhering to PEP-440 versioning standards:

develop wheels use the version format dev{date}+{build_number}

(예를 들어, 1.208.0.dev20241212+7001
).

nightly

wheels 는 버전 형식 a{date}

(alpha) 를 사용합니다 (예를 들어, 1.208.0a20241212).

PlatformNightlyDevelop
Linux (x86_64)
Linux (ARM64)
-
macOS (ARM64)
-
Windows (x86_64)
-

Note: develop

브랜치에서 개발되는 wheels 는 Linux x86_64 전용으로 배포됩니다.
Windows, macOS, 그리고 Linux ARM64 빌드는 CI 피드백을 빠르게 유지하기 위해 nightly 스케줄에 따라 실행됩니다.

Warning

개발용 wheels 를 실제 자본을 제어하는 라이브 트레이딩과 같은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다.

기본적으로 pip 는 최신 안정 버전 (stable release) 을 설치합니다. --pre

플래그를 추가하면 프리리리스 버전, 즉 개발용 wheels 도 고려됩니다.

최신 프리리리스 (개발용 wheels 포함) 를 설치하려면:

pip install -U nautilus_trader --pre --index-url=https://packages.nautechsystems.io/simple

특정 개발용 wheel (예: 2025 년 10 월 26 일 1.221.0a20251026)
을 설치하려면:

pip install nautilus_trader==1.221.0a20251026 --index-url=https://packages.nautechsystems.io/simple

nautilus_trader 의 모든 이용 가능한 버전을 package index 에서 확인할 수 있습니다.

프로그램적으로 이용 가능한 버전을 가져오고 목록을 표시하려면:

curl -s https://packages.nautechsystems.io/simple/nautilus-trader/index.html | sed -n 's/.*<a href="\([^"\]*\)".*/\1/p' | awk -F'#' '{print $1}' | sort

Note

Linux 에서 이진 wheel 을 설치하기 전에 ldd --version 를 사용하여 glibc 버전을 확인하고 2.35 또는 최신 버전인지 확인해야 합니다.

develop

브랜치 wheels (.dev)
: 모든 병합 커밋마다 지속적으로 빌드 및 배포합니다.

nightly

브랜치 wheels (a):
develop

브랜치를 14:00 UTC에 자동으로 병합할 때 매일 빌드 및 배포합니다 (변경 사항이 있는 경우).

develop

브랜치 wheels (.dev): 가장 최근 wheel 빌드만 보관합니다.

nightly

브랜치 wheels (a): 최근 30 개 wheel 빌드를 보관합니다.

PyPI, GitHub Releases, 그리고 Nautech Systems package index 에 배포된 모든 릴리스 아티팩트 (wheels 와 source distributions) 는 인증서와 빌드 출처를 증명하는 암호학적 인증서를 포함합니다.

이 인증서는 CI/CD 파이프라인에서 SLSA 빌드 출처를 사용하여 자동으로 생성되며, 다음 사항을 보장하기 위해 검증할 수 있습니다:

  • 아티팩트는 공식적인 NautilusTrader GitHub Actions 워크플로우에 의해 빌드되었습니다.
  • 아티팩트는 저장소의 특정 커밋 SHA 와 일치합니다.
  • 아티팩트는 빌드 후 조작되지 않았습니다.

GitHub CLI 를 사용하여 wheel 파일을 검증하려면:

gh attestation verify nautilus_trader-1.220.0-*.whl --owner nautechsystems

이는 설치된 패키지가 공식적인 NautilusTrader 빌드 프로세스에서 왔는지 암호학적으로 검증할 수 있도록 공급망 보안을 제공합니다.

Note

인증서 검증은 GitHub CLI (gh)
이 설치되어 있어야 합니다.

developnightly 브랜치에서 개발용 wheels 도 인증되며 동일한 방식으로 검증할 수 있습니다.

pyproject.toml
에 지정된 빌드 의존성을 먼저 설치하면 pip 를 사용하여 소스로부터 설치가 가능합니다.

  • Rustup (Rust 툴체인 설치기) 설치:

  • Linux 와 macOS:

curl https://sh.rustup.rs -sSf | sh

  • Windows:

  • rustup-init.exe 다운로드 및 설치

  • Visual Studio 2022 Build Tools 를 사용하여 "Desktop development with C++" 설치

  • 다운로드 및 설치

  • 확인 (모든 시스템): 터미널 세션에서 실행:

rustc --version

  • cargo 활성화

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0