arXiv Discord WeChat X Follow
Community

TradingAgents: マルチエージェントLLM金融取引フレームワーク

🎉 TradingAgents が正式リリースされました!本プロジェクトについて多くのお問い合わせを頂き、コミュニティの熱意に感謝申し上げます。

そこで私たちはフレームワークを完全オープンソース化することを決定しました。皆様と共に影響力のあるプロジェクトを構築できることを楽しみにしています!

TradingAgents フレームワーク

TradingAgentsは、実世界の金融取引会社のダイナミクスを模倣したマルチエージェント取引フレームワークです。基礎分析、センチメント分析、テクニカル分析からトレーダー、リスク管理チームまで、専門化されたLLM駆動のエージェントを配置し、市場状況を共同評価して取引判断を行います。さらに、これらのエージェントは動的な議論を行い、最適な戦略を特定します。

TradingAgentsフレームワークは研究目的で設計されています。取引パフォーマンスは、選択した基盤言語モデル、モデルの温度設定、取引期間、データ品質、その他の非決定論的要因によって異なる場合があります。これは財務、投資、または取引アドバイスを意図したものではありません。

私たちのフレームワークは、複雑な取引タスクを専門的な役割に分解します。これにより、システムは市場分析と意思決定に対して堅牢でスケーラブルなアプローチを実現します。

アナリストチーム

  • ファンダメンタルズアナリスト: 企業の財務状況と業績指標を評価し、本質的価値と潜在的なリスク要因を特定します。
  • センチメントアナリスト: 感情スコアリングアルゴリズムを使用してソーシャルメディアと市場心理を分析し、短期的な市場ムードを測定します。
  • ニュースアナリスト: グローバルなニュースとマクロ経済指標を監視し、イベントが市場状況に与える影響を解釈します。
  • テクニカルアナリスト: MACDやRSIなどのテクニカル指標を利用して取引パターンを検出し、価格変動を予測します。

リサーチチーム

  • アナリストチームが提供する洞察を批判的に評価する強気派と弱気派の研究者で構成されています。構造化された議論を通じて、潜在的な利益と内在するリスクのバランスを取ります。

トレーダーエージェント

  • アナリストと研究者のレポートを統合し、情報に基づいた取引判断を行います。包括的な市場洞察に基づいて、取引のタイミングと規模を決定します。

リスク管理とポートフォリオマネージャー

  • 市場のボラティリティ、流動性、その他のリスク要因を評価し、ポートフォリオリスクを継続的に監査します。リスク管理チームは取引戦略を評価・調整し、ポートフォリオマネージャーに最終判断のための評価レポートを提供します。
  • ポートフォリオマネージャーは取引提案を承認または拒否します。承認された場合、注文はシミュレートされた取引所に送信され実行されます。

インストールとCLI

インストール方法

TradingAgentsをクローン:

git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents

お好きな環境管理ツールで仮想環境を作成:

conda create -n tradingagents python=3.13
conda activate tradingagents

依存関係をインストール:

pip install -r requirements.txt

必要なAPI

金融データ取得にはFinnHub APIが必要です。当コードは全て無料枠で実装されています。

export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY

全てのエージェントにはOpenAI APIが必要です。

export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY

CLIの使用方法

直接CLIを試すには以下を実行:

python -m cli.main

希望するティッカーシンボル、日付、LLM、調査深度などを選択できる画面が表示されます。

エージェントの実行状況を追跡できるインターフェースが表示され、結果が読み込まれるごとに確認できます。

TradingAgentsパッケージ

実装詳細

柔軟性とモジュール性を確保するため、TradingAgentsはLangGraphで構築されています。実験では深い思考用にo1-preview、高速思考用にgpt-4oをLLMとして使用しています。ただしテスト目的では、当フレームワークが大量のAPI呼び出しを行うため、コスト削減のためo4-minigpt-4.1-miniの使用を推奨します。

Pythonでの使用方法

コード内でTradingAgentsを使用するには、tradingagentsモジュールをインポートし、TradingAgentsGraph()オブジェクトを初期化します。.propagate()関数は決定を返します。main.pyを実行することも可能で、簡単な例を以下に示します:

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())

# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)

また、デフォルト設定を調整して、独自のLLM選択やディベートラウンド数を設定することも可能です。

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

# Create a custom config
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4.1-nano"  # Use a different model
config["quick_think_llm"] = "gpt-4.1-nano"  # Use a different model
config["max_debate_rounds"] = 1  # Increase debate rounds
config["online_tools"] = True # Use online tools or cached data

# Initialize with custom config
ta = TradingAgentsGraph(debug=True, config=config)

# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)

online_toolsについては、実験用途での有効化をお勧めします。これによりリアルタイムデータへのアクセスが可能になります。エージェントのオフラインツールは、バックテスト用に整備された当社のTauric TradingDBのキャッシュデータに依存しています。現在このデータセットの改良を進めており、今後のプロジェクトと共に公開予定です。ご期待ください!

全ての設定項目はtradingagents/default_config.pyで確認できます。

貢献

コミュニティからの貢献を歓迎します!バグ修正、ドキュメント改善、新機能提案など、あらゆる貢献がプロジェクトの発展に役立ちます。この研究分野に興味がある方は、オープンソース金融AI研究コミュニティTauric Researchへの参加をご検討ください。

引用

TradingAgentsがお役に立った場合は、ぜひ当研究を引用してください :)

@misc{xiao2025tradingagentsmultiagentsllmfinancial,
      title={TradingAgents: Multi-Agents LLM Financial Trading Framework}, 
      author={Yijia Xiao and Edward Sun and Di Luo and Wei Wang},
      year={2025},
      eprint={2412.20138},
      archivePrefix={arXiv},
      primaryClass={q-fin.TR},
      url={https://arxiv.org/abs/2412.20138}, 
}