多智能体金融交易分析框架

作品简介

# TradingAgents 项目介绍

## 1. 项目概述

TradingAgents 是一个基于大型语言模型(LLM)的多智能体金融交易框架。该项目旨在利用多个专门的 AI 智能体(Agent)协同工作,模拟专业投资研究团队的决策流程,从数据收集、基本面分析、技术分析、市场情绪分析到风险管理和最终交易决策,实现自动化的端到端金融投资分析和决策。



项目提供了两种交互方式:

- **命令行界面 (CLI)**: 用于执行自动化的交易分析流程。

- **Web 应用程序**: 提供一个可视化的界面,用于查看分析过程、结果和历史记录。

## 2. 技术架构

项目的核心是一个多智能体协作系统,基于 `langgraph` 构建的图(Graph)来协调不同智能体之间的信息流动和决策过程。

### 2.1. 核心组件


- **Web 框架**: 使用 **Flask** 搭建后端服务,并通过 **Flask-SocketIO** 实现与前端的实时通信。

- **多智能体框架**: 使用 **LangChain****LangGraph** 构建和协调各个 AI 智能体。智能体之间的协作关系被定义为一个有向图,确保信息流的有序和高效。

- **大语言模型 (LLM)**: 系统设计上支持多种 LLM,如 **OpenAI GPT 系列****Google Gemini****Anthropic Claude** 等,通过配置文件进行切换。

- **数据源**: 集成了多个金融数据 API 和信息源,包括:

    - **Yahoo Finance (`yfinance`)**: 获取股票价格数据。

    - **Finnhub (`finnhub-python`)**: 获取公司基本面数据和市场新闻。

    - **Reddit (`praw`)**: 分析社交媒体情绪。

    - **Google News (`googlenews`)**: 获取更广泛的新闻资讯。

    - **其他**: `akshare`, `tushare` 等,用于获取 A 股市场数据。

- **数据库/缓存**: 使用 **Redis** 作为缓存,提升数据访问速度。


### 2.2. 项目结构


```

TradingAgents/

├── agents/                 # 核心智能体定义

│   ├── analysts/           # 分析师智能体(基本面、新闻、技术等)

│   ├── managers/           # 管理者智能体(研究、风险管理)

│   ├── researchers/        # 研究员智能体(多空信息搜集)

│   └── trader/             # 交易员智能体

├── cli/                    # 命令行界面实现

├── dataflows/              # 数据流和数据源接口

├── graph/                  # Agent 协作图(核心逻辑)

│   └── trading_graph.py    # 定义了智能体协作流程

├── static/                 # Web 前端静态文件 (CSS, JS)

├── templates/              # Web 前端模板 (HTML)

├── web_app.py              # Flask Web 应用主程序

├── run_web.py              # 启动 Web 应用的脚本

├── main.py                 # 启动 CLI 应用的脚本

└── ...

```


## 3. 核心功能


### 3.1. 多智能体协作


系统包含多种角色,各司其职:

- **研究管理员 (Research Manager)**: 协调研究员,分派看多/看空的研究任务。

- **研究员 (Bull/Bear Researcher)**: 从不同角度搜集和整理关于特定股票的利好和利空信息。

- **分析师 (Analyst)**:

    - **新闻分析师**: 分析最新新闻,提取关键信息。

    - **基本面分析师**: 分析公司财报、估值等基本面数据。

    - **技术分析师**: 分析股价走势、交易量等技术指标。

- **风险管理器 (Risk Manager)**: 评估潜在风险,并组织正反方辩论,形成更全面的风险视图。

- **交易员 (Trader)**: 汇总所有分析结果和风险评估,做出最终的买入/卖出/持有的决策建议。


### 3.2. 可视化界面


Web 界面提供了以下功能:

- **配置页面**: 设置 API 密钥、选择股票代码等。

- **分析页面**: 实时展示多智能体分析决策的全过程。

- **历史页面**: 查看历史分析记录。


## 4. 部署与运行


### 4.1. 打包项目


在项目根目录(`trading/`)下,执行以下命令将 `TradingAgents` 文件夹打包成 `TradingAgents.zip`


**Windows (PowerShell):**

```powershell

Compress-Archive -Path TradingAgents -DestinationPath TradingAgents.zip

```


**Linux / macOS:**

```bash

zip -r TradingAgents.zip TradingAgents

```

> **注意**: 打包的文件中不包含 `install_requirements.txt`。请将该文件与 `TradingAgents.zip` 一同分发。


### 4.2. 部署步骤


1.  **环境准备**:

    -   安装 Python 3.10 或更高版本。

    -   将 `TradingAgents.zip``install_requirements.txt` 拷贝到服务器。


2.  **解压项目**:

    解压 `TradingAgents.zip` 文件。


3.  **创建虚拟环境 (推荐)**:

    ```bash

    python -m venv venv

    source venv/bin/activate  # Linux/macOS

    .\venv\Scripts\activate   # Windows

    ```


4.  **安装依赖**:

    将 `install_requirements.txt` 放在解压后的 `TradingAgents` 目录旁,然后安装依赖。

    ```bash

    pip install -r install_requirements.txt

    ```


5.  **配置环境变量**:

    在 `TradingAgents` 目录下,创建一个 `.env` 文件,并填入所需的 API 密钥,例如:

    ```

    OPENAI_API_KEY="sk-..."

    FINNHUB_API_KEY="..."

    # 其他需要的 API key

    ```

    可以参考 `env_example_deepseek.txt` 文件来了解需要哪些配置。


### 4.3. 运行程序


#### 运行 Web 应用


`TradingAgents` 目录下执行:

```bash

python run_web.py

```

应用默认运行在 `http://127.0.0.1:5000`


#### 运行命令行工具


`TradingAgents` 目录下执行:

```bash

python main.py --ticker "AAPL"

```

将 "AAPL" 替换为您想分析的股票代码。可以通过 `python main.py --help` 查看更多选项。


---

此文档由 AI 编程助手生成。

创作时间: