This commit is contained in:
parent
3d1a9ff06c
commit
7fbbff7bb5
672
README.md
672
README.md
|
|
@ -1,247 +1,643 @@
|
|||
# TradingAgents - 多代理交易分析系統
|
||||
|
||||
> 基於 LangGraph 的智能股票交易分析平台,結合多個 AI 代理進行協作決策
|
||||
<div align="center">
|
||||
|
||||
- GitHub: [MarkLo127/TradingAgents](https://github.com/MarkLo127/TradingAgents)
|
||||
**基於 LangGraph 的智能股票交易分析平台,結合多個 AI 代理進行協作決策**
|
||||
|
||||
## 系統架構
|
||||
[](https://github.com/MarkLo127/TradingAgents)
|
||||
[](https://www.python.org/)
|
||||
[](https://nextjs.org/)
|
||||
[](https://fastapi.tiangolo.com/)
|
||||
[](LICENSE)
|
||||
|
||||
### 後端架構 (FastAPI)
|
||||
[簡介](#簡介) • [特色](#核心特色) • [架構](#系統架構) • [安裝](#快速開始) • [使用](#使用指南) • [部署](#部署方案) • [截圖](#應用截圖)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 📖 簡介
|
||||
|
||||
**TradingAgents** 是一個先進的多代理 AI 交易分析系統,模擬真實世界的交易公司運作模式。透過 LangGraph 編排多個專業化的 AI 代理(分析師、研究員、交易員、風險管理者),系統能夠從不同角度分析股票市場,並通過結構化的辯論與協作流程產生高質量的交易決策。
|
||||
|
||||
> 💡 **致敬原作**: 本專案基於 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) 進行改進和擴展,加入了完整的 Web 前端介面、RESTful API、Docker 部署支援等功能。感謝原作者的卓越工作和開源貢獻!
|
||||
|
||||
### 🎯 核心特色
|
||||
|
||||
- 🤖 **多代理協作架構** - 專業化的 AI 代理團隊協同工作
|
||||
- 📊 **全方位市場分析** - 整合技術面、基本面、情緒面、新聞面分析
|
||||
- 🔄 **結構化決策流程** - 透過看漲/看跌辯論機制減少偏見
|
||||
- 🧠 **長期記憶系統** - 使用 ChromaDB 向量數據庫儲存歷史決策
|
||||
- 🎨 **現代化 Web 介面** - 基於 Next.js 16 的響應式 UI
|
||||
- 🔌 **RESTful API** - 完整的後端 API 支援
|
||||
- 🐳 **一鍵部署** - 支援 Docker Compose 和 Railway 部署
|
||||
- 🔑 **BYOK (Bring Your Own Key)** - 使用者自帶 API 金鑰,保障隱私與成本控制
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 系統架構
|
||||
|
||||
TradingAgents 採用前後端分離架構,後端使用 FastAPI 提供 RESTful API,前端使用 Next.js 打造現代化的使用者介面。
|
||||
|
||||
### 📂 專案結構概覽
|
||||
|
||||
```
|
||||
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 # 股價數據處理
|
||||
TradingAgents/
|
||||
├── backend/ # FastAPI 後端服務
|
||||
│ ├── __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 # 股價資料處理服務
|
||||
│
|
||||
├── frontend/ # Next.js 前端應用
|
||||
│ ├── app/ # Next.js App Router
|
||||
│ │ ├── 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 API
|
||||
│ │ └── AnalysisContext.tsx # 分析狀態管理
|
||||
│ ├── hooks/ # 自定義 React Hooks
|
||||
│ │ ├── useAnalysis.ts # 分析請求管理
|
||||
│ │ └── useConfig.ts # 配置資料獲取
|
||||
│ └── lib/ # 工具函式庫
|
||||
│ ├── api.ts # API 客戶端封裝
|
||||
│ ├── types.ts # TypeScript 型別定義
|
||||
│ └── utils.ts # 通用輔助函式
|
||||
│
|
||||
└── tradingagents/ # 核心 Python 套件
|
||||
├── agents/ # AI 代理定義
|
||||
├── dataflows/ # 資料流處理
|
||||
├── graph/ # LangGraph 工作流
|
||||
└── default_config.py # 預設配置
|
||||
```
|
||||
|
||||
**核心技術棧**:
|
||||
- **FastAPI**: 現代化異步 Web 框架
|
||||
- **Pydantic**: 數據驗證與序列化
|
||||
- **LangGraph**: 多代理工作流編排
|
||||
- **LangChain**: LLM 整合框架
|
||||
- **Chromadb**: 向量數據庫(記憶系統)
|
||||
- **yfinance**: 股票數據獲取
|
||||
### 🔧 後端技術棧
|
||||
|
||||
### 前端架構 (Next.js)
|
||||
| 技術 | 用途 | 版本 |
|
||||
|------|------|------|
|
||||
| **FastAPI** | 現代化異步 Web 框架 | ≥0.104.0 |
|
||||
| **Pydantic** | 資料驗證與序列化 | ≥2.9.0 |
|
||||
| **LangGraph** | 多代理工作流編排引擎 | ≥0.4.8 |
|
||||
| **LangChain** | LLM 應用開發框架 | Latest |
|
||||
| **ChromaDB** | 向量資料庫(記憶系統) | ≥1.0.12 |
|
||||
| **yfinance** | 股票市場資料獲取 | ≥0.2.63 |
|
||||
| **Uvicorn** | ASGI 伺服器 | ≥0.24.0 |
|
||||
| **python-dotenv** | 環境變數管理 | 1.0.0 |
|
||||
|
||||
```
|
||||
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 # 輔助函數
|
||||
```
|
||||
#### 其他整合
|
||||
- **stockstats**: 技術指標計算
|
||||
- **feedparser**: RSS 新聞抓取
|
||||
- **praw**: Reddit 社群情緒分析
|
||||
- **finnhub-python**: 金融資料 API
|
||||
- **beautifulsoup4**: 網頁內容解析
|
||||
|
||||
**核心技術棧**:
|
||||
- **Next.js 16**: React 全棧框架
|
||||
- **TypeScript**: 靜態類型檢查
|
||||
- **Tailwind CSS**: 實用優先的 CSS 框架
|
||||
- **shadcn/ui**: 可定制的 UI 組件庫
|
||||
- **React Hook Form + Zod**: 表單驗證
|
||||
- **Recharts**: 數據可視化
|
||||
- **Axios**: HTTP 客戶端
|
||||
- **react-markdown**: Markdown 渲染
|
||||
### 🎨 前端技術棧
|
||||
|
||||
## 安裝步驟
|
||||
| 技術 | 用途 | 版本 |
|
||||
|------|------|------|
|
||||
| **Next.js** | React 全端框架 | 16.x |
|
||||
| **TypeScript** | 靜態型別檢查 | Latest |
|
||||
| **Tailwind CSS** | 實用優先的 CSS 框架 | Latest |
|
||||
| **shadcn/ui** | 可高度客製化的 UI 組件庫 | Latest |
|
||||
| **React Hook Form** | 高效能表單管理 | Latest |
|
||||
| **Zod** | TypeScript 優先的結構驗證 | Latest |
|
||||
| **Recharts** | 資料視覺化圖表庫 | Latest |
|
||||
| **Axios** | Promise 基礎的 HTTP 客戶端 | Latest |
|
||||
| **react-markdown** | Markdown 內容渲染 | Latest |
|
||||
|
||||
### 前置要求
|
||||
---
|
||||
|
||||
- **Python**: 3.10 或以上
|
||||
- **Node.js**: 18.x 或以上
|
||||
- **pnpm**: 最新版本
|
||||
- **Conda**: (推薦) 用於 Python 環境管理
|
||||
- **API 金鑰**:
|
||||
- OpenAI API Key (必需)
|
||||
- Alpha Vantage API Key (可選,用於更詳細數據)
|
||||
## 🚀 快速開始
|
||||
|
||||
### 1. 克隆專案
|
||||
### 📋 前置要求
|
||||
|
||||
在開始之前,請確保您的系統已安裝以下軟體:
|
||||
|
||||
- **Python** 3.10 或更高版本
|
||||
- **Node.js** 18.x 或更高版本
|
||||
- **pnpm** 最新版本(推薦)或 npm
|
||||
- **Conda** (可選,但強烈推薦用於 Python 環境管理)
|
||||
- **Git** 用於克隆專案
|
||||
|
||||
#### 必要的 API 金鑰
|
||||
|
||||
- **OpenAI API Key** (必需) - 用於驅動 AI 代理
|
||||
- 申請網址: https://platform.openai.com/api-keys
|
||||
- **Alpha Vantage API Key** (可選) - 用於更詳細的股票資料
|
||||
- 申請網址: https://www.alphavantage.co/support/#api-key
|
||||
|
||||
> 💡 **提示**: 本系統採用 BYOK (Bring Your Own Key) 模式,您可以在前端介面直接輸入 API 金鑰,無需設定環境變數(適合快速測試)。
|
||||
|
||||
### 📥 安裝步驟
|
||||
|
||||
#### 1️⃣ 克隆專案
|
||||
|
||||
```bash
|
||||
git clone https://github.com/MarkLo127/TradingAgents.git
|
||||
cd TradingAgents
|
||||
```
|
||||
|
||||
### 2. 後端設置
|
||||
#### 2️⃣ 後端設置
|
||||
|
||||
#### 2.1 創建 Python 環境
|
||||
##### 2.1 創建 Python 虛擬環境
|
||||
|
||||
**使用 Conda (推薦)**
|
||||
```bash
|
||||
# 使用 Conda (推薦)
|
||||
conda create -n tradingagents python=3.13
|
||||
conda activate tradingagents
|
||||
```
|
||||
|
||||
#### 2.2 安裝依賴
|
||||
**或使用 venv**
|
||||
```bash
|
||||
python3 -m venv tradingagents
|
||||
source tradingagents/bin/activate # macOS/Linux
|
||||
# 或
|
||||
tradingagents\Scripts\activate # Windows
|
||||
```
|
||||
|
||||
##### 2.2 安裝 Python 依賴
|
||||
|
||||
```bash
|
||||
# 安裝 TradingAgents 核心
|
||||
# 安裝 TradingAgents 核心套件
|
||||
pip install -e .
|
||||
|
||||
# 安裝後端依賴
|
||||
# 安裝後端 API 依賴
|
||||
pip install -r backend/requirements.txt
|
||||
```
|
||||
|
||||
#### 2.3 環境配置
|
||||
##### 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 # 可選
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
# 後端配置
|
||||
編輯 `.env` 檔案,填入您的 API 金鑰:
|
||||
|
||||
```bash
|
||||
# ============ API 金鑰配置 ============
|
||||
# OpenAI API (必需)
|
||||
OPENAI_API_KEY=sk-your-openai-api-key-here
|
||||
OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
|
||||
# Alpha Vantage API (可選)
|
||||
ALPHA_VANTAGE_API_KEY=your-alpha-vantage-key
|
||||
|
||||
# 其他 LLM 提供商 (可選)
|
||||
CLAUDE_API_KEY=your-claude-api-key
|
||||
GEMINI_API_KEY=your-gemini-api-key
|
||||
OPENROUTER_API_KEY=your-openrouter-api-key
|
||||
|
||||
# ============ 後端服務配置 ============
|
||||
BACKEND_HOST=0.0.0.0
|
||||
BACKEND_PORT=8000
|
||||
|
||||
# CORS 配置
|
||||
# ============ CORS 配置 ============
|
||||
CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
|
||||
|
||||
# ============ 資料儲存配置 ============
|
||||
TRADINGAGENTS_RESULTS_DIR=./results
|
||||
```
|
||||
|
||||
#### 2.4 啟動後端
|
||||
##### 2.4 啟動後端服務
|
||||
|
||||
```bash
|
||||
# 從專案根目錄運行
|
||||
# 從專案根目錄執行
|
||||
python -m backend
|
||||
```
|
||||
|
||||
後端將運行在 `http://localhost:8000`
|
||||
✅ 後端服務成功啟動後,您可以訪問:
|
||||
- **應用根目錄**: http://localhost:8000
|
||||
- **API 互動式文檔 (Swagger UI)**: http://localhost:8000/docs
|
||||
- **API 文檔 (ReDoc)**: http://localhost:8000/redoc
|
||||
- **健康檢查端點**: http://localhost:8000/api/health
|
||||
|
||||
- API 文檔: http://localhost:8000/docs
|
||||
- 健康檢查: http://localhost:8000/api/health
|
||||
#### 3️⃣ 前端設置
|
||||
|
||||
### 3. 前端設置
|
||||
|
||||
#### 3.1 安裝依賴
|
||||
##### 3.1 安裝前端依賴
|
||||
|
||||
```bash
|
||||
pnpm -C frontend i
|
||||
# 使用 pnpm (推薦)
|
||||
pnpm -C frontend install
|
||||
|
||||
# 或使用 npm
|
||||
npm --prefix frontend install
|
||||
```
|
||||
|
||||
#### 3.2 啟動前端
|
||||
##### 3.2 配置前端環境變數 (可選)
|
||||
|
||||
如果您需要自訂 API 端點,可以建立 `frontend/.env.local`:
|
||||
|
||||
```bash
|
||||
NEXT_PUBLIC_API_URL=http://localhost:8000
|
||||
```
|
||||
|
||||
> 💡 預設情況下,前端會自動連接到 `http://localhost:8000`
|
||||
|
||||
##### 3.3 啟動前端開發伺服器
|
||||
|
||||
```bash
|
||||
# 使用 pnpm (推薦)
|
||||
pnpm -C frontend dev
|
||||
|
||||
# 或使用 npm
|
||||
npm --prefix frontend run dev
|
||||
```
|
||||
|
||||
前端將運行在 `http://localhost:3000`
|
||||
✅ 前端應用成功啟動後,訪問:
|
||||
- **應用首頁**: http://localhost:3000
|
||||
|
||||
### Docker 部署
|
||||
---
|
||||
|
||||
## 🐳 部署方案
|
||||
|
||||
### Docker Compose 本地部署
|
||||
|
||||
最簡單的部署方式,一鍵啟動前後端服務:
|
||||
|
||||
```bash
|
||||
# 使用 Docker Compose 啟動
|
||||
# 啟動所有服務(首次執行會自動構建映像)
|
||||
docker compose up -d --build
|
||||
|
||||
# 查看日誌
|
||||
# 查看服務運行狀態
|
||||
docker compose ps
|
||||
|
||||
# 查看即時日誌
|
||||
docker compose logs -f
|
||||
|
||||
# 查看特定服務日誌
|
||||
docker compose logs -f backend
|
||||
docker compose logs -f frontend
|
||||
|
||||
# 停止服務
|
||||
docker compose down
|
||||
|
||||
# 停止服務並清除資料卷
|
||||
docker compose down -v
|
||||
```
|
||||
|
||||
### 使用流程
|
||||
**Docker Compose 配置說明**:
|
||||
- 後端服務運行於: `http://localhost:8000`
|
||||
- 前端服務運行於: `http://localhost:3000`
|
||||
- 分析結果會持久化儲存在 `./results` 目錄
|
||||
- 服務會在容器異常退出時自動重啟
|
||||
|
||||
1. **訪問首頁** - 查看功能介紹
|
||||
2. **進入分析頁面** - 點擊"開始分析"
|
||||
3. **配置參數**:
|
||||
- 選擇分析師團隊(市場、情緒、新聞、基本面)
|
||||
- 輸入股票代碼(如 NVDA, AAPL, TSLA)
|
||||
- 選擇分析日期
|
||||
- 設定研究深度(淺層/中等/深層)
|
||||
- 選擇 LLM 模型
|
||||
- 輸入 API 金鑰
|
||||
4. **執行分析** - 點擊"執行分析"按鈕
|
||||
5. **查看結果** - 自動跳轉至結果頁面,查看:
|
||||
- 交易決策(買入/賣出/持有)
|
||||
- 股價走勢圖表
|
||||
- 各分析師詳細報告
|
||||
---
|
||||
|
||||
## 核心功能
|
||||
## 📱 使用指南
|
||||
|
||||
### 基本工作流程
|
||||
|
||||
1. **訪問首頁**
|
||||
- 開啟瀏覽器,訪問 http://localhost:3000
|
||||
- 查看系統介紹與功能說明
|
||||
|
||||
2. **進入分析頁面**
|
||||
- 點擊首頁的「開始分析」按鈕
|
||||
- 或直接訪問 http://localhost:3000/analysis
|
||||
|
||||
3. **配置分析參數**
|
||||
|
||||
- **選擇分析師團隊**: 勾選您需要的分析師類型
|
||||
- ✅ 市場分析師 (Market Analyst) - 技術分析與價格走勢
|
||||
- ✅ 情緒分析師 (Sentiment Analyst) - 社交媒體情緒評估
|
||||
- ✅ 新聞分析師 (News Analyst) - 新聞事件影響分析
|
||||
- ✅ 基本面分析師 (Fundamental Analyst) - 財務數據與估值分析
|
||||
|
||||
- **輸入股票代碼**: 例如 `NVDA`, `AAPL`, `TSLA`, `GOOGL`
|
||||
- 支援美股股票代號
|
||||
|
||||
- **選擇分析日期**: 選擇要分析的特定日期
|
||||
- 預設為當前日期
|
||||
|
||||
- **設定研究深度**:
|
||||
- 🟢 **淺層 (Shallow)**: 快速分析,適合即時決策
|
||||
- 🟡 **中等 (Medium)**: 平衡速度與深度
|
||||
- 🔴 **深層 (Deep)**: 全面深入分析,耗時較長
|
||||
|
||||
- **選擇 LLM 模型**:
|
||||
- `gpt-4o` (預設): 平衡性能與成本
|
||||
- `gpt-4-turbo`: 更快的回應速度
|
||||
- `o1-mini`: OpenAI 最新推理模型
|
||||
|
||||
- **輸入 API 金鑰**:
|
||||
- 在表單中直接輸入您的 OpenAI API Key
|
||||
- 或使用環境變數預設值(如已配置)
|
||||
|
||||
4. **執行分析**
|
||||
- 檢查所有參數無誤後,點擊「執行分析」按鈕
|
||||
- 系統會顯示載入動畫,處理時間依研究深度而定(1-5 分鐘)
|
||||
|
||||
5. **查看分析結果**
|
||||
- 分析完成後自動跳轉至結果頁面
|
||||
- 結果包含以下內容:
|
||||
|
||||
**📊 交易決策摘要**
|
||||
- 最終決策: BUY / SELL / HOLD
|
||||
- 建議倉位大小
|
||||
- 風險等級評估
|
||||
- 核心理由總結
|
||||
|
||||
**📈 股價走勢圖表**
|
||||
- 互動式價格圖表(支援折線圖/K線圖切換)
|
||||
- 交易量變化
|
||||
- 關鍵技術指標
|
||||
|
||||
**📄 各分析師詳細報告**
|
||||
- 市場分析師: 技術面分析與趨勢判斷
|
||||
- 情緒分析師: 社群媒體情緒指標
|
||||
- 新聞分析師: 最新新聞事件影響評估
|
||||
- 基本面分析師: 財務健康度與估值分析
|
||||
- 研究團隊辯論: 看漲與看跌觀點對比
|
||||
- 交易員建議: 具體執行計畫
|
||||
- 風險管理: 風險因子與對策
|
||||
|
||||
### API 使用範例
|
||||
|
||||
如果您想要透過 API 整合 TradingAgents,可以參考以下範例:
|
||||
|
||||
#### 健康檢查
|
||||
|
||||
```bash
|
||||
curl http://localhost:8000/api/health
|
||||
```
|
||||
|
||||
#### 執行股票分析
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/api/analyze \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"ticker": "NVDA",
|
||||
"analysis_date": "2024-01-15",
|
||||
"research_depth": "medium",
|
||||
"model": "gpt-4o",
|
||||
"selected_analysts": ["market", "sentiment", "news", "fundamental"],
|
||||
"api_key": "sk-your-openai-key"
|
||||
}'
|
||||
```
|
||||
|
||||
#### 獲取股價資料
|
||||
|
||||
```bash
|
||||
curl "http://localhost:8000/api/price-data/NVDA?start_date=2024-01-01&end_date=2024-01-31"
|
||||
```
|
||||
|
||||
完整的 API 文檔請訪問: http://localhost:8000/docs
|
||||
|
||||
---
|
||||
|
||||
## 🧠 核心功能詳解
|
||||
|
||||
### 多代理協作系統
|
||||
|
||||
- **市場分析師**: 技術指標與價格走勢分析
|
||||
- **情緒分析師**: 社交媒體情緒分析
|
||||
- **新聞分析師**: 新聞事件影響評估
|
||||
- **基本面分析師**: 財務數據與估值分析
|
||||
- **研究團隊**: 看漲/看跌辯論機制
|
||||
- **交易員**: 投資計劃制定
|
||||
- **風險管理**: 風險評估與倉位管理
|
||||
TradingAgents 模擬真實交易公司的組織架構,每個代理都有其專業職責:
|
||||
|
||||
| 代理角色 | 主要職責 | 輸出內容 |
|
||||
|---------|---------|---------|
|
||||
| **市場分析師** | 技術分析 | 技術指標(RSI, MACD, 布林通道)、價格走勢、支撐阻力位 |
|
||||
| **情緒分析師** | 情緒評估 | Reddit/Twitter 情緒指標、熱度趨勢、投資者信心指數 |
|
||||
| **新聞分析師** | 新聞分析 | 最新新聞摘要、事件影響評估、市場反應預測 |
|
||||
| **基本面分析師** | 財務分析 | 財報數據、估值指標(P/E, P/B)、盈利能力評估 |
|
||||
| **看漲研究員** | 多頭論證 | 看漲理由、上漲催化劑、目標價位 |
|
||||
| **看跌研究員** | 空頭論證 | 看跌理由、下跌風險、防守策略 |
|
||||
| **交易員** | 決策整合 | 綜合所有報告,制定交易計劃 |
|
||||
| **風險管理** | 風險控制 | 風險評估、倉位建議、止損止盈設定 |
|
||||
| **投資組合經理** | 最終決策 | 最終交易決定(批准/拒絕),執行指令 |
|
||||
|
||||
### 工作流程圖
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ 使用者輸入參數 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 資料收集階段 │ ◄── yfinance, Reddit, RSS
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌──────────────────────────────┐
|
||||
│ 分析師團隊平行分析 │
|
||||
│ ┌────┬────┬────┬────────┐ │
|
||||
│ │市場│情緒│新聞│基本面│ │
|
||||
│ └────┴────┴────┴────────┘ │
|
||||
└────────┬─────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 研究團隊辯論 │
|
||||
│ 看漲 vs 看跌 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 交易員整合分析 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 風險管理評估 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 投資組合經理決策 │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ 輸出最終報告 │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
### 智能特性
|
||||
|
||||
- **動態研究深度**: 可調節分析詳細程度
|
||||
- **多模型支持**: GPT-4o, GPT-5.1 等
|
||||
- **記憶系統**: ChromaDB 向量存儲歷史決策
|
||||
- **Markdown 報告**: 格式化的分析輸出
|
||||
- **實時數據**: yfinance 股票數據整合
|
||||
#### 1. 動態研究深度調整
|
||||
- **Shallow**: 每個代理進行 1 輪分析,適合快速決策
|
||||
- **Medium**: 每個代理進行 2-3 輪分析,平衡深度與速度
|
||||
- **Deep**: 每個代理進行 5+ 輪分析,全面深入研究
|
||||
|
||||
## 應用截圖
|
||||
#### 2. 多模型支持
|
||||
- 支援 OpenAI (GPT-4, GPT-4o, o1 系列)
|
||||
- 支援 Anthropic Claude
|
||||
- 支援 Google Gemini
|
||||
- 可透過 OpenRouter 存取更多模型
|
||||
|
||||
### 首頁
|
||||
#### 3. 長期記憶系統
|
||||
- 使用 ChromaDB 向量資料庫儲存歷史決策
|
||||
- 代理可以參考過去類似情況的決策
|
||||
- 持續學習與改進分析品質
|
||||
|
||||
#### 4. 結構化輸出
|
||||
- 所有報告均採用 Markdown 格式
|
||||
- 清晰的章節結構
|
||||
- 支援表格、列表、程式碼區塊等豐富格式
|
||||
|
||||
#### 5. 實時資料整合
|
||||
- yfinance: 即時股價與歷史資料
|
||||
- Reddit API: 社群情緒分析
|
||||
- RSS Feeds: 財經新聞抓取
|
||||
- Alpha Vantage: 詳細財務資料(可選)
|
||||
|
||||
---
|
||||
|
||||
## 📸 應用截圖
|
||||
|
||||
### 首頁 - 功能介紹
|
||||
|
||||
展示系統的核心功能與運作流程
|
||||
|
||||

|
||||
|
||||
### 分析配置頁面
|
||||
|
||||

|
||||
直觀的表單介面,輕鬆配置所有分析參數
|
||||
|
||||

|
||||
|
||||
### 股價走勢與交易量(折線圖)
|
||||
|
||||
互動式圖表展示股價變化與交易量
|
||||
|
||||

|
||||
|
||||
### 股價走勢與交易量(K線圖)
|
||||
|
||||
專業的 K 線圖視覺化,適合技術分析
|
||||
|
||||

|
||||
|
||||
### 市場分析師報告
|
||||
|
||||
詳細的技術面分析與市場趨勢判斷
|
||||
|
||||

|
||||
|
||||
### 社群分析師報告
|
||||
### 情緒分析師報告
|
||||
|
||||

|
||||
社群媒體情緒指標與投資者信心評估
|
||||
|
||||

|
||||
|
||||
### 新聞分析師報告
|
||||
|
||||
最新財經新聞摘要與事件影響分析
|
||||
|
||||

|
||||
|
||||
### 基本面 分析師報告
|
||||
### 基本面分析師報告
|
||||
|
||||
財務數據解析與價值評估
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 開發指南
|
||||
|
||||
### 專案開發
|
||||
|
||||
#### 後端開發
|
||||
|
||||
```bash
|
||||
# 啟用虛擬環境
|
||||
conda activate tradingagents
|
||||
|
||||
# 以開發模式執行(自動重載)
|
||||
uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000
|
||||
|
||||
# 執行測試
|
||||
pytest backend/tests
|
||||
|
||||
# 程式碼格式化
|
||||
black backend/
|
||||
ruff backend/
|
||||
```
|
||||
|
||||
#### 前端開發
|
||||
|
||||
```bash
|
||||
# 開發模式(支援熱重載)
|
||||
pnpm -C frontend dev
|
||||
|
||||
# 型別檢查
|
||||
pnpm -C frontend type-check
|
||||
|
||||
# Lint 檢查
|
||||
pnpm -C frontend lint
|
||||
|
||||
# 建構生產版本
|
||||
pnpm -C frontend build
|
||||
|
||||
# 預覽生產版本
|
||||
pnpm -C frontend start
|
||||
```
|
||||
|
||||
### 新增 AI 代理
|
||||
|
||||
若要擴充系統功能,可參考以下步驟新增自訂代理:
|
||||
|
||||
1. 在 `tradingagents/agents/` 建立新的代理類別
|
||||
2. 定義代理的提示詞與任務邏輯
|
||||
3. 在 `tradingagents/graph/` 更新工作流程圖
|
||||
4. 更新後端 API 以支援新代理
|
||||
5. 更新前端 UI 提供選項
|
||||
|
||||
詳細開發文檔請參考 `docs/` 目錄(開發中)。
|
||||
|
||||
---
|
||||
|
||||
## 🙏 致謝
|
||||
|
||||
### 特別感謝
|
||||
|
||||
本專案基於 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) 的原始專案進行改進和擴展。衷心感謝原作者創建了如此優秀的多代理交易分析框架,為我們提供了堅實的基礎。
|
||||
|
||||
### 使用的開源專案
|
||||
|
||||
本專案使用了以下優秀的開源專案:
|
||||
|
||||
- [LangChain](https://github.com/langchain-ai/langchain) - LLM 應用開發框架
|
||||
- [LangGraph](https://github.com/langchain-ai/langgraph) - 多代理工作流編排
|
||||
- [FastAPI](https://github.com/tiangolo/fastapi) - 現代化 Python Web 框架
|
||||
- [Next.js](https://github.com/vercel/next.js) - React 全端框架
|
||||
- [shadcn/ui](https://github.com/shadcn/ui) - 精美的 React 組件庫
|
||||
- [ChromaDB](https://github.com/chroma-core/chroma) - AI 原生向量資料庫
|
||||
- [yfinance](https://github.com/ranaroussi/yfinance) - Yahoo Finance 資料下載工具
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**⭐ 如果這個專案對您有幫助,請給我們一個 Star!**
|
||||
|
||||
Made with ❤️ by [MarkLo127](https://github.com/MarkLo127)
|
||||
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue