世界を動かす技術を、日本語で。

NautilusTrader: オープンソースのアルゴリズミックトレーディングプラットフォーム

概要

本記事では、複雑なトレーディング戦略をシンプルかつモジュール化されたコンポーネントで実現する方法を解説します。 高精度なタイミング制御、柔軟な設定、高度な注文タイプ、API連携、高性能なRust製コアの利点を紹介します。 各機能は、バックテストやライブトレードの両方に対応しています。 複数市場・商品での取引や拡張性にも優れた設計を強調します。 トレーダーの効率と柔軟性を最大限に引き出すソリューションです。

複雑な戦略、シンプルなソリューション

  • ClockCacheMessageBusPortfolioActors などのモジュール化コンポーネントによるシンプルな戦略構築
  • 各コンポーネントの組み合わせによる 複雑なトレーディング戦略の容易な実装
  • 柔軟なアーキテクチャによる メンテナンス性と拡張性の向上
  • 既存戦略の 再利用性 確保

高精度タイミング

  • ナノ秒精度のClock による正確な時間管理
  • バックテスト・ライブトレード両環境での 一貫したアラート・タイマー制御
  • 遅延の最小化 による戦略の信頼性向上

高速設定

  • 強力な設定オプション による多様な取引所・銘柄・パラメータセットへの対応
  • 戦略コードの変更不要 で設定のみで柔軟な運用が可能
  • 複数市場・商品での 同時運用 に最適

高度な注文

  • post-onlyreduce-onlyOCOOTO などの高度な注文タイプと執行指示への対応
  • 条件付き注文 の柔軟な活用
  • 多様なトレーディング戦略への適用性

API連携

  • 新規取引所やデータプロバイダーとの統合を容易化
  • 複数市場での シームレスな取引 を実現
  • 単一プラットフォームでの 一元管理

高性能

  • コアコンポーネントを Rustで実装 し、 圧倒的なパフォーマンス と信頼性を確保
  • 高速処理 による遅延リスクの低減
  • 安定稼働 による長期運用にも対応

Hackerたちの意見

ついに、全財産を自動で失う方法が見つかった!生きてるってワクワクするね!もっと真面目に言うと、興味がある人のために、既存の統合のリストを下に載せておくよ。 https://nautilustrader.io/docs/latest/integrations/

面白いことに、彼らの中で伝統的なトレーディングに関わってる人はいないね。このプラットフォームで本物の株やETF、投資信託を買えるの?

面白い内容だね。でも、いくつかの点でちょっと混乱してる。もし君の戦略がパフォーマンスをそんなに重視するなら、Cythonで同じかそれに近いパフォーマンスを本当に達成できるの?その時点で、その戦略はカスタムの「再実装」に向いてるんじゃないかな?「ハイパフォーマンス」と「低遅延」がこのプロジェクトでどれくらいなのか、ちょっとよくわからないんだ。遅延に関する統計はあるの?

「低遅延」っていうのは、オーダーサイズを計算して提出するのに2分もかからないって意味だと思う。HFTの1秒間に1,000回の取引の「低遅延」とは違ってね。

これが取引プラットフォームにスポンサーされてて、顧客がすぐに全財産を失うためのものだったら驚かないな…。

取引プラットフォームは、君がもっと取引をすればするほどお金を稼げると思う。だから、できるだけ長く取引してもらうのが彼らの利益だよね。

取引プラットフォームは、君が長期的に取引を続けるために十分なお金を稼ぐと、もっとお金を稼げる。特に、顧客の注文を先回りして利益を上げるバケットショップの暗号通貨やFX取引所はね。規制されていない取引所は、80年代の「ボイラールーム」ペニーストック詐欺師たちの悪い時代を持ち帰る方法に過ぎない。お金を稼いでいる人たちのほとんどは、20代の若者たちをターゲットにした40年前の詐欺をやってるんだ。

ウェブサイトにはOKXと提携しているって書いてあるけど、もっと小口顧客を呼び込むのが一番だね(すぐにお金を失うけど)。他の暗号通貨取引所からの統計を見たことがあるけど、「小口顧客の90%が90日以内に90%のお金を失う」って感じだよ。

CPythonを使うのは興味深い選択だね。完成度にはすごく感心してるし、特にリスクエンジンがいい感じ。まだ深く掘り下げてないけど、基本的なものは揃ってる。ただ、市場は非常に厳しく規制されていて、自動取引は常に注目されてる。ゴールドマンでは、私のチームの仕事は自動取引デスクがすべてのチェックを実装していることを確認することだった。ちょっとつまらないけど、これを真剣に使おうとしている人には、少なくとも市場の規制に従う限り、あまり簡単にはいかないと思うよ。

FINRAには規制があるのは知ってるけど、CFTCが提案した規制は棚上げになったよね。FINRAのメンバーじゃない小さい人たちも、ここで規制に縛られてるのかな?

ずっと前に、トレーダーと投資家の違いを理解して、自分は完全に後者だと気づいたんだ。それから数年後、この気づきが私の資産を増やすことにつながったよ。

