TradingAgents/CLAUDE.md

6.0 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Todo管理ルール

チケット内のタスク管理

  • 各実装チケットdocs/XXX_*.md内のタスクは- [ ]で未完了、- [x]で完了を表す
  • タスクが完了したら、該当ファイルを編集して- [ ]- [x]に変更する
  • 例:
    ## タスク
    - [x] 完了したタスク
    - [ ] 未完了のタスク
    

プロジェクト概要

TradingAgentsは、実際の投資会社の構造を模倣したマルチエージェントLLMトレーディングフレームワークです。LangGraphを使用して構築され、ファンダメンタル分析、センチメント分析、テクニカル分析などを行う専門的なエージェントが協調して市場分析と取引判断を行います。

重要なコマンド

インストールと環境セットアップ

# 仮想環境の作成Python 3.10以上が必要)
conda create -n tradingagents python=3.13
conda activate tradingagents

# 依存関係のインストール
pip install -r requirements.txt

# 必要なAPIキーの設定
export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY
export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY

CLIの実行

python -m cli.main

パッケージとしての使用

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

ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2024-05-10")

アーキテクチャと主要コンポーネント

ディレクトリ構造

  • tradingagents/ - メインパッケージ
    • agents/ - すべてのエージェント実装
      • analysts/ - 4種類のアナリストエージェントMarket, Social, News, Fundamentals
      • researchers/ - Bull/Bearリサーチャー議論によるバランス評価
      • trader/ - 取引判断を行うトレーダーエージェント
      • managers/ - リサーチマネージャーとリスクマネージャー
      • risk_mgmt/ - リスク評価のディベーターエージェント
    • dataflows/ - データ取得とキャッシュ管理
    • graph/ - LangGraphベースのワークフロー実装
    • config.py - 環境変数ベースの設定管理
  • cli/ - リッチなCLIインターフェース
  • agents/ - サブエージェント定義(各種ドメイン特化エージェント)
  • docs/ - 実装チケットとドキュメント

主要な設定ファイル

  • .env - 環境変数設定APIキー、LLM設定など
  • tradingagents/config.py - 設定のロードと管理
    • LLMプロバイダー設定OpenAI、Anthropic、Google
    • モデル選択deep_think_llm、quick_think_llm
    • 議論ラウンド数の設定
    • オンライン/オフラインツールの切り替え

エージェントフロー

  1. アナリストチーム - 市場、ソーシャル、ニュース、ファンダメンタル分析を並行実行
  2. リサーチチーム - Bull/Bearリサーチャーによる議論と評価
  3. トレーダー - 総合的な取引判断
  4. リスク管理 - ポートフォリオリスクの評価と調整
  5. ポートフォリオマネージャー - 最終承認/拒否

データソース

  • FinnHub API金融データ
  • Reddit APIソーシャルセンチメント
  • Google Newsニュース分析
  • Yahoo Finance価格データ
  • StockStatsテクニカル指標

開発時の注意点

API使用量

フレームワークは大量のAPIコールを行うため、テスト時は以下を推奨

  • gpt-4o-minio4-miniを使用してコストを削減
  • config["max_debate_rounds"]を1に設定して議論ラウンドを制限
  • config["online_tools"]をFalseにしてキャッシュデータを使用

メモリ管理

各エージェントは独自のメモリ(FinancialSituationMemory)を持ち、results_dirに保存されます。

実装チケット管理

docs/ディレクトリに番号付き実装チケット001_TAFlowStrategy_Implementation.mdがあり、各機能の実装タスクを管理しています。

コード品質チェック

# 型チェックの実行mypyを使用
mypy tradingagents/ cli/

# 特定ファイルの型チェック
mypy path/to/file.py

Claude Codeでのpost-toolフックにより、Pythonファイル編集時に自動的にmypy型チェックが実行されます。

CI/CDパイプライン

GitHub Actions ワークフロー

  • PR Pipeline (.github/workflows/pr.yml): プルリクエスト時の自動テストと品質チェック
  • Main Pipeline (.github/workflows/main.yml): メインブランチへのプッシュ時の完全テストスイート
  • Release Pipeline (.github/workflows/release.yml): タグプッシュ時の自動リリースプロセス

テストフレームワーク

# ユニットテストの実行
pytest tests/unit/ -v

# カバレッジ付きテスト
pytest tests/ --cov=tradingagents --cov-report=html

# 並列実行
pytest tests/ -n auto

# 特定のマーカーでテスト
pytest -m "not slow"

コード品質ツール

  • Black: コードフォーマッター
  • Ruff: 高速リンター
  • mypy: 静的型チェッカー
  • bandit: セキュリティスキャナー
  • safety: 依存関係脆弱性チェック

post-toolフック

.claude_code/python_tools_check.shにより、Pythonファイル編集時に自動的に以下が実行されます

  • Black (自動フォーマット)
  • Ruff (リンティングと自動修正)
  • mypy (型チェック)

トラブルシューティング

M1 Mac (ARM64) での問題

  • chromadbのインストール時にビルドエラーが発生する場合:pip install --upgrade --force-reinstall chromadb
  • numpy互換性の問題pip install numpy==1.26.2を使用