TradingAgents/app.md

213 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TradingAgents - 多代理交易分析系統
> 基於 LangGraph 的智能股票交易分析平台,結合多個 AI 代理進行協作決策
- GitHub: [MarkLo127/TradingAgents](https://github.com/MarkLo127/TradingAgents)
## 系統架構
### 後端架構 (FastAPI)
```
backend/
├── __main__.py # 應用入口點
├── requirements.txt # Python 依賴
└── app/
├── main.py # FastAPI 應用主程式
├── api/ # API 路由層
│ ├── routes.py # 分析、配置等 API 端點
│ └── dependencies.py # 依賴注入
├── core/ # 核心配置
│ ├── config.py # 環境變數設定
│ └── cors.py # CORS 配置
├── models/ # 數據模型
│ └── schemas.py # Pydantic 數據模式
└── services/ # 業務邏輯
├── trading_service.py # TradingAgents 整合
└── price_service.py # 股價數據處理
```
**核心技術棧**
- **FastAPI**: 現代化異步 Web 框架
- **Pydantic**: 數據驗證與序列化
- **LangGraph**: 多代理工作流編排
- **LangChain**: LLM 整合框架
- **Chromadb**: 向量數據庫(記憶系統)
- **yfinance**: 股票數據獲取
### 前端架構 (Next.js)
```
frontend/
├── app/ # Next.js 應用路由
│ ├── layout.tsx # 根佈局
│ ├── page.tsx # 首頁
│ └── analysis/ # 分析功能
│ ├── page.tsx # 分析表單頁面
│ └── results/ # 結果展示頁面
├── components/ # React 組件
│ ├── analysis/ # 分析相關組件
│ │ ├── AnalysisForm.tsx # 分析參數表單
│ │ ├── TradingDecision.tsx # 交易決策展示
│ │ ├── AnalystReport.tsx # 分析師報告
│ │ └── PriceChart.tsx # 股價圖表
│ ├── layout/ # 佈局組件
│ │ ├── Header.tsx # 導航欄
│ │ └── Footer.tsx # 頁腳
│ ├── shared/ # 共用組件
│ └── ui/ # shadcn/ui 基礎組件
├── context/ # React Context
│ └── AnalysisContext.tsx # 分析結果共享
├── hooks/ # 自定義 Hooks
│ ├── useAnalysis.ts # 分析請求管理
│ └── useConfig.ts # 配置獲取
└── lib/ # 工具函數
├── api.ts # API 客戶端
├── types.ts # TypeScript 類型
└── utils.ts # 輔助函數
```
**核心技術棧**
- **Next.js 16**: React 全棧框架
- **TypeScript**: 靜態類型檢查
- **Tailwind CSS**: 實用優先的 CSS 框架
- **shadcn/ui**: 可定制的 UI 組件庫
- **React Hook Form + Zod**: 表單驗證
- **Recharts**: 數據可視化
- **Axios**: HTTP 客戶端
- **react-markdown**: Markdown 渲染
## 安裝步驟
### 前置要求
- **Python**: 3.10 或以上
- **Node.js**: 18.x 或以上
- **pnpm**: 最新版本
- **Conda**: (推薦) 用於 Python 環境管理
- **API 金鑰**:
- OpenAI API Key (必需)
- Alpha Vantage API Key (可選,用於更詳細數據)
### 1. 克隆專案
```bash
git clone https://github.com/MarkLo127/TradingAgents.git
cd TradingAgents
```
### 2. 後端設置
#### 2.1 創建 Python 環境
```bash
# 使用 Conda (推薦)
conda create -n tradingagents python=3.13
conda activate tradingagents
```
#### 2.2 安裝依賴
```bash
# 安裝 TradingAgents 核心
pip install -e .
# 安裝後端依賴
pip install -r backend/requirements.txt
```
#### 2.3 環境配置
在專案根目錄創建 `.env` 文件:
```bash
# API 金鑰
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
ALPHA_VANTAGE_API_KEY=your-alpha-vantage-key # 可選
# 後端配置
BACKEND_HOST=0.0.0.0
BACKEND_PORT=8000
# CORS 配置
CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
```
#### 2.4 啟動後端
```bash
# 從專案根目錄運行
python -m backend
```
後端將運行在 `http://localhost:8000`
- API 文檔: http://localhost:8000/docs
- 健康檢查: http://localhost:8000/api/health
### 3. 前端設置
#### 3.1 安裝依賴
```bash
pnpm -C frontend i
```
#### 3.2 啟動前端
```bash
pnpm -C frontend dev
```
前端將運行在 `http://localhost:3000`
### Docker 部署
```bash
# 使用 Docker Compose 啟動
docker-compose up -d
# 查看日誌
docker-compose logs -f
# 停止服務
docker-compose down -v
```
### 使用流程
1. **訪問首頁** - 查看功能介紹
2. **進入分析頁面** - 點擊"開始分析"
3. **配置參數**
- 選擇分析師團隊(市場、情緒、新聞、基本面)
- 輸入股票代碼(如 NVDA, AAPL, TSLA
- 選擇分析日期
- 設定研究深度(淺層/中等/深層)
- 選擇 LLM 模型
- 輸入 API 金鑰
4. **執行分析** - 點擊"執行分析"按鈕
5. **查看結果** - 自動跳轉至結果頁面,查看:
- 交易決策(買入/賣出/持有)
- 股價走勢圖表
- 各分析師詳細報告
## 核心功能
### 多代理協作系統
- **市場分析師**: 技術指標與價格走勢分析
- **情緒分析師**: 社交媒體情緒分析
- **新聞分析師**: 新聞事件影響評估
- **基本面分析師**: 財務數據與估值分析
- **研究團隊**: 看漲/看跌辯論機制
- **交易員**: 投資計劃制定
- **風險管理**: 風險評估與倉位管理
### 智能特性
- **動態研究深度**: 可調節分析詳細程度
- **多模型支持**: GPT-4o, GPT-5.1 等
- **記憶系統**: ChromaDB 向量存儲歷史決策
- **Markdown 報告**: 格式化的分析輸出
- **實時數據**: yfinance 股票數據整合