あなたの投稿、YouTubeの金融動画のコメント欄にいるボットみたいに始まってるね、特に大文字の使い方が。なんかそのスタイルで返事したくなったよ。

ほんと、ソロや小規模なトレーディングで確実にお金が稼げるって考えに引き込まれる人がこんなにいるなんて驚きだよ。

投資家はトレーダーだよ。あなたが言いたいのは「デイトレード」から離れた方がいいってことじゃない?人生やキャリア全体がトレードなんだから。

投資家は本質的には非常に長い時間枠で運営するトレーダーで、ゆっくりとした意思決定プロセス、遅い結果、そして感情の揺れを利用してるんだ。これに反論する人もいるだろうけど、もしトレーダーなら、スピードと頻度の甘いスポットを見つければ、トレーディングの結果が突然改善するよ。

100%同意。RSUを売って分散投資する以外は、他の投資は全部買って持つスタイルだよ。ソフトウェアエンジニアリングと数学が好きだから、量子ファイナンスに約7年もキャリアの寄り道をしたけど、結局、自分が本当に楽しめるキャリア(ソフトウェアエンジニアリング)に一生懸命取り組むのが一番の時間の使い方だと気づいた。実際に気に入っている製品に取り組んで、余ったお金は分散型インデックスファンドに投資する(時々、TSLAやNVDAのような単一株も選ぶけど)。エンジニアが「ナードスナイプ」されることがあるように、「トレーディング」は多くの人にとってちょっと悪意のある強い引力だと思う。一般的な金融リテラシーは必要だけど、日々の仕事や長期的なキャリアを進めるために1日1時間余分に働く方が、オプションや暗号通貨の取引よりも高い現在価値があると思う。

言語は時間とともに進化するけど、「トレーダー」(そして大部分の「投資家」)は、暗号やレバレッジブローカー口座、年金口座の広告で示唆されている意味とは違うよ。ソーシャルメディアやYouTube、金を払ったニュースレターの詐欺師たちについては、彼らが言ったり書いたりする言葉のほとんどは、彼らが思っている意味とは違う。

これ、LEANエンジン[1]やQuantConnect[2]と比べてどうなの? [1]: https://www.lean.io/ [2]: https://www.quantconnect.com/

これに関しては数十個あるよ。それが誰もが最初に答えるべき質問だね。

これはかなり包括的だね。俺はクオンツファームで働いてるけど、これの一部すらコードに実装されてないよ。いつも難しいのは統合の部分だね。Nautilusには独自のOMSシステムがあるけど、IBKRにもあるし、両者が合う保証はない。すごく小さいファンドなら、IBKRプラットフォーム(または、彼らの制約を受け入れられるならAlpaca)だけで運営するのが理にかなってる。逆にすごく大きなファンドなら、必ず自社開発のシステムがあって、高価なベンダーと統合してるよ。でも、ゼロから始めてスケールアップしたいなら、これを使って迅速に立ち上げるのが一番効率的だね。

IBKRはアルゴリズム取引を検出したら、アカウントをバンするって聞いたことあるよ。

23年前にHFTファーム(シタデル、RGMなど)のために自作システムを書いてたけど、彼らがオープンソースにしたものはすごいよね。ただ、バックエンドが制限要因になるかもしれないっていうのには同意する。競争を維持するために、暗黒ファイバーを驚くべき速度でライセンスしなきゃいけないところまで来てたよ。

あなたがクオンツファームで働いているなら、そういう企業が使っている技術を学ぶための良い公的リソースがあるか気になるな。初心者向けのやつね。ずっと興味があったけど、見つけられるものは実際に行われていることよりも基本的な内容ばかりな気がする。

以前はオプション取引をしていて、取引の成功率は約99.5%だったんだけど、問題はその0.5%の時に成功した取引の利益が全部消えちゃうこと。情報の優位性やHFTのための資本の埋没コストがないと、実際には取引はコインを投げてるのと同じだと思う。成功した後にできた戦略に固執するのが危険だよね。結局、株を買って持ち続けるのが一番いいし、成功するアプローチだと思う。AIが意識を持つようになったら、どの日にアイアンコンドルを買ったり売ったりするのが理にかなうか分かるようになるかもね。

保有株は最小限の利益しか出ないよね。コールを売るためのボットがあればいいかも。でも、その場合、実現した利益の山に泣きながら、潜在的な上昇を消しちゃうリスクがある。

あなたと全く同じ経験があるよ。大学時代に、資産の非カオス的なウィンドウの周期性パターンで成功裏に取引できるニューラルネットワークを動かしてた時期があった。でも、システムがカオスに戻ると、いつカオスでいつカオスじゃないかを特定する方法がなくて、取引がダメになって利益を全部失っちゃった。成功したサイクルの終わりには400-450%の利益があったけど、それが2-4ヶ月続いて、その後は1年の下落でオプション発行者に利益を食べられちゃった。今は長期のファンドや株だけやってて、a) 損失についての不安がかなり減った b) お金も増えたよ。

