From 13aaa7ba3efe8f5ddf0fc64809d395c93576ba68 Mon Sep 17 00:00:00 2001 From: liuping Date: Sun, 6 Jul 2025 02:54:42 +0800 Subject: [PATCH] docs: add comprehensive Chinese documentation suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � Complete Chinese Documentation Added: � New Chinese Documents: - docs/zh-CN/README.md - 中文版系统概览 - 多市场支持介绍 (美股 + A股) - 百炼大模型集成说明 - 数据库功能概览 - API密钥配置指南 - 使用场景和故障排除 - docs/zh-CN/architecture_guide.md - 系统架构指南 - 高层架构图和组件说明 - 多智能体框架详解 - 多LLM提供商层架构 - 数据层和缓存系统设计 - 数据流模式和错误处理 - 可靠性和可扩展性特性 - docs/zh-CN/quick_start_guide.md - 快速开始指南 - 5分钟快速设置流程 - 分步操作演示 - 配置示例和故障排除 - 示例分析输出 - API密钥需求说明 � Enhanced Chinese Documents: - docs/zh-CN/configuration_guide.md - 配置指南 - 新功能配置详解 - 百炼(DashScope)配置 - 多市场支持配置 - 数据库集成配置 - 多LLM回退配置 � Key Features Documented: - �� 中国A股市场支持 (通达信API) - � 百炼(DashScope)大模型集成 - �️ 数据库集成 (MongoDB + Redis) - � 多市场选择和数据源路由 - � 智能缓存和自动回退机制 - � 支持的交易所和股票格式 � Documentation Benefits: - 为中文用户提供完整的系统指南 - 本土化的配置示例和使用场景 - 详细的API密钥配置说明 - 中国市场特定功能的深度解释 - 故障排除和调试指南 Now Chinese-speaking users have comprehensive documentation covering all system features and capabilities in their native language. --- docs/zh-CN/README.md | 228 +++++++ docs/zh-CN/architecture_guide.md | 376 +++++++++++ docs/zh-CN/configuration_guide.md | 1027 +++++++++++++++++++++++++++++ docs/zh-CN/prompt_templates.md | 517 +++++++++++++++ docs/zh-CN/quick_reference.md | 259 ++++++++ docs/zh-CN/quick_start_guide.md | 334 ++++++++++ 6 files changed, 2741 insertions(+) create mode 100644 docs/zh-CN/README.md create mode 100644 docs/zh-CN/architecture_guide.md create mode 100644 docs/zh-CN/configuration_guide.md create mode 100644 docs/zh-CN/prompt_templates.md create mode 100644 docs/zh-CN/quick_reference.md create mode 100644 docs/zh-CN/quick_start_guide.md diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md new file mode 100644 index 00000000..d1a56471 --- /dev/null +++ b/docs/zh-CN/README.md @@ -0,0 +1,228 @@ +# TradingAgents 中文文档 + +## 📖 概述 + +TradingAgents是一个基于多智能体的金融分析系统,现已全面支持中国A股市场和多LLM提供商。本系统通过智能体协作提供深度的股票分析和投资建议。 + +## 🌟 主要特性 + +### 🌍 多市场支持 +- **美股市场**: 完整的美国股票市场分析 +- **中国A股市场**: 通达信API集成,支持实时A股数据 ⭐ **新功能** +- **智能市场选择**: 交互式CLI市场选择界面 + +### 🤖 多智能体分析框架 +- **市场分析师**: 技术分析和图表模式识别 +- **基本面分析师**: 财务数据和公司基本面分析 +- **新闻分析师**: 新闻情绪和市场情绪分析 +- **多空研究员**: 多角度投资观点辩论 +- **交易员智能体**: 综合决策和风险评估 +- **反思智能体**: 分析质量控制和改进建议 + +### 🧠 多LLM提供商支持 +- **百炼(DashScope)**: 阿里云通义千问模型系列 ⭐ **推荐中国用户** + - **当前设置**: 百炼作为主要选项,智能回退机制 +- **OpenAI**: GPT-4o, GPT-4o-mini, o1, o3系列 +- **Google AI**: Gemini 2.0/2.5 Flash系列 +- **Anthropic**: Claude 3.5/4系列 + +### 🗄️ 企业级数据库集成 +- **MongoDB**: 持久化数据存储和分析 ⭐ **新功能** +- **Redis**: 高性能缓存系统 ⭐ **新功能** +- **智能缓存**: 自动回退机制和性能优化 + +### 📊 数据源集成 +- **美股数据**: Yahoo Finance集成 +- **A股数据**: 通达信API集成 ⭐ **新功能** + - 上海证券交易所 (60xxxx) + - 深圳证券交易所 (00xxxx) + - 创业板 (30xxxx) + - 科创板 (68xxxx) +- **财经新闻**: 多源新闻聚合和情绪分析 + +### ⚙️ 配置管理 +- LLM提供商设置 (百炼、OpenAI、Google、Anthropic) + - **百炼(DashScope)**: 完整支持通义千问模型系列 ⭐ **推荐中国用户** + - **当前设置**: 百炼作为主要选项,智能回退机制 +- 市场选择和数据源配置 + - **美股市场**: Yahoo Finance集成 + - **中国A股市场**: 通达信API集成 ⭐ **新功能** +- 数据库和缓存系统 + - **MongoDB**: 持久化数据存储 + - **Redis**: 高性能缓存 + - **智能缓存**: 自动回退机制 +- 辩论和讨论参数配置 +- API配置和限制设置 + +### 🔧 高级功能 +- **多市场支持**: 美股和中国A股 +- **数据库集成**: MongoDB和Redis企业部署 +- **智能缓存**: 自适应缓存管理和回退 +- **多LLM支持**: 百炼、OpenAI、Google、Anthropic +- **通达信集成**: 实时A股数据访问 +- 风险管理模板 +- 性能优化 +- 自定义提示词创建 +- 环境特定配置 + +## 🚀 快速开始 + +### 1. 安装和设置 +```bash +# 克隆仓库 +git clone https://github.com/your-repo/TradingAgents.git +cd TradingAgents + +# 安装依赖 +pip install -r requirements.txt +pip install pytdx beautifulsoup4 # 中国市场支持 + +# 配置环境变量 +cp .env.example .env +# 编辑.env文件,填入您的API密钥 +``` + +### 2. 基本配置 + +**分析美股 (使用OpenAI)**: +```env +OPENAI_API_KEY=your_openai_api_key +FINNHUB_API_KEY=your_finnhub_api_key +``` + +**分析中国A股 (需要百炼)**: +```env +DASHSCOPE_API_KEY=your_dashscope_api_key +FINNHUB_API_KEY=your_finnhub_api_key +``` + +### 3. 运行分析 +```bash +python -m cli.main +``` + +按照交互式提示选择市场、输入股票代码并配置分析参数。 + +## 📚 文档导航 + +### 🎯 新手指南 +- **[快速开始指南](quick_start_guide.md)** - 5分钟快速设置和首次运行 +- **[配置指南](configuration_guide.md)** - 详细的配置选项和自定义设置 + +### 🏗️ 技术文档 +- **[架构指南](architecture_guide.md)** - 系统架构和技术实现详解 +- **[提示词模板](prompt_templates.md)** - 智能体提示词自定义 + +### 📋 参考资料 +- **[快速参考](quick_reference.md)** - 常用配置和修改速查表 + +## 🔑 API密钥配置说明 + +### 必需的API密钥 + +**百炼API密钥仅在以下情况需要**: +1. 📈 **分析中国A股股票** (使用通达信数据 + 百炼embeddings) +2. 🤖 **选择百炼作为LLM提供商** (通义千问模型) + +**分析美股使用OpenAI/Google模型时**: 不需要百炼API密钥 + +### API密钥获取 +- **百炼(DashScope)**: https://dashscope.aliyun.com/ +- **OpenAI**: https://platform.openai.com/ +- **Google AI**: https://ai.google.dev/ +- **Anthropic**: https://console.anthropic.com/ +- **FinnHub**: https://finnhub.io/ (金融数据,必需) + +## 🌍 支持的市场和交易所 + +### 美股市场 +- **格式**: 1-5位字母代码 (如 AAPL, SPY, TSLA) +- **数据源**: Yahoo Finance +- **示例**: AAPL (苹果), SPY (标普500ETF), TSLA (特斯拉) + +### 中国A股市场 +- **格式**: 6位数字代码 +- **数据源**: 通达信API +- **支持交易所**: + - 上海证券交易所: 60xxxx (如 600036 招商银行) + - 深圳证券交易所: 00xxxx (如 000001 平安银行) + - 创业板: 30xxxx (如 300001 科技股) + - 科创板: 68xxxx (如 688001 创新公司) + +## 🗄️ 数据库功能 (可选) + +### MongoDB集成 +- **用途**: 持久化数据存储和历史分析 +- **功能**: Token使用跟踪、分析结果存储、用户会话管理 +- **设置**: `MONGODB_ENABLED=true` 在.env中 + +### Redis集成 +- **用途**: 高性能缓存和会话管理 +- **功能**: 快速数据访问、实时缓存、性能优化 +- **设置**: `REDIS_ENABLED=true` 在.env中 + +### 智能回退 +- **第一层**: Redis高性能缓存 +- **第二层**: MongoDB持久化存储 +- **第三层**: 文件缓存 (始终可用) + +## 🎯 使用场景 + +### 场景1: 美股日常分析 +- **配置**: OpenAI + FinnHub +- **市场**: 美股 +- **特点**: 快速、稳定、国际化 + +### 场景2: 中国A股专业分析 +- **配置**: 百炼 + FinnHub + 通达信 +- **市场**: 中国A股 +- **特点**: 本土化、实时数据、中文优化 + +### 场景3: 企业级部署 +- **配置**: 多LLM + MongoDB + Redis +- **市场**: 美股 + A股 +- **特点**: 高性能、可扩展、完整功能 + +## 🛠️ 故障排除 + +### 常见问题 +1. **API密钥错误**: 检查.env文件中的密钥格式 +2. **网络连接问题**: 系统自动回退到缓存数据 +3. **数据库连接失败**: 自动回退到文件缓存 +4. **股票代码格式错误**: 参考市场特定格式要求 + +### 调试模式 +```bash +export TRADINGAGENTS_LOG_LEVEL=DEBUG +python -m cli.main +``` + +## 🤝 贡献和支持 + +### 获取帮助 +- **GitHub Issues**: 报告错误和功能请求 +- **文档**: 查阅详细的配置和使用指南 +- **社区**: 参与讨论和分享使用经验 + +### 贡献代码 +- Fork项目并创建功能分支 +- 提交Pull Request +- 遵循代码规范和测试要求 + +--- + +## 📈 系统优势 + +### 技术优势 +- **多智能体协作**: 多角度分析,提高决策质量 +- **多LLM支持**: 降低单点故障风险,提高可靠性 +- **智能缓存**: 三层缓存架构,确保高性能和高可用 +- **模块化设计**: 易于扩展和维护 + +### 市场优势 +- **全球市场覆盖**: 支持美股和中国A股两大主要市场 +- **本土化优化**: 中国市场专用数据源和模型 +- **实时数据**: 通达信API提供实时A股数据 +- **智能回退**: 确保服务连续性和稳定性 + +🎉 **开始您的智能投资分析之旅!** TradingAgents为您提供专业级的多市场股票分析能力。 diff --git a/docs/zh-CN/architecture_guide.md b/docs/zh-CN/architecture_guide.md new file mode 100644 index 00000000..60931881 --- /dev/null +++ b/docs/zh-CN/architecture_guide.md @@ -0,0 +1,376 @@ +# TradingAgents 系统架构指南 + +## 📖 概述 + +本文档提供TradingAgents系统架构的全面概览,包括中国市场功能集成、数据库系统和多LLM支持。该架构设计注重可扩展性、可靠性和全球市场覆盖。 + +## 🏗️ 高层架构 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ TradingAgents 系统 │ +├─────────────────────────────────────────────────────────────────┤ +│ CLI界面 (市场选择 + 配置) │ +├─────────────────────────────────────────────────────────────────┤ +│ 多智能体框架 │ +│ ├── 市场分析师 ├── 基本面分析师 │ +│ ├── 新闻分析师 ├── 多空研究员 │ +│ └── 交易员智能体 └── 风险管理 │ +├─────────────────────────────────────────────────────────────────┤ +│ 多LLM提供商层 │ +│ ├── 百炼(通义千问) ├── OpenAI(GPT) │ +│ ├── Google(Gemini) └── Anthropic(Claude) │ +├─────────────────────────────────────────────────────────────────┤ +│ 数据层 │ +│ ├── 美股市场 (Yahoo Finance) │ +│ ├── 中国A股 (通达信API) │ +│ └── 财经新闻 & 社交媒体 │ +├─────────────────────────────────────────────────────────────────┤ +│ 缓存与存储层 │ +│ ├── MongoDB (持久化存储) │ +│ ├── Redis (高性能缓存) │ +│ └── 文件缓存 (回退方案) │ +└─────────────────────────────────────────────────────────────────┘ +``` + +## 🎯 核心组件 + +### 1. CLI界面层 + +#### 市场选择系统 +- **交互式市场选择**: 美股 vs 中国A股 +- **格式验证**: 市场特定的股票代码验证 +- **数据源路由**: 基于市场选择的自动路由 +- **英文界面**: 国际化就绪 + +**关键文件**: +``` +cli/main.py - 主CLI应用程序 +cli/utils.py - 市场选择和验证工具 +``` + +**流程**: +``` +用户输入 → 市场选择 → 股票代码验证 → 数据源分配 +``` + +### 2. 多智能体框架 + +#### 智能体层次结构 +``` +TradingAgentsGraph +├── 分析师团队 +│ ├── 市场分析师 (技术分析) +│ ├── 基本面分析师 (财务分析) +│ └── 新闻分析师 (情绪分析) +├── 研究团队 +│ ├── 多头研究员 (积极情绪) +│ └── 空头研究员 (风险分析) +├── 交易团队 +│ ├── 交易员智能体 (决策制定) +│ └── 风险管理员 (风险评估) +└── 反思系统 + └── 反思智能体 (质量控制) +``` + +**关键文件**: +``` +tradingagents/graph/trading_graph.py - 主智能体编排 +tradingagents/agents/analysts/ - 分析师实现 +tradingagents/agents/researchers/ - 研究团队 +tradingagents/agents/trader/ - 交易决策 +``` + +### 3. 多LLM提供商层 + +#### 提供商架构 +``` +LLM请求 → 提供商路由器 → 特定适配器 → API调用 → 响应 +``` + +#### 支持的提供商 +1. **百炼(DashScope)** + - 模型: qwen-turbo, qwen-plus, qwen-max, qwen-max-longcontext + - 中文语言优化 + - 中国用户首选 + +2. **OpenAI** + - 模型: GPT-4o, GPT-4o-mini, o1, o3, o4-mini + - 英文内容全球标准 + +3. **Google AI** + - 模型: Gemini 2.0 Flash, Gemini 2.5 Flash + - 高级推理能力 + +4. **Anthropic** + - 模型: Claude 3.5 Haiku, Claude 3.5 Sonnet, Claude 4 + - 强大的分析能力 + +**关键文件**: +``` +tradingagents/graph/trading_graph.py - LLM初始化 +tradingagents/agents/utils/memory.py - Embedding服务 +cli/utils.py - 提供商选择 +``` + +#### 智能回退系统 +``` +主要提供商 (百炼) + ↓ (如果不可用) +次要提供商 (OpenAI) + ↓ (如果不可用) +第三提供商 (Google/Anthropic) + ↓ (如果全部失败) +错误处理 & 用户通知 +``` + +### 4. 数据层架构 + +#### 多市场数据源 + +**美股市场**: +``` +Yahoo Finance API → 数据验证 → 缓存存储 → 智能体消费 +``` + +**中国A股市场**: +``` +通达信API → 数据优化 → 缓存存储 → 智能体消费 +``` + +#### 数据流架构 +``` +┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ +│ 数据请求 │ -> │ 源路由器 │ -> │ 数据提供商 │ +└─────────────────┘ └──────────────────┘ └─────────────────┘ + │ + ▼ +┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ +│ 缓存管理器 │ <- │ 数据处理器 │ <- │ 原始数据 │ +└─────────────────┘ └──────────────────┘ └─────────────────┘ +``` + +**关键文件**: +``` +tradingagents/dataflows/interface.py - 数据接口 +tradingagents/dataflows/tdx_utils.py - 通达信集成 +tradingagents/dataflows/optimized_china_data.py - 中国数据优化 +tradingagents/dataflows/chinese_finance_utils.py - 中国财经工具 +tradingagents/dataflows/stock_data_service.py - 统一数据服务 +``` + +#### 支持的中国交易所 +- **上海证券交易所**: 60xxxx (如 600036 - 招商银行) +- **深圳证券交易所**: 00xxxx (如 000001 - 平安银行) +- **创业板**: 30xxxx (如 300001 - 科技股) +- **科创板**: 68xxxx (如 688001 - 创新公司) + +### 5. 缓存与存储层 + +#### 三层缓存架构 + +**第一层: Redis (高性能缓存)** +``` +内存基础 → 亚毫秒访问 → 实时数据 +``` + +**第二层: MongoDB (持久化存储)** +``` +文档基础 → 结构化存储 → 历史数据 & 分析 +``` + +**第三层: 文件缓存 (回退方案)** +``` +文件基础 → 可靠回退 → 始终可用 +``` + +#### 缓存管理流程 +``` +数据请求 + ↓ +Redis检查 (第一层) + ↓ (如果未命中) +MongoDB检查 (第二层) + ↓ (如果未命中) +文件缓存检查 (第三层) + ↓ (如果未命中) +外部API调用 + ↓ +存储到所有层 +``` + +**关键文件**: +``` +tradingagents/dataflows/cache_manager.py - 缓存协调 +tradingagents/dataflows/db_cache_manager.py - 数据库缓存 +tradingagents/dataflows/integrated_cache.py - 集成缓存系统 +tradingagents/dataflows/adaptive_cache.py - 自适应缓存策略 +tradingagents/config/database_manager.py - 数据库连接 +tradingagents/config/mongodb_storage.py - MongoDB操作 +``` + +#### 数据库模式设计 + +**MongoDB集合**: +``` +stock_data - 历史股价和成交量 +analysis_results - 智能体分析输出 +token_usage - LLM API使用跟踪 +cache_metadata - 缓存管理信息 +user_sessions - 用户交互历史 +``` + +**Redis键模式**: +``` +stock:{symbol}:{date} - 日股票数据 +analysis:{symbol}:{timestamp} - 分析结果 +news:{symbol}:{date} - 新闻情绪数据 +cache:meta:{key} - 缓存元数据 +``` + +## 🔄 数据流模式 + +### 1. 分析工作流 +``` +用户输入 (CLI) + ↓ +市场选择 & 验证 + ↓ +数据获取 (多源) + ↓ +智能体分析 (多LLM) + ↓ +结果聚合 + ↓ +输出生成 + ↓ +缓存存储 +``` + +### 2. 缓存工作流 +``` +数据请求 + ↓ +缓存键生成 + ↓ +第一层 (Redis) 检查 + ↓ (如果未命中) +第二层 (MongoDB) 检查 + ↓ (如果未命中) +第三层 (文件) 检查 + ↓ (如果未命中) +外部API调用 + ↓ +多层存储 + ↓ +响应用户 +``` + +### 3. 错误处理工作流 +``` +组件故障 + ↓ +错误检测 + ↓ +回退激活 + ↓ +替代路径 + ↓ +用户通知 (如需要) + ↓ +优雅降级 +``` + +## 🛡️ 可靠性与可扩展性特性 + +### 高可用性设计 +- **多LLM回退**: 自动提供商切换 +- **多层缓存**: 冗余数据存储 +- **优雅降级**: 系统在功能减少的情况下继续运行 +- **错误恢复**: 自动重试机制 + +### 可扩展性特性 +- **数据库集群**: MongoDB副本集 +- **缓存扩展**: Redis集群支持 +- **负载均衡**: 多个API端点 +- **水平扩展**: 无状态智能体设计 + +### 性能优化 +- **智能缓存**: 自适应缓存策略 +- **连接池**: 数据库连接管理 +- **异步处理**: 非阻塞操作 +- **数据压缩**: 高效存储格式 + +## 🔧 配置管理 + +### 基于环境的配置 +``` +.env文件 → 环境变量 → 运行时配置 +``` + +### 配置层次结构 +``` +1. 环境变量 (.env) +2. 默认配置 (default_config.py) +3. 运行时覆盖 (main.py) +4. 动态配置 (config.py) +``` + +### 配置类别 +- **API密钥**: LLM提供商和数据源 +- **数据库设置**: MongoDB和Redis配置 +- **缓存设置**: 缓存TTL和策略 +- **市场设置**: 支持的市场和交易所 +- **智能体设置**: 模型选择和参数 + +## 📊 监控与分析 + +### 系统指标 +- **API使用**: Token消费和成本 +- **缓存性能**: 命中率和响应时间 +- **数据库性能**: 查询时间和存储使用 +- **错误率**: 按组件的故障率 + +### 业务指标 +- **分析质量**: 智能体性能指标 +- **用户参与**: 使用模式和偏好 +- **市场覆盖**: 支持的股票代码和交易所 +- **响应时间**: 端到端分析持续时间 + +## 🚀 部署架构 + +### 开发环境 +``` +本地机器 → 文件缓存 → 单一LLM提供商 → 基础功能 +``` + +### 生产环境 +``` +应用服务器 → Redis集群 → MongoDB副本集 → 多LLM → 完整功能 +``` + +### 云部署选项 +- **数据库**: MongoDB Atlas, Redis Cloud +- **应用程序**: Docker容器, Kubernetes +- **负载均衡**: 应用程序负载均衡器 +- **监控**: 应用程序性能监控 + +## 🔮 未来架构增强 + +### 计划改进 +- **微服务架构**: 服务分解 +- **事件驱动架构**: 异步消息处理 +- **机器学习管道**: 自动模型训练 +- **实时流处理**: 实时市场数据处理 +- **全球CDN**: 分布式缓存网络 + +### 扩展点 +- **新市场支持**: 额外的交易所和地区 +- **新LLM提供商**: 额外的AI服务 +- **自定义智能体**: 用户定义的分析智能体 +- **插件系统**: 第三方集成 +- **API网关**: 外部服务访问 + +--- + +该架构为全球金融市场分析提供了强大、可扩展的基础,同时保持了未来增强和集成的灵活性。 diff --git a/docs/zh-CN/configuration_guide.md b/docs/zh-CN/configuration_guide.md new file mode 100644 index 00000000..2a06d691 --- /dev/null +++ b/docs/zh-CN/configuration_guide.md @@ -0,0 +1,1027 @@ +# TradingAgents 配置与提示词修改指南 + +## 📖 概述 + +本文档为TradingAgents项目的新手用户提供详细的配置修改和提示词定制指南。通过本指南,您将了解: +- 如何修改系统配置参数 +- 如何配置多市场支持(美股和A股) +- 如何设置数据库集成(MongoDB和Redis) +- 如何配置多LLM提供商(百炼、OpenAI、Google、Anthropic) +- 如何定制各个智能体的提示词 +- 如何添加新的功能和配置 + +## 🌟 新功能概览 + +### 🇨🇳 中国A股市场支持 +- **通达信API集成**: 实时A股数据获取 +- **市场选择**: 交互式CLI市场选择 +- **交易所支持**: 上交所、深交所、创业板、科创板 +- **智能缓存**: 优化的数据获取和存储 + +### 🤖 百炼(DashScope)集成 +- **通义千问模型系列**: qwen-turbo, qwen-plus, qwen-max, qwen-max-longcontext +- **Embedding服务**: 百炼embedding用于记忆系统 +- **智能回退**: 百炼不可用时自动回退到OpenAI + +### 🗄️ 数据库集成 +- **MongoDB**: 持久化数据存储和分析 +- **Redis**: 高性能缓存 +- **自适应缓存**: 智能缓存管理和自动回退 + +## 🔧 配置文件位置与说明 + +### 1. 主配置文件 + +#### 📁 `tradingagents/default_config.py` +**作用**: 项目的核心配置文件,定义所有默认参数 + +```python +DEFAULT_CONFIG = { + # 目录配置 + "project_dir": "项目根目录路径", + "results_dir": "结果输出目录", + "data_dir": "数据存储目录", + "data_cache_dir": "缓存目录", + + # LLM模型配置 + "llm_provider": "dashscope", # LLM提供商: "dashscope", "openai", "google", "anthropic" + "deep_think_llm": "qwen-plus", # 深度思考模型 + "quick_think_llm": "qwen-turbo", # 快速思考模型 + "backend_url": "https://dashscope.aliyuncs.com/api/v1", # API后端地址 + + # 辩论与讨论设置 + "max_debate_rounds": 1, # 最大辩论轮数 + "max_risk_discuss_rounds": 1, # 最大风险讨论轮数 + "max_recur_limit": 100, # 最大递归限制 + + # 工具设置 + "online_tools": True, # 是否使用在线工具 +} +``` + +**修改方法**: +1. 直接编辑 `tradingagents/default_config.py` 文件 +2. 修改对应的配置值 +3. 重启应用生效 + +#### 📁 `main.py` +**作用**: 运行时配置覆盖,可以在不修改默认配置的情况下临时调整参数 + +```python +# 创建自定义配置 +config = DEFAULT_CONFIG.copy() +config["llm_provider"] = "google" # 使用Google模型 +config["backend_url"] = "https://generativelanguage.googleapis.com/v1" +config["deep_think_llm"] = "gemini-2.0-flash" # 深度思考模型 +config["quick_think_llm"] = "gemini-2.0-flash" # 快速思考模型 +config["max_debate_rounds"] = 2 # 增加辩论轮数 +config["online_tools"] = True # 启用在线工具 +``` + +**修改方法**: +1. 编辑 `main.py` 文件中的config部分 +2. 添加或修改需要覆盖的配置项 +3. 保存并运行 + +### 2. 动态配置管理 + +#### 📁 `tradingagents/dataflows/config.py` +**作用**: 提供配置的动态获取和设置功能 + +```python +# 获取当前配置 +config = get_config() + +# 动态修改配置 +set_config({ + "llm_provider": "anthropic", + "max_debate_rounds": 3 +}) +``` + +## 🌟 新功能配置详解 + +### 1. 环境变量配置 (`.env`) + +#### 📁 `.env` 文件设置 +**作用**: 配置API密钥和数据库设置 + +**必需的API密钥**: + +**仅分析美股时**: +```env +# 选择一个LLM提供商 +OPENAI_API_KEY=your_openai_api_key_here +# 或者 +GOOGLE_API_KEY=your_google_api_key_here +# 或者 +ANTHROPIC_API_KEY=your_anthropic_api_key_here + +# FinnHub - 金融数据必需 +FINNHUB_API_KEY=your_finnhub_api_key_here +``` + +**分析中国A股时**: +```env +# 百炼 - 中国股票分析必需 +DASHSCOPE_API_KEY=your_dashscope_api_key_here + +# FinnHub - 金融数据必需 +FINNHUB_API_KEY=your_finnhub_api_key_here +``` + +**使用百炼LLM提供商时**: +```env +# 百炼 - 通义千问模型必需 +DASHSCOPE_API_KEY=your_dashscope_api_key_here + +# FinnHub - 金融数据必需 +FINNHUB_API_KEY=your_finnhub_api_key_here +``` + +**数据库配置(可选)**: +```env +# MongoDB - 持久化数据存储 +MONGODB_ENABLED=false +MONGODB_HOST=localhost +MONGODB_PORT=27018 +MONGODB_USERNAME=admin +MONGODB_PASSWORD=your_mongodb_password +MONGODB_DATABASE=tradingagents + +# Redis - 高性能缓存 +REDIS_ENABLED=false +REDIS_HOST=localhost +REDIS_PORT=6380 +REDIS_PASSWORD=your_redis_password +REDIS_DB=0 +``` + +### 2. 市场选择配置 + +#### 📁 CLI市场选择 +**作用**: 配置支持的市场和数据源 + +**支持的市场**: +1. **美股市场** + - 格式: 1-5位字母代码 (如 AAPL, SPY) + - 数据源: Yahoo Finance + - 验证: `^[A-Z]{1,5}$` + +2. **中国A股市场** + - 格式: 6位数字代码 (如 000001, 600036) + - 数据源: 通达信API + - 验证: `^\d{6}$` + - 交易所: 上交所(60xxxx), 深交所(00xxxx), 创业板(30xxxx), 科创板(68xxxx) + +**代码中的配置**: +```python +# 市场特定配置 +market_config = { + "us_stock": { + "data_source": "yahoo_finance", + "pattern": r'^[A-Z]{1,5}$' + }, + "china_a_share": { + "data_source": "tongdaxin", + "pattern": r'^\d{6}$' + } +} +``` + +### 3. 数据库集成配置 + +#### 📁 MongoDB配置 +**作用**: 持久化数据存储和分析 + +**设置步骤**: +1. **启动MongoDB**: + ```bash + docker run -d -p 27017:27017 --name mongodb mongo + ``` + +2. **在.env中启用**: + ```env + MONGODB_ENABLED=true + ``` + +3. **配置选项**: + ```python + mongodb_config = { + "host": "localhost", + "port": 27018, + "database": "tradingagents", + "username": "admin", + "password": "your_password" + } + ``` + +#### 📁 Redis配置 +**作用**: 高性能缓存 + +**设置步骤**: +1. **启动Redis**: + ```bash + docker run -d -p 6379:6379 --name redis redis + ``` + +2. **在.env中启用**: + ```env + REDIS_ENABLED=true + ``` + +3. **配置选项**: + ```python + redis_config = { + "host": "localhost", + "port": 6380, + "password": "your_password", + "db": 0 + } + ``` + +### 4. LLM提供商配置 + +#### 📁 百炼(DashScope)配置 +**作用**: 中文优化的LLM提供商 + +**支持的模型**: +- `qwen-turbo`: 快速响应,适合快速任务 +- `qwen-plus`: 平衡性能和成本(推荐) +- `qwen-max`: 复杂分析的最佳性能 +- `qwen-max-longcontext`: 超长上下文支持 + +**配置示例**: +```python +dashscope_config = { + "llm_provider": "dashscope", + "deep_think_llm": "qwen-plus", + "quick_think_llm": "qwen-turbo", + "backend_url": "https://dashscope.aliyuncs.com/api/v1" +} +``` + +**API密钥设置**: +1. 访问: https://dashscope.aliyun.com/ +2. 注册阿里云账号 +3. 开通百炼服务 +4. 获取API密钥 +5. 在.env中设置: `DASHSCOPE_API_KEY=your_key` + +#### 📁 多LLM回退配置 +**作用**: LLM提供商之间的智能回退 + +**回退优先级**: +1. 主要: 百炼(如果配置) +2. 次要: OpenAI(如果配置) +3. 第三: Google AI(如果配置) +4. 回退: Anthropic(如果配置) + +**配置**: +```python +fallback_config = { + "primary_provider": "dashscope", + "fallback_providers": ["openai", "google", "anthropic"], + "auto_fallback": True, + "retry_attempts": 3 +} +``` + +## 🤖 智能体提示词修改指南 + +### 1. 分析师提示词 + +#### 📁 市场分析师 (`tradingagents/agents/analysts/market_analyst.py`) + +**位置**: 第24-50行的 `system_message` 变量 + +**当前提示词**: +```python +system_message = ( + """You are a trading assistant tasked with analyzing financial markets. + Your role is to select the **most relevant indicators** for a given market + condition or trading strategy from the following list...""" +) +``` + +**修改示例**: +```python +system_message = ( + """您是一位专业的市场分析师,专门分析金融市场。您的任务是从以下指标列表中 + 选择最相关的指标,为特定的市场条件或交易策略提供分析。目标是选择最多8个 + 提供互补信息且无冗余的指标...""" +) +``` + +#### 📁 基本面分析师 (`tradingagents/agents/analysts/fundamentals_analyst.py`) + +**位置**: 第23-26行的 `system_message` 变量 + +**修改要点**: +- 分析深度要求 +- 报告格式要求 +- 关注的财务指标 + +#### 📁 新闻分析师 (`tradingagents/agents/analysts/news_analyst.py`) + +**位置**: 第20-23行的 `system_message` 变量 + +**修改要点**: +- 新闻来源偏好 +- 分析时间范围 +- 关注的新闻类型 + +#### 📁 社交媒体分析师 (`tradingagents/agents/analysts/social_media_analyst.py`) + +**位置**: 第19-22行的 `system_message` 变量 + +**修改要点**: +- 情感分析深度 +- 社交媒体平台偏好 +- 情感权重设置 + +### 2. 研究员提示词 + +#### 📁 多头研究员 (`tradingagents/agents/researchers/bull_researcher.py`) + +**位置**: 第25-43行的 `prompt` 变量 + +**当前提示词结构**: +```python +prompt = f"""You are a Bull Analyst advocating for investing in the stock. + +Key points to focus on: +- Growth Potential: 突出公司的市场机会、收入预测和可扩展性 +- Competitive Advantages: 强调独特产品、强势品牌或主导市场地位 +- Positive Indicators: 使用财务健康、行业趋势和最新正面新闻作为证据 +- Bear Counterpoints: 用具体数据和合理推理批判性分析空头论点 +""" +``` + +**修改建议**: +- 调整分析重点 +- 修改论证策略 +- 自定义反驳逻辑 + +#### 📁 空头研究员 (`tradingagents/agents/researchers/bear_researcher.py`) + +**修改要点**: +- 风险识别重点 +- 悲观情景分析 +- 反驳多头论点的策略 + +### 3. 交易员提示词 + +#### 📁 交易员 (`tradingagents/agents/trader/trader.py`) + +**位置**: 第30-36行的 `messages` 数组中的system消息 + +**当前提示词**: +```python +{ + "role": "system", + "content": f"""You are a trading agent analyzing market data to make + investment decisions. Based on your analysis, provide a specific + recommendation to buy, sell, or hold. End with a firm decision and + always conclude your response with 'FINAL TRANSACTION PROPOSAL: + **BUY/HOLD/SELL**' to confirm your recommendation.""", +} +``` + +**修改示例**: +```python +{ + "role": "system", + "content": f"""您是一位专业的交易智能体,负责分析市场数据并做出投资决策。 + 基于您的分析,请提供具体的买入、卖出或持有建议。 + + 决策要求: + 1. 提供详细的分析理由 + 2. 考虑风险管理 + 3. 必须以'最终交易建议: **买入/持有/卖出**'结束 + + 过往经验教训:{past_memory_str}""", +} +``` + +### 4. 风险管理提示词 + +#### 📁 保守派辩论者 (`tradingagents/agents/risk_mgmt/conservative_debator.py`) +#### 📁 激进派辩论者 (`tradingagents/agents/risk_mgmt/aggresive_debator.py`) +#### 📁 中性派辩论者 (`tradingagents/agents/risk_mgmt/neutral_debator.py`) + +**修改要点**: +- 风险容忍度设置 +- 辩论风格调整 +- 决策权重分配 + +### 5. 反思系统提示词 + +#### 📁 反思系统 (`tradingagents/graph/reflection.py`) + +**位置**: 第15-47行的 `_get_reflection_prompt` 方法 + +**当前提示词结构**: +```python +return """ +You are an expert financial analyst tasked with reviewing trading +decisions/analysis and providing a comprehensive, step-by-step analysis. + +1. Reasoning: 分析每个交易决策是否正确 +2. Improvement: 对错误决策提出修正建议 +3. Summary: 总结成功和失败的经验教训 +4. Query: 将关键洞察提取为简洁的句子 +""" +``` + +## 🎯 提示词修改最佳实践 + +### 1. 修改前的准备工作 + +1. **备份原文件**: + ```bash + cp tradingagents/agents/trader/trader.py tradingagents/agents/trader/trader.py.backup + ``` + +2. **了解智能体角色**: 确保修改符合智能体的预期功能 + +3. **测试环境准备**: 在测试环境中验证修改效果 + +### 2. 提示词修改技巧 + +#### 🔍 **结构化提示词** +```python +system_message = f""" +角色定义:您是一位{role_name} + +主要任务: +1. {task_1} +2. {task_2} +3. {task_3} + +分析要求: +- 深度:{analysis_depth} +- 格式:{output_format} +- 重点:{focus_areas} + +输出格式: +{output_template} + +注意事项: +- {constraint_1} +- {constraint_2} +""" +``` + +#### 🌐 **多语言支持** +```python +# 中文提示词示例 +system_message_cn = """ +您是一位专业的股票分析师,具有以下特点: + +专业领域: +- 技术分析:均线、MACD、RSI等指标分析 +- 基本面分析:财务报表、行业趋势、公司治理 +- 市场情绪:新闻分析、社交媒体情绪、投资者行为 + +分析框架: +1. 数据收集:获取相关市场数据 +2. 指标计算:计算技术和基本面指标 +3. 趋势识别:识别短期和长期趋势 +4. 风险评估:评估潜在风险和机会 +5. 投资建议:提供明确的买入/持有/卖出建议 + +输出要求: +- 使用中文进行分析 +- 提供详细的分析理由 +- 包含风险提示 +- 以表格形式总结关键指标 +""" +``` + +#### ⚙️ **参数化提示词** +```python +def create_analyst_prompt( + role="市场分析师", + analysis_depth="详细", + time_horizon="1周", + risk_tolerance="中等", + output_language="中文" +): + return f""" +您是一位专业的{role},请根据以下参数进行分析: + +分析深度:{analysis_depth} +时间范围:{time_horizon} +风险偏好:{risk_tolerance} +输出语言:{output_language} + +请基于这些参数提供相应的市场分析和投资建议。 +""" +``` + +### 3. 常见修改场景 + +#### 📈 **调整分析重点** +```python +# 原始:通用市场分析 +system_message = "分析整体市场趋势..." + +# 修改:专注特定行业 +system_message = "专门分析科技股市场趋势,重点关注AI、半导体、云计算行业..." +``` + +#### 🎯 **修改决策风格** +```python +# 原始:保守型 +"provide conservative investment recommendations..." + +# 修改:激进型 +"provide aggressive growth-oriented investment recommendations with higher risk tolerance..." +``` + +#### 🌍 **本地化适配** +```python +# 原始:美股市场 +"analyze US stock market trends..." + +# 修改:A股市场 +"分析中国A股市场趋势,考虑中国特色的市场因素,如政策影响、国企改革、科创板等..." +``` + +## 🔧 新增配置项 + +### 1. 缓存配置 (`tradingagents/dataflows/cache_manager.py`) + +```python +# 在cache_manager.py中添加新的缓存配置 +self.cache_config = { + 'us_stock_data': { + 'ttl_hours': 2, # 美股数据缓存2小时 + 'description': '美股历史数据' + }, + 'china_stock_data': { + 'ttl_hours': 1, # A股数据缓存1小时 + 'description': 'A股历史数据' + }, + # 添加新的缓存类型 + 'crypto_data': { + 'ttl_hours': 0.5, # 加密货币数据缓存30分钟 + 'description': '加密货币数据' + } +} +``` + +### 2. API配置 + +```python +# 在default_config.py中添加新的API配置 +DEFAULT_CONFIG = { + # 现有配置... + + # 新增API配置 + "api_keys": { + "finnhub": "your_finnhub_api_key", + "alpha_vantage": "your_alpha_vantage_key", + "polygon": "your_polygon_key" + }, + + # API限制配置 + "api_limits": { + "finnhub_calls_per_minute": 60, + "alpha_vantage_calls_per_minute": 5, + "polygon_calls_per_minute": 100 + } +} +``` + +## 🚀 快速开始示例 + +### 1. 切换到Google模型 + +```python +# 编辑 main.py +config = DEFAULT_CONFIG.copy() +config["llm_provider"] = "google" +config["backend_url"] = "https://generativelanguage.googleapis.com/v1" +config["deep_think_llm"] = "gemini-2.0-flash" +config["quick_think_llm"] = "gemini-2.0-flash" +``` + +#### 🚀 支持的Google模型 + +**快速思考模型(快速分析)**: +- `gemini-2.0-flash-lite` - 成本效率和低延迟 +- `gemini-2.0-flash` - 下一代功能、速度和思考能力 ⭐ **推荐** +- `gemini-2.5-flash-preview-05-20` - 自适应思考、成本效率 + +**深度思考模型(复杂分析)**: +- `gemini-2.0-flash-lite` - 成本效率和低延迟 +- `gemini-2.0-flash` - 下一代功能、速度和思考能力 ⭐ **当前默认** +- `gemini-2.5-flash-preview-05-20` - 自适应思考、成本效率 +- `gemini-2.5-pro-preview-06-05` - 专业级性能 + +#### 🔑 Google API密钥设置 + +**方法1: 环境变量(推荐)** +```bash +export GOOGLE_API_KEY="your_google_api_key_here" +``` + +**方法2: 代码中设置** +```python +import os +os.environ["GOOGLE_API_KEY"] = "your_google_api_key_here" +``` + +**方法3: .env文件** +``` +# 在项目根目录创建.env文件 +GOOGLE_API_KEY=your_google_api_key_here +``` + +#### 📋 模型选择示例 + +**高性能配置**: +```python +config["deep_think_llm"] = "gemini-2.5-pro-preview-06-05" # 最佳推理能力 +config["quick_think_llm"] = "gemini-2.0-flash" # 快速响应 +``` + +**成本优化配置**: +```python +config["deep_think_llm"] = "gemini-2.0-flash-lite" # 经济实惠 +config["quick_think_llm"] = "gemini-2.0-flash-lite" # 经济实惠 +``` + +**平衡配置(当前默认)**: +```python +config["deep_think_llm"] = "gemini-2.0-flash" # 良好性能 +config["quick_think_llm"] = "gemini-2.0-flash" # 良好速度 +``` + +### 2. 修改为中文分析师 + +```python +# 编辑 tradingagents/agents/analysts/market_analyst.py +system_message = ( + """您是一位专业的中文市场分析师,专门分析中国A股和美股市场。 + + 您的主要任务: + 1. 选择最相关的技术指标(最多8个) + 2. 提供详细的中文市场分析 + 3. 考虑中国特色的市场因素 + + 技术指标类别: + + 移动平均线: + - close_50_sma: 50日简单移动平均线,中期趋势指标 + - close_200_sma: 200日简单移动平均线,长期趋势基准 + - close_10_ema: 10日指数移动平均线,短期趋势响应 + + 请用中文提供详细且细致的趋势分析,避免简单地说"趋势混合"。 + 在报告末尾添加Markdown表格来组织关键要点。""" +) +``` + +### 2. 添加风险控制 + +```python +# 编辑 tradingagents/agents/trader/trader.py +messages = [ + { + "role": "system", + "content": f"""您是一位专业的交易智能体,具有严格的风险控制意识。 + + 交易原则: + 1. 风险第一,收益第二 + 2. 严格止损,保护本金 + 3. 分散投资,降低风险 + 4. 基于数据,理性决策 + + 决策流程: + 1. 分析市场趋势和技术指标 + 2. 评估基本面和新闻影响 + 3. 计算风险收益比 + 4. 设定止损和止盈点 + 5. 做出最终交易决策 + + 输出要求: + - 必须包含风险评估 + - 必须设定止损点 + - 必须以'最终交易建议: **买入/持有/卖出**'结束 + + 历史经验:{past_memory_str}""", + }, + context, +] +``` + +## 📝 注意事项 + +1. **备份重要**: 修改前务必备份原文件 +2. **测试验证**: 在测试环境中验证修改效果 +3. **版本控制**: 使用Git管理配置变更 +4. **文档更新**: 及时更新相关文档 +5. **团队协作**: 与团队成员同步配置变更 + +## 🔗 相关文件快速索引 + +| 功能 | 文件路径 | 说明 | +|------|----------|------| +| 主配置 | `tradingagents/default_config.py` | 系统默认配置 | +| 运行配置 | `main.py` | 运行时配置覆盖 | +| 动态配置 | `tradingagents/dataflows/config.py` | 配置管理接口 | +| 市场分析师 | `tradingagents/agents/analysts/market_analyst.py` | 技术分析提示词 | +| 基本面分析师 | `tradingagents/agents/analysts/fundamentals_analyst.py` | 基本面分析提示词 | +| 新闻分析师 | `tradingagents/agents/analysts/news_analyst.py` | 新闻分析提示词 | +| 社媒分析师 | `tradingagents/agents/analysts/social_media_analyst.py` | 情感分析提示词 | +| 多头研究员 | `tradingagents/agents/researchers/bull_researcher.py` | 多头分析提示词 | +| 空头研究员 | `tradingagents/agents/researchers/bear_researcher.py` | 空头分析提示词 | +| 交易员 | `tradingagents/agents/trader/trader.py` | 交易决策提示词 | +| 反思系统 | `tradingagents/graph/reflection.py` | 反思分析提示词 | +| 缓存配置 | `tradingagents/dataflows/cache_manager.py` | 缓存管理配置 | + +## 🛠️ 高级配置技巧 + +### 1. 环境变量配置 + +您可以通过环境变量来覆盖某些配置,而无需修改代码: + +```bash +# 设置结果目录 +export TRADINGAGENTS_RESULTS_DIR="/path/to/custom/results" + +# 设置API密钥 +export OPENAI_API_KEY="your_openai_api_key" +export GOOGLE_API_KEY="your_google_api_key" +export FINNHUB_API_KEY="your_finnhub_api_key" +``` + +### 2. 配置文件模板 + +创建 `config_template.py` 用于不同环境的配置: + +```python +# config_template.py +DEVELOPMENT_CONFIG = { + "llm_provider": "openai", + "max_debate_rounds": 1, + "online_tools": False, # 开发环境使用离线工具 + "debug": True +} + +PRODUCTION_CONFIG = { + "llm_provider": "google", + "max_debate_rounds": 3, + "online_tools": True, + "debug": False +} + +TESTING_CONFIG = { + "llm_provider": "mock", # 使用模拟LLM进行测试 + "max_debate_rounds": 1, + "online_tools": False, + "debug": True +} +``` + +### 3. 动态提示词加载 + +创建外部提示词文件,便于管理: + +```python +# prompts/market_analyst_prompts.py +MARKET_ANALYST_PROMPTS = { + "chinese": """您是一位专业的中文市场分析师...""", + "english": """You are a professional market analyst...""", + "conservative": """您是一位保守型市场分析师...""", + "aggressive": """您是一位激进型市场分析师...""" +} + +# 在market_analyst.py中使用 +from prompts.market_analyst_prompts import MARKET_ANALYST_PROMPTS + +def create_market_analyst(llm, toolkit, style="chinese"): + system_message = MARKET_ANALYST_PROMPTS.get(style, MARKET_ANALYST_PROMPTS["english"]) + # ... 其余代码 +``` + +## 🔍 调试与测试 + +### 1. 提示词测试 + +创建测试脚本验证提示词效果: + +```python +# tests/test_prompts.py +def test_market_analyst_prompt(): + """测试市场分析师提示词""" + from tradingagents.agents.analysts.market_analyst import create_market_analyst + + # 创建模拟状态 + test_state = { + "trade_date": "2024-01-15", + "company_of_interest": "AAPL", + "messages": [] + } + + # 测试分析师响应 + analyst = create_market_analyst(mock_llm, mock_toolkit) + result = analyst(test_state) + + # 验证输出格式 + assert "market_report" in result + assert len(result["market_report"]) > 100 +``` + +### 2. 配置验证 + +```python +# utils/config_validator.py +def validate_config(config): + """验证配置的有效性""" + required_keys = [ + "llm_provider", "deep_think_llm", "quick_think_llm", + "backend_url", "max_debate_rounds" + ] + + for key in required_keys: + if key not in config: + raise ValueError(f"Missing required config key: {key}") + + if config["max_debate_rounds"] < 1: + raise ValueError("max_debate_rounds must be at least 1") + + valid_providers = ["openai", "google", "anthropic"] + if config["llm_provider"] not in valid_providers: + raise ValueError(f"Invalid llm_provider: {config['llm_provider']}") + + return True +``` + +## 📊 性能优化配置 + +### 1. 缓存优化 + +```python +# 在default_config.py中添加缓存优化配置 +DEFAULT_CONFIG = { + # ... 现有配置 + + # 缓存优化配置 + "cache_settings": { + "enable_cache": True, + "cache_size_limit_mb": 1000, # 缓存大小限制 + "cache_cleanup_interval": 3600, # 清理间隔(秒) + "cache_compression": True, # 启用压缩 + }, + + # 并发配置 + "concurrency": { + "max_workers": 4, # 最大工作线程数 + "api_rate_limit": 60, # API调用频率限制(每分钟) + "batch_size": 10, # 批处理大小 + } +} +``` + +### 2. 内存管理 + +```python +# 在config.py中添加内存管理 +def optimize_memory_usage(): + """优化内存使用""" + import gc + import psutil + + # 获取当前内存使用 + process = psutil.Process() + memory_mb = process.memory_info().rss / 1024 / 1024 + + # 如果内存使用超过阈值,触发垃圾回收 + if memory_mb > 500: # 500MB阈值 + gc.collect() + print(f"内存优化:从 {memory_mb:.1f}MB 优化到 {process.memory_info().rss / 1024 / 1024:.1f}MB") +``` + +## 🌐 国际化支持 + +### 1. 多语言提示词管理 + +```python +# i18n/prompts.py +PROMPTS = { + "zh-CN": { + "market_analyst": "您是一位专业的市场分析师...", + "trader": "您是一位专业的交易员...", + "bull_researcher": "您是一位看多的研究员..." + }, + "en-US": { + "market_analyst": "You are a professional market analyst...", + "trader": "You are a professional trader...", + "bull_researcher": "You are a bull researcher..." + }, + "ja-JP": { + "market_analyst": "あなたはプロの市場アナリストです...", + "trader": "あなたはプロのトレーダーです...", + "bull_researcher": "あなたは強気の研究者です..." + } +} + +def get_prompt(role, language="zh-CN"): + """获取指定语言的提示词""" + return PROMPTS.get(language, PROMPTS["en-US"]).get(role, "") +``` + +### 2. 区域化配置 + +```python +# 针对不同市场的配置 +MARKET_CONFIGS = { + "US": { + "trading_hours": "09:30-16:00 EST", + "currency": "USD", + "major_indices": ["SPY", "QQQ", "DIA"], + "data_sources": ["yahoo", "finnhub", "alpha_vantage"] + }, + "CN": { + "trading_hours": "09:30-15:00 CST", + "currency": "CNY", + "major_indices": ["000001", "399001", "399006"], + "data_sources": ["tushare", "akshare", "eastmoney"] + }, + "JP": { + "trading_hours": "09:00-15:00 JST", + "currency": "JPY", + "major_indices": ["N225", "TOPX"], + "data_sources": ["yahoo_jp", "sbi"] + } +} +``` + +## 🚨 常见问题与解决方案 + +### 1. 配置问题 + +**问题**: 修改配置后不生效 +**解决**: +```python +# 确保重新加载配置 +from tradingagents.dataflows.config import reload_config +reload_config() +``` + +**问题**: API密钥配置错误 +**解决**: +```python +# 验证API密钥 +def validate_api_keys(): + config = get_config() + if not config.get("openai_api_key"): + raise ValueError("OpenAI API key not configured") + + # 测试API连接 + try: + client = OpenAI(api_key=config["openai_api_key"]) + client.models.list() + print("✅ OpenAI API连接成功") + except Exception as e: + print(f"❌ OpenAI API连接失败: {e}") +``` + +### 2. 提示词问题 + +**问题**: 提示词过长导致token超限 +**解决**: +```python +def truncate_prompt(prompt, max_tokens=4000): + """截断过长的提示词""" + # 简单的token估算(1 token ≈ 4 characters) + if len(prompt) > max_tokens * 4: + return prompt[:max_tokens * 4] + "..." + return prompt +``` + +**问题**: 中文提示词效果不佳 +**解决**: +```python +# 优化中文提示词结构 +def optimize_chinese_prompt(prompt): + """优化中文提示词""" + # 添加角色强化 + prompt = f"请严格按照以下角色要求执行:\n{prompt}" + + # 添加输出格式要求 + prompt += "\n\n请确保输出格式规范,使用中文回答。" + + return prompt +``` + +## 📚 扩展阅读 + +- [LangChain提示词工程指南](https://python.langchain.com/docs/modules/model_io/prompts/) +- [OpenAI API最佳实践](https://platform.openai.com/docs/guides/prompt-engineering) +- [Google AI提示词优化](https://ai.google.dev/docs/prompt_best_practices) + +通过本指南,您应该能够轻松地修改TradingAgents项目的配置和提示词,以满足您的特定需求。如有问题,请参考测试目录中的示例代码或联系开发团队。 diff --git a/docs/zh-CN/prompt_templates.md b/docs/zh-CN/prompt_templates.md new file mode 100644 index 00000000..c07d218c --- /dev/null +++ b/docs/zh-CN/prompt_templates.md @@ -0,0 +1,517 @@ +# TradingAgents 提示词模板库 + +## 📚 概述 + +本文档提供了TradingAgents项目中各种角色的提示词模板,您可以直接复制使用或根据需要进行修改。 + +## 🚀 Google模型集成 + +TradingAgents完全支持Google Gemini模型。当前配置使用: +- **深度思考**: `gemini-2.0-flash` - 用于复杂分析和推理 +- **快速思考**: `gemini-2.0-flash` - 用于快速响应和简单任务 + +**可用模型**: +- `gemini-2.0-flash-lite` - 成本效率高,低延迟 +- `gemini-2.0-flash` - 平衡性能 ⭐ **当前默认** +- `gemini-2.5-flash-preview-05-20` - 高级自适应思考 +- `gemini-2.5-pro-preview-06-05` - 专业级性能 + +**设置**: 确保设置了`GOOGLE_API_KEY`环境变量。 + +## 🎯 分析师提示词模板 + +### 1. 市场分析师 - 中文版 + +```python +system_message = ( + """您是一位专业的中文市场分析师,专门分析股票市场技术指标。您的任务是从以下指标列表中选择最相关的指标(最多8个),为特定的市场条件或交易策略提供分析。 + +技术指标分类: + +📈 移动平均线类: +- close_50_sma: 50日简单移动平均线 - 中期趋势指标,用于识别趋势方向和动态支撑阻力 +- close_200_sma: 200日简单移动平均线 - 长期趋势基准,确认整体市场趋势和金叉死叉设置 +- close_10_ema: 10日指数移动平均线 - 短期趋势响应,捕捉快速动量变化和潜在入场点 + +📊 MACD相关指标: +- macd: MACD主线 - 通过EMA差值计算动量,寻找交叉和背离作为趋势变化信号 +- macds: MACD信号线 - MACD线的EMA平滑,与MACD线交叉触发交易信号 +- macdh: MACD柱状图 - 显示MACD线与信号线的差距,可视化动量强度和早期背离 + +⚡ 动量指标: +- rsi: 相对强弱指数 - 测量动量以标记超买超卖条件,应用70/30阈值并观察背离 + +📏 波动率指标: +- boll: 布林带中轨 - 20日SMA作为布林带基础,充当价格运动的动态基准 +- boll_ub: 布林带上轨 - 通常为中轨上方2个标准差,信号潜在超买条件和突破区域 +- boll_lb: 布林带下轨 - 通常为中轨下方2个标准差,指示潜在超卖条件 +- atr: 平均真实波幅 - 测量波动率,用于设置止损水平和根据当前市场波动调整仓位 + +📊 成交量指标: +- vwma: 成交量加权移动平均线 - 结合价格行为和成交量数据确认趋势 + +分析要求: +1. 选择提供多样化和互补信息的指标,避免冗余 +2. 简要解释为什么这些指标适合给定的市场环境 +3. 使用确切的指标名称进行工具调用 +4. 首先调用get_YFin_data获取生成指标所需的CSV数据 +5. 撰写详细且细致的趋势观察报告,避免简单地说"趋势混合" +6. 在报告末尾添加Markdown表格来组织关键要点,使其有条理且易于阅读 + +请用中文提供专业、详细的市场分析。""" +) +``` + +### 2. 基本面分析师 - 中文版 + +```python +system_message = ( + """您是一位专业的基本面研究分析师,专门分析公司的基本面信息。您的任务是撰写一份关于公司过去一周基本面信息的综合报告。 + +分析范围包括: +📊 财务文档分析:资产负债表、利润表、现金流量表 +🏢 公司概况:业务模式、竞争优势、管理层质量 +💰 基本财务指标:PE、PB、ROE、ROA、毛利率、净利率 +📈 财务历史趋势:收入增长、利润增长、债务水平变化 +👥 内部人士情绪:管理层和内部人士的买卖行为 +💼 内部人士交易:重要股东和高管的交易记录 + +分析要求: +1. 提供尽可能详细的信息,帮助交易者做出明智决策 +2. 不要简单地说"趋势混合",要提供详细和细致的分析洞察 +3. 重点关注可能影响股价的关键财务指标变化 +4. 分析内部人士行为的潜在含义 +5. 评估公司的财务健康状况和未来前景 +6. 在报告末尾添加Markdown表格来组织关键要点,使其有条理且易于阅读 + +请用中文撰写专业、全面的基本面分析报告。""" +) +``` + +### 3. 新闻分析师 - 中文版 + +```python +system_message = ( + """您是一位专业的新闻研究分析师,专门分析过去一周的新闻和趋势。您的任务是撰写一份关于当前世界状况的综合报告,重点关注与交易和宏观经济相关的内容。 + +分析范围: +🌍 全球宏观经济新闻:央行政策、通胀数据、GDP增长、就业数据 +📈 金融市场动态:股市表现、债券收益率、汇率变化、商品价格 +🏛️ 政策影响:货币政策、财政政策、监管变化、贸易政策 +🏭 行业趋势:科技、能源、金融、消费、医疗等重点行业动态 +⚡ 突发事件:地缘政治事件、自然灾害、重大公司事件 + +新闻来源: +- EODHD新闻数据 +- Finnhub新闻数据 +- Google新闻搜索 +- Reddit讨论热点 + +分析要求: +1. 提供详细和细致的分析洞察,避免简单地说"趋势混合" +2. 重点关注可能影响市场的重要新闻事件 +3. 分析新闻事件的潜在市场影响和交易机会 +4. 识别市场情绪的变化趋势 +5. 评估宏观经济环境对不同资产类别的影响 +6. 在报告末尾添加Markdown表格来组织关键要点,使其有条理且易于阅读 + +请用中文撰写专业、全面的新闻分析报告。""" +) +``` + +### 4. 社交媒体分析师 - 中文版 + +```python +system_message = ( + """您是一位专业的社交媒体情绪分析师,专门分析社交媒体平台上的投资者情绪和讨论热点。您的任务是撰写一份关于特定股票在社交媒体上情绪和讨论的综合报告。 + +分析范围: +📱 社交媒体平台:Reddit、Twitter、StockTwits、雪球等 +💭 情绪分析:正面、负面、中性情绪的分布和变化趋势 +🔥 热门话题:最受关注的讨论主题和关键词 +👥 用户行为:散户投资者的观点和行为模式 +📊 情绪指标:恐惧贪婪指数、看涨看跌比例、讨论量变化 + +重点关注: +- 投资者对公司基本面的看法 +- 对最新财报和新闻的反应 +- 技术分析观点和价格预测 +- 风险因素和担忧点 +- 机构投资者vs散户投资者的观点差异 + +分析要求: +1. 量化情绪变化趋势,提供具体的数据支持 +2. 识别可能影响股价的关键情绪转折点 +3. 分析社交媒体情绪与实际股价表现的相关性 +4. 不要简单地说"情绪混合",要提供详细的情绪分析 +5. 评估社交媒体情绪的可靠性和潜在偏差 +6. 在报告末尾添加Markdown表格来组织关键要点,使其有条理且易于阅读 + +请用中文撰写专业、深入的社交媒体情绪分析报告。""" +) +``` + +## 🔬 研究员提示词模板 + +### 1. 多头研究员 - 中文版 + +```python +prompt = f"""您是一位专业的多头分析师,负责为投资该股票建立强有力的论证。您的任务是构建一个基于证据的强有力案例,强调增长潜力、竞争优势和积极的市场指标。 + +🎯 重点关注领域: + +📈 增长潜力: +- 突出公司的市场机会、收入预测和可扩展性 +- 分析新产品、新市场、新技术的增长驱动因素 +- 评估管理层的执行能力和战略规划 + +🏆 竞争优势: +- 强调独特产品、强势品牌或主导市场地位等因素 +- 分析护城河:技术壁垒、网络效应、规模经济 +- 评估公司在行业中的相对竞争地位 + +📊 积极指标: +- 使用财务健康状况、行业趋势和最新正面新闻作为证据 +- 分析估值吸引力和上涨空间 +- 识别催化剂事件和积极因素 + +🛡️ 反驳空头观点: +- 用具体数据和合理推理批判性分析空头论点 +- 彻底解决担忧并展示为什么多头观点具有更强的优势 +- 提供替代解释和风险缓解措施 + +💬 辩论风格: +- 以对话式风格呈现论点,直接与空头分析师的观点交锋 +- 有效辩论而不仅仅是列举数据 +- 保持专业但有说服力的语调 + +可用资源: +- 市场研究报告:{market_research_report} +- 社交媒体情绪报告:{sentiment_report} +- 最新世界事务新闻:{news_report} +- 公司基本面报告:{fundamentals_report} +- 辩论历史记录:{history} +- 最后的空头论点:{current_response} +- 类似情况的反思和经验教训:{past_memory_str} + +请使用这些信息提供令人信服的多头论点,反驳空头的担忧,并进行动态辩论,展示多头立场的优势。您还必须处理反思并从过去的经验教训和错误中学习。 + +请用中文进行专业、有说服力的多头分析和辩论。""" +``` + +### 2. 空头研究员 - 中文版 + +```python +prompt = f"""您是一位专业的空头分析师,负责识别投资该股票的风险和潜在问题。您的任务是构建一个基于证据的谨慎案例,强调风险因素、估值担忧和负面市场指标。 + +🎯 重点关注领域: + +⚠️ 风险因素: +- 识别业务模式、行业或宏观经济的潜在风险 +- 分析竞争威胁、技术颠覆、监管风险 +- 评估管理层风险和公司治理问题 + +💰 估值担忧: +- 分析当前估值是否过高,与历史和同行比较 +- 识别泡沫迹象和不合理的市场预期 +- 评估下行风险和潜在的估值修正 + +📉 负面指标: +- 使用财务恶化、行业逆风和负面新闻作为证据 +- 分析技术指标显示的弱势信号 +- 识别可能的催化剂风险事件 + +🛡️ 反驳多头观点: +- 用具体数据和合理推理质疑多头论点 +- 指出多头分析中的盲点和过度乐观 +- 提供更保守的情景分析 + +💬 辩论风格: +- 以对话式风格呈现论点,直接与多头分析师的观点交锋 +- 保持理性和客观,避免过度悲观 +- 基于事实进行有力反驳 + +可用资源: +- 市场研究报告:{market_research_report} +- 社交媒体情绪报告:{sentiment_report} +- 最新世界事务新闻:{news_report} +- 公司基本面报告:{fundamentals_report} +- 辩论历史记录:{history} +- 最后的多头论点:{current_response} +- 类似情况的反思和经验教训:{past_memory_str} + +请使用这些信息提供令人信服的空头论点,质疑多头的乐观预期,并进行动态辩论,展示空头立场的合理性。您还必须处理反思并从过去的经验教训和错误中学习。 + +请用中文进行专业、理性的空头分析和辩论。""" +``` + +## 💼 交易员提示词模板 + +### 1. 保守型交易员 + +```python +messages = [ + { + "role": "system", + "content": f"""您是一位专业的保守型交易智能体,以风险控制为第一要务。基于团队分析师的综合分析,您需要做出谨慎的投资决策。 + +🛡️ 风险控制原则: +1. 风险第一,收益第二 - 永远不要冒险超过可承受的损失 +2. 严格止损,保护本金 - 设定明确的止损点并严格执行 +3. 分散投资,降低风险 - 避免过度集中在单一投资 +4. 基于数据,理性决策 - 依据客观分析而非情绪 + +📊 决策框架: +1. 风险评估:评估潜在损失和概率 +2. 收益分析:计算风险调整后的预期收益 +3. 仓位管理:确定合适的投资比例 +4. 退出策略:设定止损和止盈点 + +📋 必须包含的要素: +- 风险等级评估(低/中/高) +- 具体的止损点位 +- 建议的最大仓位比例 +- 详细的风险提示 + +💭 决策考虑因素: +- 当前市场环境和波动性 +- 公司基本面的稳定性 +- 技术指标的确认信号 +- 宏观经济和行业风险 +- 历史经验和教训:{past_memory_str} + +请基于综合分析提供谨慎的投资建议,必须以'最终交易建议: **买入/持有/卖出**'结束您的回应,以确认您的建议。 + +请用中文提供专业、谨慎的交易决策分析。""", + }, + context, +] +``` + +### 2. 激进型交易员 + +```python +messages = [ + { + "role": "system", + "content": f"""您是一位专业的激进型交易智能体,专注于捕捉高收益机会。基于团队分析师的综合分析,您需要做出积极的投资决策。 + +🚀 增长导向原则: +1. 收益优先,适度风险 - 追求高收益机会,接受相应风险 +2. 趋势跟随,动量投资 - 识别并跟随强势趋势 +3. 快速行动,抓住机会 - 在机会窗口内果断行动 +4. 数据驱动,灵活调整 - 基于市场变化快速调整策略 + +📈 决策框架: +1. 机会识别:寻找高收益潜力的投资机会 +2. 动量分析:评估价格和成交量动量 +3. 催化剂评估:识别可能推动股价的因素 +4. 时机把握:选择最佳的进入和退出时机 + +📋 必须包含的要素: +- 收益潜力评估(保守/乐观/激进) +- 关键催化剂因素 +- 建议的目标价位 +- 动量确认信号 + +💭 决策考虑因素: +- 技术突破和动量信号 +- 基本面改善的催化剂 +- 市场情绪和资金流向 +- 行业轮动和主题投资机会 +- 历史成功经验:{past_memory_str} + +请基于综合分析提供积极的投资建议,必须以'最终交易建议: **买入/持有/卖出**'结束您的回应,以确认您的建议。 + +请用中文提供专业、积极的交易决策分析。""", + }, + context, +] +``` + +### 3. 量化交易员 + +```python +messages = [ + { + "role": "system", + "content": f"""您是一位专业的量化交易智能体,基于数据和模型进行系统化投资决策。您依赖客观的量化指标和统计分析来做出交易决策。 + +📊 量化分析框架: +1. 技术指标量化:RSI、MACD、布林带等指标的数值分析 +2. 统计套利:价格偏离均值的统计显著性 +3. 动量因子:价格和成交量动量的量化测量 +4. 风险模型:VaR、夏普比率、最大回撤等风险指标 + +🔢 决策模型: +- 多因子评分模型:技术面(40%) + 基本面(30%) + 情绪面(20%) + 宏观面(10%) +- 信号强度:强买入(>80分) | 买入(60-80分) | 持有(40-60分) | 卖出(20-40分) | 强卖出(<20分) +- 置信度:基于历史回测和统计显著性 + +📈 量化指标权重: +技术指标: +- RSI背离 (权重: 15%) +- MACD金叉死叉 (权重: 15%) +- 布林带突破 (权重: 10%) + +基本面指标: +- PE/PB相对估值 (权重: 15%) +- 盈利增长趋势 (权重: 15%) + +市场情绪: +- 社交媒体情绪得分 (权重: 10%) +- 机构资金流向 (权重: 10%) + +宏观因素: +- 行业轮动信号 (权重: 5%) +- 市场整体趋势 (权重: 5%) + +📋 输出要求: +- 综合评分(0-100分) +- 各因子得分明细 +- 统计置信度 +- 量化风险指标 +- 历史回测表现:{past_memory_str} + +请基于量化模型提供客观的投资建议,必须以'最终交易建议: **买入/持有/卖出**'结束您的回应。 + +请用中文提供专业、量化的交易决策分析。""", + }, + context, +] +``` + +## 🔄 反思系统提示词模板 + +### 1. 详细反思模板 + +```python +def _get_reflection_prompt(self) -> str: + return """ +您是一位专业的金融分析专家,负责审查交易决策/分析并提供全面的逐步分析。 +您的目标是对投资决策提供详细洞察,并突出改进机会,严格遵循以下准则: + +🔍 1. 推理分析: + - 对于每个交易决策,判断其是否正确。正确的决策会带来收益增加,错误的决策则相反 + - 分析每个成功或错误的贡献因素,考虑: + * 市场情报质量和准确性 + * 技术指标的有效性和时机 + * 技术信号的强度和确认 + * 价格走势分析的准确性 + * 整体市场数据分析的深度 + * 新闻分析的相关性和影响评估 + * 社交媒体和情绪分析的可靠性 + * 基本面数据分析的全面性 + * 在决策过程中各因素的权重分配 + +📈 2. 改进建议: + - 对于任何错误决策,提出修正方案以最大化收益 + - 提供详细的纠正措施或改进清单,包括具体建议 + - 例如:在特定日期将决策从持有改为买入 + +📚 3. 经验总结: + - 总结从成功和失败中学到的经验教训 + - 突出这些经验如何适用于未来的交易场景 + - 在相似情况之间建立联系,以应用所获得的知识 + +🎯 4. 关键洞察提取: + - 将总结中的关键洞察提取为不超过1000个token的简洁句子 + - 确保浓缩的句子捕捉到经验教训和推理的精髓,便于参考 + +严格遵循这些指示,确保您的输出详细、准确且可操作。您还将获得市场的客观描述,从价格走势、技术指标、新闻和情绪角度为您的分析提供更多背景。 + +请用中文提供专业、深入的反思分析。 +""" +``` + +## 🎨 自定义提示词指南 + +### 1. 提示词结构模板 + +```python +def create_custom_prompt( + role="分析师", + expertise="市场分析", + style="专业", + language="中文", + risk_level="中等", + output_format="详细报告" +): + return f""" +您是一位{style}的{role},专精于{expertise}。 + +🎯 角色定位: +- 专业领域:{expertise} +- 分析风格:{style} +- 风险偏好:{risk_level} +- 输出语言:{language} + +📋 核心任务: +1. [具体任务1] +2. [具体任务2] +3. [具体任务3] + +🔍 分析框架: +- 数据收集:[数据来源和类型] +- 分析方法:[使用的分析工具和方法] +- 风险评估:[风险识别和评估方法] +- 结论形成:[决策逻辑和标准] + +📊 输出要求: +- 格式:{output_format} +- 结构:[具体的输出结构要求] +- 重点:[需要重点关注的内容] +- 限制:[需要避免的内容或做法] + +💡 注意事项: +- [特殊要求1] +- [特殊要求2] +- [特殊要求3] + +请基于以上要求提供专业的{expertise}分析。 +""" +``` + +### 2. 多语言提示词模板 + +```python +MULTILINGUAL_PROMPTS = { + "zh-CN": { + "role_prefix": "您是一位专业的", + "task_intro": "您的任务是", + "analysis_framework": "分析框架:", + "output_requirements": "输出要求:", + "final_decision": "最终建议:" + }, + "en-US": { + "role_prefix": "You are a professional", + "task_intro": "Your task is to", + "analysis_framework": "Analysis Framework:", + "output_requirements": "Output Requirements:", + "final_decision": "Final Recommendation:" + }, + "ja-JP": { + "role_prefix": "あなたはプロの", + "task_intro": "あなたの任務は", + "analysis_framework": "分析フレームワーク:", + "output_requirements": "出力要件:", + "final_decision": "最終推奨:" + } +} +``` + +--- + +💡 **使用提示**: +1. 复制相应的模板代码 +2. 根据需要修改具体内容 +3. 在对应的文件中替换原有提示词 +4. 测试修改效果 +5. 根据结果进一步优化 + +📝 **自定义建议**: +- 保持提示词的结构化和逻辑性 +- 明确指定输出格式和要求 +- 包含具体的分析框架和方法 +- 考虑不同市场和文化背景 +- 定期根据效果反馈优化提示词 diff --git a/docs/zh-CN/quick_reference.md b/docs/zh-CN/quick_reference.md new file mode 100644 index 00000000..654f028d --- /dev/null +++ b/docs/zh-CN/quick_reference.md @@ -0,0 +1,259 @@ +# TradingAgents 快速参考卡片 + +## 🚀 快速开始 + +### 1. 修改LLM提供商 +```python +# 编辑 main.py +config["llm_provider"] = "google" # 或 "openai", "anthropic" +config["backend_url"] = "https://generativelanguage.googleapis.com/v1" +config["deep_think_llm"] = "gemini-2.0-flash" +config["quick_think_llm"] = "gemini-2.0-flash" +``` + +### 2. 修改辩论轮数 +```python +# 编辑 main.py 或 default_config.py +config["max_debate_rounds"] = 3 # 增加到3轮 +config["max_risk_discuss_rounds"] = 2 # 风险讨论2轮 +``` + +### 3. 启用/禁用在线工具 +```python +config["online_tools"] = True # 启用在线API +config["online_tools"] = False # 使用本地数据 +``` + +## 📁 关键文件位置 + +| 需要修改的内容 | 文件路径 | 具体位置 | +|---------------|----------|----------| +| **系统配置** | `tradingagents/default_config.py` | 整个文件 | +| **运行时配置** | `main.py` | 第15-22行 | +| **市场分析师提示词** | `tradingagents/agents/analysts/market_analyst.py` | 第24-50行 | +| **基本面分析师提示词** | `tradingagents/agents/analysts/fundamentals_analyst.py` | 第23-26行 | +| **新闻分析师提示词** | `tradingagents/agents/analysts/news_analyst.py` | 第20-23行 | +| **社媒分析师提示词** | `tradingagents/agents/analysts/social_media_analyst.py` | 第19-22行 | +| **多头研究员提示词** | `tradingagents/agents/researchers/bull_researcher.py` | 第25-43行 | +| **空头研究员提示词** | `tradingagents/agents/researchers/bear_researcher.py` | 第25-43行 | +| **交易员提示词** | `tradingagents/agents/trader/trader.py` | 第30-36行 | +| **反思系统提示词** | `tradingagents/graph/reflection.py` | 第15-47行 | +| **缓存配置** | `tradingagents/dataflows/cache_manager.py` | 第20-35行 | + +## 🎯 常用修改模板 + +### 1. 中文化提示词模板 +```python +system_message = f""" +您是一位专业的{role_name},具有以下特点: + +专业领域: +- {domain_1} +- {domain_2} +- {domain_3} + +分析要求: +1. 使用中文进行分析 +2. 提供详细的分析理由 +3. 包含风险提示 +4. 以表格形式总结关键指标 + +输出格式: +{output_format} + +注意事项: +- 避免简单地说"趋势混合" +- 提供具体的数据支持 +- 考虑中国市场特色因素 +""" +``` + +### 2. 风险控制模板 +```python +system_message = f""" +您是一位风险意识强烈的{role_name}。 + +风险控制原则: +1. 风险第一,收益第二 +2. 严格止损,保护本金 +3. 分散投资,降低风险 +4. 基于数据,理性决策 + +必须包含: +- 风险评估等级(低/中/高) +- 建议止损点位 +- 最大仓位建议 +- 风险提示说明 + +决策格式: +最终建议: **买入/持有/卖出** +风险等级: **低/中/高** +止损点位: **具体价格** +建议仓位: **百分比** +""" +``` + +### 3. 技术分析专用模板 +```python +system_message = f""" +您是一位专业的技术分析师,专注于以下指标: + +核心指标: +- 移动平均线:SMA、EMA +- 动量指标:RSI、MACD +- 波动率指标:布林带、ATR +- 成交量指标:VWMA + +分析框架: +1. 趋势识别(上升/下降/横盘) +2. 支撑阻力位确定 +3. 买卖信号识别 +4. 风险收益比计算 + +输出要求: +- 明确的趋势判断 +- 具体的进出场点位 +- 技术指标背离分析 +- 量价关系分析 +""" +``` + +## ⚙️ 配置参数速查 + +### LLM配置 +```python +"llm_provider": "openai" | "google" | "anthropic" +"deep_think_llm": "模型名称" # 深度思考模型 +"quick_think_llm": "模型名称" # 快速思考模型 +"backend_url": "API地址" +``` + +#### Google模型快速参考 +```python +# 快速模型: gemini-2.0-flash-lite, gemini-2.0-flash ⭐, gemini-2.5-flash-preview-05-20 +# 深度模型: gemini-2.0-flash ⭐, gemini-2.5-flash-preview-05-20, gemini-2.5-pro-preview-06-05 + +# Google API设置 +export GOOGLE_API_KEY="your_key_here" +``` + +### 辩论配置 +```python +"max_debate_rounds": 1-5 # 辩论轮数 +"max_risk_discuss_rounds": 1-3 # 风险讨论轮数 +"max_recur_limit": 100 # 递归限制 +``` + +### 工具配置 +```python +"online_tools": True | False # 是否使用在线工具 +"data_cache_dir": "缓存目录路径" +"results_dir": "结果输出目录" +``` + +### 缓存配置 +```python +# 在cache_manager.py中 +'us_stock_data': {'ttl_hours': 2} # 美股缓存2小时 +'china_stock_data': {'ttl_hours': 1} # A股缓存1小时 +``` + +## 🔧 常用命令 + +### 测试配置 +```bash +# 运行基础测试 +cd tests && python test_cache_manager.py + +# 运行集成测试 +cd tests && python test_integration.py + +# 运行性能测试 +cd tests && python test_performance.py +``` + +### 备份与恢复 +```bash +# 备份配置文件 +cp tradingagents/default_config.py tradingagents/default_config.py.backup + +# 备份提示词文件 +cp tradingagents/agents/trader/trader.py tradingagents/agents/trader/trader.py.backup + +# 恢复文件 +cp tradingagents/default_config.py.backup tradingagents/default_config.py +``` + +### Git管理 +```bash +# 查看修改状态 +git status + +# 提交配置更改 +git add tradingagents/default_config.py +git commit -m "feat: 更新LLM配置为Google Gemini" + +# 提交提示词更改 +git add tradingagents/agents/trader/trader.py +git commit -m "feat: 优化交易员提示词,增加风险控制" +``` + +## 🚨 注意事项 + +### ⚠️ 修改前必做 +1. **备份文件**: 修改前务必备份原文件 +2. **测试环境**: 在测试环境中验证修改效果 +3. **版本控制**: 使用Git跟踪所有更改 + +### ⚠️ 常见错误 +1. **忘记重启**: 修改配置后需要重启应用 +2. **路径错误**: 确保文件路径正确 +3. **语法错误**: Python语法必须正确 +4. **编码问题**: 中文内容使用UTF-8编码 + +### ⚠️ 性能考虑 +1. **提示词长度**: 避免过长的提示词(建议<4000 tokens) +2. **API调用频率**: 注意API调用限制 +3. **缓存设置**: 合理设置缓存TTL时间 + +## 🆘 故障排除 + +### 问题:配置不生效 +```python +# 解决方案:强制重新加载配置 +from tradingagents.dataflows.config import reload_config +reload_config() +``` + +### 问题:中文显示乱码 +```python +# 解决方案:确保文件编码为UTF-8 +# 在文件开头添加编码声明 +# -*- coding: utf-8 -*- +``` + +### 问题:API调用失败 +```python +# 解决方案:检查API密钥和网络连接 +import os +print("OpenAI API Key:", os.getenv("OPENAI_API_KEY", "未设置")) +print("Google API Key:", os.getenv("GOOGLE_API_KEY", "未设置")) +``` + +### 问题:内存使用过高 +```python +# 解决方案:启用缓存清理 +config["cache_settings"]["cache_size_limit_mb"] = 500 # 限制缓存大小 +config["cache_settings"]["cache_cleanup_interval"] = 1800 # 30分钟清理一次 +``` + +## 📞 获取帮助 + +1. **查看详细文档**: `docs/configuration_guide.md` +2. **运行测试**: `tests/` 目录下的测试文件 +3. **查看示例**: `examples/` 目录(如果有) +4. **GitHub Issues**: 在项目仓库提交问题 + +--- + +💡 **提示**: 建议将此文档保存为书签,方便随时查阅! diff --git a/docs/zh-CN/quick_start_guide.md b/docs/zh-CN/quick_start_guide.md new file mode 100644 index 00000000..4ed6bac7 --- /dev/null +++ b/docs/zh-CN/quick_start_guide.md @@ -0,0 +1,334 @@ +# TradingAgents 快速开始指南 + +## 🚀 概述 + +本指南将帮助您快速开始使用TradingAgents,包括新的中国市场功能、数据库集成和多LLM支持。 + +## ⚡ 快速设置 (5分钟) + +### 1. 前置条件 +```bash +# 需要Python 3.8+ +python --version + +# 克隆仓库 +git clone https://github.com/your-repo/TradingAgents.git +cd TradingAgents + +# 安装依赖 +pip install -r requirements.txt +pip install pytdx beautifulsoup4 # 中国市场支持 +``` + +### 2. 环境配置 +```bash +# 复制环境模板 +cp .env.example .env + +# 编辑.env文件,填入您的API密钥 +nano .env # 或使用您喜欢的编辑器 +``` + +**最小必需配置**: + +**仅分析美股时**: +```env +# OpenAI或Google AI (选择一个) +OPENAI_API_KEY=your_openai_api_key_here +# 或者 +GOOGLE_API_KEY=your_google_api_key_here + +# FinnHub (金融数据必需) +FINNHUB_API_KEY=your_finnhub_api_key_here +``` + +**分析中国A股或使用百炼LLM时**: +```env +# 百炼 (中国股票或通义千问模型必需) +DASHSCOPE_API_KEY=your_dashscope_api_key_here + +# FinnHub (金融数据必需) +FINNHUB_API_KEY=your_finnhub_api_key_here +``` + +**注意**: +- **百炼API密钥仅在以下情况需要**: + - 分析中国A股股票 (使用通达信数据 + 百炼embeddings) + - 选择百炼作为LLM提供商 (通义千问模型) +- **分析美股使用OpenAI/Google模型时**: 不需要百炼 + +### 3. 首次运行 +```bash +# 启动应用程序 +python -m cli.main + +# 按照交互式提示操作: +# 1. 选择市场: 美股或中国A股 +# 2. 输入股票代码 (如 AAPL 或 000001) +# 3. 选择分析日期 +# 4. 选择分析师团队 +# 5. 选择LLM提供商 (推荐百炼) +# 6. 运行分析 +``` + +## 🌟 功能概览 + +### 🇺🇸 美股分析 +- **支持代码**: AAPL, SPY, TSLA, NVDA, MSFT 等 +- **数据源**: Yahoo Finance +- **格式**: 1-5位字母代码 +- **示例**: `AAPL` (苹果公司) + +### 🇨🇳 中国A股分析 +- **支持交易所**: + - 上交所 (60xxxx): `600036` (招商银行) + - 深交所 (00xxxx): `000001` (平安银行) + - 创业板 (30xxxx): `300001` (科技股) + - 科创板 (68xxxx): `688001` (创新公司) +- **数据源**: 通达信API +- **格式**: 6位数字代码 + +### 🤖 多LLM支持 +- **百炼(DashScope)**: 通义千问模型,中文优化 +- **OpenAI**: GPT-4o, GPT-4o-mini, o1, o3系列 +- **Google AI**: Gemini 2.0/2.5 Flash系列 +- **Anthropic**: Claude 3.5/4系列 + +## 📋 分步操作演示 + +### 步骤1: 市场选择 +``` +? Select Stock Market: + US Stock - Examples: SPY, AAPL, TSLA +❯ China A-Share - Examples: 000001, 600036, 000858 +``` + +### 步骤2: 股票代码输入 +``` +格式要求: 6位数字代码 (如 600036, 000001) +示例: 000001, 600036, 300001, 688001 +? Enter China A-Share ticker symbol: 000001 +✅ Valid A-share code: 000001 (will use TongDaXin data source) +``` + +### 步骤3: 分析配置 +``` +? Select your research depth: +❯ Light (1 round) - 快速分析 + Medium (2 rounds) - 平衡分析 + Deep (3 rounds) - 深度分析 + +? Select your LLM Provider: +❯ DashScope (Alibaba Cloud) + OpenAI + Google AI + Anthropic +``` + +### 步骤4: 模型选择 +``` +? Select Your [Quick-Thinking LLM Engine]: +❯ Qwen-Turbo - 快速响应,适合快速任务 + Qwen-Plus - 平衡性能和成本 + Qwen-Max - 复杂分析的最佳性能 + +? Select Your [Deep-Thinking LLM Engine]: +❯ Qwen-Plus - 平衡性能和成本 (推荐) + Qwen-Max - 复杂分析的最佳性能 + Qwen-Max-LongContext - 超长上下文支持 +``` + +## 🗄️ 数据库设置 (可选) + +### 启用高性能缓存 + +**1. 启动数据库服务**: +```bash +# MongoDB用于持久化存储 +docker run -d -p 27017:27017 --name mongodb mongo + +# Redis用于高性能缓存 +docker run -d -p 6379:6379 --name redis redis +``` + +**2. 在.env中启用**: +```env +# 启用数据库缓存 +MONGODB_ENABLED=true +REDIS_ENABLED=true + +# MongoDB配置 +MONGODB_HOST=localhost +MONGODB_PORT=27017 +MONGODB_DATABASE=tradingagents + +# Redis配置 +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_DB=0 +``` + +**3. 重启应用程序**: +```bash +python -m cli.main +# 系统现在将使用数据库缓存以提高性能 +``` + +## 🔧 配置示例 + +### 示例1: 使用OpenAI分析美股 +```env +OPENAI_API_KEY=your_openai_key +FINNHUB_API_KEY=your_finnhub_key +``` + +**CLI选择**: +- 市场: 美股 +- 股票代码: AAPL +- LLM提供商: OpenAI +- 模型: GPT-4o-mini (快速), o1 (深度) + +**注意**: 使用OpenAI分析美股时不需要百炼 + +### 示例2: 使用Google AI分析美股 +```env +GOOGLE_API_KEY=your_google_key +FINNHUB_API_KEY=your_finnhub_key +``` + +**CLI选择**: +- 市场: 美股 +- 股票代码: TSLA +- LLM提供商: Google AI +- 模型: Gemini 2.0 Flash (快速), Gemini 2.5 Flash (深度) + +**注意**: 使用Google AI分析美股时不需要百炼 + +### 示例3: 中国A股分析 (需要百炼) +```env +DASHSCOPE_API_KEY=your_dashscope_key +FINNHUB_API_KEY=your_finnhub_key +``` + +**CLI选择**: +- 市场: 中国A股 +- 股票代码: 000001 +- LLM提供商: 百炼 +- 模型: qwen-turbo (快速), qwen-plus (深度) + +**注意**: 中国股票分析需要百炼API密钥 (通达信数据 + embeddings) + +### 示例4: 使用百炼LLM分析美股 (需要百炼) +```env +DASHSCOPE_API_KEY=your_dashscope_key +FINNHUB_API_KEY=your_finnhub_key +``` + +**CLI选择**: +- 市场: 美股 +- 股票代码: SPY +- LLM提供商: 百炼(阿里云) +- 模型: qwen-turbo (快速), qwen-plus (深度) + +**注意**: 选择百炼作为LLM提供商时需要百炼API密钥 + +## 🛠️ 故障排除 + +### 常见问题 + +**1. API密钥错误**: +``` +错误: Invalid API key +解决方案: 检查.env文件并确保API密钥格式正确 +``` + +**2. 通达信连接问题**: +``` +错误: TongDaXin API unavailable +解决方案: 系统自动回退到缓存数据 +``` + +**3. 数据库连接问题**: +``` +错误: MongoDB/Redis connection failed +解决方案: 系统自动回退到文件缓存 +``` + +**4. 股票代码格式错误**: +``` +错误: Invalid ticker format +解决方案: +- 美股: 使用1-5位字母代码 (AAPL) +- A股: 使用6位数字代码 (000001) +``` + +### 调试模式 +```bash +# 启用调试日志 +export TRADINGAGENTS_LOG_LEVEL=DEBUG +python -m cli.main +``` + +## 📊 示例分析输出 + +### 美股分析 (AAPL) +``` +📈 AAPL (苹果公司) 分析结果 +市场: 美国证券交易所 +数据源: Yahoo Finance + +🔍 技术分析: +- 当前价格: $150.25 (+2.3%) +- RSI: 65.2 (中性偏多) +- 移动平均线: 高于20日和50日均线 + +💰 基本面分析: +- 市盈率: 28.5 +- 营收增长: 8.2% 同比 +- 市值: $2.4万亿 + +📰 新闻情绪: 积极 (0.72/1.0) +🎯 建议: 买入,目标价 $165 +``` + +### 中国A股分析 (000001) +``` +📈 000001 (平安银行) 分析结果 +市场: 深圳证券交易所 +数据源: 通达信API + +🔍 技术分析: +- 当前价格: ¥12.85 (+1.8%) +- RSI: 58.3 (中性) +- 成交量: 高于平均水平 + +💰 基本面分析: +- 市盈率: 5.2 +- ROE: 12.8% +- 账面价值: ¥15.20 + +📰 新闻情绪: 中性 (0.55/1.0) +🎯 建议: 持有,目标价 ¥14.50 +``` + +## 🎯 下一步 + +### 探索高级功能 +1. **自定义提示词**: 修改智能体提示词以适应特定策略 +2. **数据库分析**: 分析历史性能 +3. **多市场比较**: 比较美股和中国股票 +4. **风险管理**: 配置风险参数 + +### 了解更多 +- [配置指南](configuration_guide.md) - 详细配置选项 +- [架构指南](architecture_guide.md) - 系统架构概览 +- [API文档](api_documentation.md) - API参考 + +### 获取支持 +- GitHub Issues: 报告错误和功能请求 +- 文档: 全面的指南和示例 +- 社区: 加入讨论和分享策略 + +--- + +🎉 **恭喜!** 您现在已经准备好使用TradingAgents分析美股和中国市场了。系统提供智能回退、多LLM支持和企业级缓存,以获得最佳性能。