NautilusTrader:AIを駆使したクオンツ向け高速トレーディングプラットフォーム
NautilusTrader: 高性能アルゴリズム取引プラットフォーム
プロジェクト概要
NautilusTraderは、高性能で実運用可能なオープンソースのアルゴリズム取引プラットフォームです。クオンツトレーダー向けに、イベント駆動型エンジンを提供し、自動売買戦略のポートフォリオを過去データでバックテストし、コード変更なしに同じ戦略を本番環境で稼働させることができます。「AIファースト」を設計思想とし、Pythonネイティブで高性能かつ堅牢な環境下で、アルゴリズム取引戦略の開発とデプロイを可能にします。リサーチ/バックテスト環境と本番のライブ取引環境における乖離という課題の解決を目指しています。
NautilusTraderは、Pythonネイティブのミッションクリティカルな取引システムワークロードをサポートするために、ソフトウェアの正確性と安全性を最優先しています。FX、株式、先物、オプション、仮想通貨、ベットなど、様々なアセットクラスや金融商品に対し、同時に複数の取引所で高頻度取引をサポートするアセットクラス非依存のプラットフォームです。コアコンポーネントはパフォーマンス向上のためRustとCythonで書かれていますが、トレーダーや企業向けにはPythonネイティブな環境を提供しています。
使用方法
NautilusTraderは、PyPIまたはNautech Systemsのパッケージインデックスから提供されるプリビルドのバイナリホイール、あるいはソースからのビルドでインストール可能です。最新のサポート対象Pythonバージョンを使用し、仮想環境内にNautilusTraderをインストールすることを推奨します。
インストール
推奨: 「バニラ」CPython環境でuv
パッケージマネージャーを使用します。
PyPIから:
pip install -U nautilus_trader
Nautech Systemsパッケージインデックスから(安定版または開発版ホイール):
- 安定版ホイール:
pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple
- 開発版ホイール(最新プレリリース):
pip install -U nautilus_trader --pre --index-url=https://packages.nautechsystems.io/simple
- 特定開発版ホイール:
pip install nautilus_trader==1.208.0a20241212 --index-url=https://packages.nautechsystems.io/simple
ソースから:
- rustupのインストール:
- Linux/macOS:
curl https://sh.rustup.rs -sSf | sh
- Windows:
rustup-init.exe
をダウンロードしてインストール後、Visual Studio 2019ビルドツールで「C++によるデスクトップ開発」をインストールします。
- Linux/macOS:
- cargoの有効化:
- Linux/macOS:
source $HOME/.cargo/env
- Windows: 新しいPowerShellを起動します。
- Linux/macOS:
- clangのインストール:
- Linux:
sudo apt-get install clang
- Windows: Visual Studio 2019ビルドツールにClangを追加します。
- Linux:
- clangの有効化(Windows):
[System.Environment]::SetEnvironmentVariable('path', "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\Llvm\x64\bin\;" + $env:Path,"User")
uv
のインストール:curl -LsSf https://astral.sh/uv/install.sh | sh
- クローンとインストール:
git clone --branch develop --depth 1 https://github.com/nautechsystems/nautilus_trader cd nautilus_trader uv sync --all-extras
Docker利用
各種タグ付きのコンテナイメージが利用可能です。例えば、JupyterLabのナイトリーコンテナを実行するには:
docker pull ghcr.io/nautechsystems/jupyterlab:nightly --platform linux/amd64
docker run -p 8888:8888 ghcr.io/nautechsystems/jupyterlab:nightly
http://127.0.0.1:8888/lab
にアクセスしてJupyterLabを利用できます。
主要機能
- 高性能: コア部分はRustで書かれており、tokioを使用した非同期ネットワーク機能を備えています。
- 信頼性: Rustによる型安全性とスレッド安全性に加え、オプションでRedisをバックエンドに利用した状態永続化が可能です。
- ポータブル: OSに依存せず(Linux、macOS、Windows)、Docker経由でデプロイ可能です。
- 柔軟性: モジュール型アダプターにより、あらゆるREST APIやWebSocketフィードと統合できます。
- 高度な注文管理: 多様な注文有効期間(IOC, FOK, GTC, GTD, DAY, AT_THE_OPEN, AT_THE_CLOSE)、高度な注文タイプ、条件付きトリガー、約定指示(post-only, reduce-only, icebergs)、複合注文(OCO, OUO, OTO)をサポートします。
- カスタマイズ性: キャッシュとメッセージバスを活用したユーザー定義のカスタムコンポーネントやシステムが可能です。
- バックテスト機能: 複数の取引所、商品、戦略を同時にサポートし、過去のティック、トレードティック、バー、板情報、カスタムデータをナノ秒分解能で扱えます。
- ライブデプロイ: バックテストとライブ取引で同一の戦略実装が可能です。
- 複数取引所対応: マーケットメイクや統計的裁定戦略を容易にします。
- AIトレーニング: AI取引エージェント(RL/ES)のトレーニングに適した高速バックテストエンジンを搭載しています。
- Pythonネイティブ環境: 重要なコアコンポーネントはパフォーマンスのためにRust/Cythonで実装されていますが、プロのトレーダー向けにPythonネイティブな環境を提供します。
- 高精度モード: コアとなる値型(価格、数量、金額)に対して、64ビット(標準)と128ビット(高)の整数精度をサポートします。
ターゲットユーザー
- クオンツトレーダー: アルゴリズム取引戦略を開発・デプロイする個人または企業。
- 開発者: 高性能な取引システム構築に興味のある方、またはオープンソースプラットフォームへの貢献を考えている方。
- 研究者: アルゴリズム取引、機械学習、金融AI分野で研究を行う学者または業界専門家。
プロジェクトリンク
- GitHubリポジトリ: https://github.com/nautechsystems/nautilus_trader
- ウェブサイト: https://nautilustrader.io
- ドキュメント: https://nautilustrader.io/docs/
- サポートメール:
[email protected]
- Discordコミュニティ: ウェブサイトまたはGitHubページから参加できます。
アプリケーションシナリオ
- アルゴリズム取引: 様々なアセットクラス(FX、株式、先物、オプション、仮想通貨、ベット)における自動売買戦略の開発と実行。
- 高頻度取引(HFT): プラットフォームのパフォーマンスと低遅延機能を活用したHFT戦略。
- バックテストとシミュレーション: 粒度の細かい(ナノ秒分解能)歴史データに対して、取引戦略を厳密にテスト。
- クオンツリサーチ: 取引戦略の有効性や市場行動に関する研究。
- 取引におけるAI/機械学習: 高速バックテストエンジンを用いたAI取引エージェントのトレーニングとデプロイ。
- マーケットメイク: 複数の市場でのマーケットメイク戦略の実装。
- 統計的裁定取引: 関連する資産や市場間での価格差を悪用する戦略の開発と実行。
- クロス取引所取引: 複数取引所対応機能により、異なる取引所で同時に運用。