一番いいのは、インデックスファンドを通じて市場全体を買うことだよ。管理費やオーバーヘッドコストがずっと低いし。常にオンラインじゃないと取引するのは、時間の遅延やコストとの戦いになるからね。株を買うとき、特にオプションは、常にビッド/アスクスプレッドに逆らってる。統計学専攻の基本的な数学問題は、ギャンブラーの破産問題だよ。基本的に、あなたのチャンスは、あなたのお金とテーブル全体のお金の合計の比率だ。出口戦略がないと、確率が50/50を少しでも下回ったら、破産する可能性がほぼ確実になるからね。そのビッドアスクスプレッドや未完了のオーダーがあなたの確率を下げちゃうし、短期取引では基本的にゼロサムのシナリオだよ。

「私はオプションを取引していて、全ての取引で約99.5%の成功率がありました」 これって文字通りの意味?それとも効果を狙った誇張?どうやってそんなことができるのか分からないな。全ての取引が、株価が100ドルのときに50ドルのストライクプライスで1ヶ月後に期限切れのプットを売るみたいな感じじゃないと無理じゃない?

株を買って持ち続けるっていうあなたの提案には賛成だけど、もしAIが意識を持つようになったら、私たちが彼らの取引所でのコモディティになっちゃうかもね。

オプション取引は本当に難しいよね。HFTは全くポジションを取らないんだ。できるだけ中立的なポートフォリオを構築するから(デルタだけじゃなくて、ボラティリティやその高次の項、さらに高次のデルタ項なんかも含めて)。短期的な変動を吸収するための十分な資本がないとこれを実現するのは難しいけど、もし資本があれば、一貫した非常に低リスクの利益を得ることができるよ。

これは、ネガティブスキューやテールリスクを持つ取引戦略でよく見られるパターンだね。LTCMのような大きなヘッジファンドでも、この落とし穴にハマることがあるよ。興味がある人には、ロバート・カーヴァーの「システマティック・トレーディング」をおすすめするよ。アルゴリズム取引に興味がなくても、リスク管理やポジティブとネガティブのスキューに関するセクションは読む価値があるから。

これが100%正しいよ。99.999%のトレーダーが稼ぐ唯一の方法は、企業と取引することなんだ。自分だけで取引しちゃダメ。長期的には負けるから。

基本的にはそうだよ。お金を稼ぐにはリスク管理が重要なんだ。損失を素早く切って、利益を伸ばすことが大事。

複雑な取引戦略で一緒に働いた他の人たちは、せいぜいトントンになるのが精一杯だって考えてるみたいだけど、うちのボスは500の変数を使ったスパゲッティ戦略が、他の誰よりも勝てるって信じてるんだよね。

アルゴリズム取引システムを作るために6年間を無駄にして(そして一貫して利益を上げることに失敗した)、ここにあるのは簡単な部分だよ。戦略を発見するためのシステムが必要なんだ。そこにほとんど全ての努力が注がれることになる。バックテスト用のシミュレーターやブローカーとの統合なんかは、その一部に過ぎないから、真剣にやるつもりなら、自分で書いた方がいいかもね。

これが正しいコメントだね。だから、アルゴトレーディングで成功する戦略を見つけたり、すでに知っている人たちは、高額な報酬をもらってるんだ。

アルゴリズム取引は、理解しようとすればするほど、どんどん深い穴にハマっていくよ。考慮すべき変数が多すぎて、個人トレーダーが安定して利益を上げる取引システムを作るのは本当に難しいと思う。HFTを除けば(これは数億円をインフラに投資できる人たちや、最新のアイビーリーグのクオンタムアナリスト、取引所に直接つながった光ファイバーケーブルを持っている人たちのためのものだし、彼らはこのプロジェクトがやってることをすでに社内ツールでやってるだろう)、結局、デイトレードか長期投資に残されるだけだ。投資にはアルゴリズム取引やバックテストは必要ないから、このプロジェクトのターゲットはデイトレーダーに向いてるみたい。デイトレードでは、成功する取引アルゴの確率はほぼ0%だよ。考えてみてよ:株式市場のすべての変数を考慮しなきゃいけないんだ。例えば、トゥルースソーシャルの投稿が関税を課したり、解除したりするのをどうやって考慮するの?それに、ランサムウェア攻撃で会社がダメになるとか、クジラがコインの裏表で$BIGCORPの株を全部売るとか、そんなのも考えなきゃいけない。無理だよ。デイトレードで成功する唯一の方法は、自分で手動でやることなんだ。君自身が「アルゴ」トレーダーで、戦略をその場で変えたり、未知の変数を考慮したりできるんだ。事前にプログラムされたアルゴは、どれだけ文脈を与えてもそうはできない。さらに、バックテストでは、その時の市場の文脈を正確に捉えるのは不可能だよ。例えば、180日分のデータでバックテストしたとしよう。じゃあ、そのデータの71日目に何が起こったか、正確に知ってる?その連邦準備制度の会議や関税の引き上げを考慮した?他の日はどうなの?OHLCVだけでテストするのは足りない。市場全体の文脈が必要なんだ。このプロジェクト自体は面白いけど、アルゴリズム取引が長期的に成功するとは思えないな。