TradingAgents-CN

快速开始指南

概述

本指南将帮助您快速上手 TradingAgents 框架,从安装到运行第一个交易分析,只需几分钟时间。

🎉 v0.1.7 新特性

Docker容器化部署

专业报告导出

DeepSeek V3集成

推荐LLM配置

# 高性价比选择
DASHSCOPE_API_KEY=your_dashscope_key  # 阿里百炼
DEEPSEEK_API_KEY=your_deepseek_key    # DeepSeek V3

# 数据源配置
TUSHARE_TOKEN=your_tushare_token      # Tushare数据

前置要求

系统要求

API 密钥

在开始之前,您需要获取以下API密钥:

  1. 🇨🇳 阿里百炼 API Key (推荐)
    • 访问 阿里云百炼平台
    • 注册账户并获取API密钥
    • 国产模型,无需科学上网,响应速度快
  2. FinnHub API Key (必需)
    • 访问 FinnHub
    • 注册免费账户并获取API密钥
  3. Google AI API Key (推荐)
  4. 其他API密钥 (可选)
    • OpenAI API (需要科学上网)
    • Anthropic API (需要科学上网)

快速安装

1. 克隆项目

# 克隆中文增强版
git clone https://github.com/hsliuping/TradingAgents-CN.git
cd TradingAgents-CN

2. 创建虚拟环境

# 使用 conda
conda create -n tradingagents python=3.13
conda activate tradingagents

# 或使用 venv
python -m venv tradingagents
source tradingagents/bin/activate  # Linux/macOS
# tradingagents\Scripts\activate  # Windows

3. 安装依赖

pip install -r requirements.txt

4. 配置环境变量

创建 .env 文件(推荐方式):

# 复制配置模板
cp .env.example .env

# 编辑 .env 文件,配置以下API密钥:

# 🇨🇳 阿里百炼 (推荐)
DASHSCOPE_API_KEY=your_dashscope_api_key_here

# FinnHub (必需)
FINNHUB_API_KEY=your_finnhub_api_key_here

# Google AI (可选)
GOOGLE_API_KEY=your_google_api_key_here

# 数据库配置 (可选,默认禁用)
MONGODB_ENABLED=false
REDIS_ENABLED=false

第一次运行

🌐 使用Web界面 (推荐)

最简单的开始方式是使用Web管理界面:

# 启动Web界面
streamlit run web/app.py

然后在浏览器中访问 http://localhost:8501

Web界面提供:

  1. 🎛️ 直观的股票分析界面
  2. ⚙️ API密钥和配置管理
  3. 📊 实时分析进度显示
  4. 💰 Token使用统计
  5. 🇨🇳 完整的中文界面

使用命令行界面 (CLI)

如果您偏好命令行:

python -m cli.main

使用 Python API

创建一个简单的Python脚本:

# quick_start.py
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

# 创建配置
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4o-mini"  # 使用较便宜的模型进行测试
config["quick_think_llm"] = "gpt-4o-mini"
config["max_debate_rounds"] = 1  # 减少辩论轮次以节省成本
config["online_tools"] = True  # 使用在线数据

# 初始化交易智能体图
ta = TradingAgentsGraph(debug=True, config=config)

# 执行分析
print("开始分析 AAPL...")
state, decision = ta.propagate("AAPL", "2024-01-15")

# 输出结果
print("\n=== 分析结果 ===")
print(f"推荐动作: {decision.get('action', 'hold')}")
print(f"置信度: {decision.get('confidence', 0.5):.2f}")
print(f"风险评分: {decision.get('risk_score', 0.5):.2f}")
print(f"推理过程: {decision.get('reasoning', 'N/A')}")

运行脚本:

python quick_start.py

配置选项

基本配置

config = {
    # LLM 设置
    "llm_provider": "openai",           # 或 "anthropic", "google"
    "deep_think_llm": "gpt-4o-mini",    # 深度思考模型
    "quick_think_llm": "gpt-4o-mini",   # 快速思考模型
    
    # 辩论设置
    "max_debate_rounds": 1,             # 辩论轮次 (1-5)
    "max_risk_discuss_rounds": 1,       # 风险讨论轮次
    
    # 数据设置
    "online_tools": True,               # 使用在线数据
}

智能体选择

# 选择要使用的分析师
selected_analysts = [
    "market",        # 技术分析师
    "fundamentals",  # 基本面分析师
    "news",         # 新闻分析师
    "social"        # 社交媒体分析师
]

ta = TradingAgentsGraph(
    selected_analysts=selected_analysts,
    debug=True,
    config=config
)

示例分析流程

完整的分析示例

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

def analyze_stock(symbol, date):
    """分析指定股票"""
    
    # 配置
    config = DEFAULT_CONFIG.copy()
    config["deep_think_llm"] = "gpt-4o-mini"
    config["quick_think_llm"] = "gpt-4o-mini"
    config["max_debate_rounds"] = 2
    config["online_tools"] = True
    
    # 创建分析器
    ta = TradingAgentsGraph(
        selected_analysts=["market", "fundamentals", "news", "social"],
        debug=True,
        config=config
    )
    
    print(f"正在分析 {symbol} ({date})...")
    
    try:
        # 执行分析
        state, decision = ta.propagate(symbol, date)
        
        # 输出详细结果
        print("\n" + "="*50)
        print(f"股票: {symbol}")
        print(f"日期: {date}")
        print("="*50)
        
        print(f"\n📊 最终决策:")
        print(f"  动作: {decision.get('action', 'hold').upper()}")
        print(f"  数量: {decision.get('quantity', 0)}")
        print(f"  置信度: {decision.get('confidence', 0.5):.1%}")
        print(f"  风险评分: {decision.get('risk_score', 0.5):.1%}")
        
        print(f"\n💭 推理过程:")
        print(f"  {decision.get('reasoning', 'N/A')}")
        
        # 分析师报告摘要
        if hasattr(state, 'analyst_reports'):
            print(f"\n📈 分析师报告摘要:")
            for analyst, report in state.analyst_reports.items():
                score = report.get('overall_score', report.get('score', 0.5))
                print(f"  {analyst}: {score:.1%}")
        
        return decision
        
    except Exception as e:
        print(f"❌ 分析失败: {e}")
        return None

# 运行示例
if __name__ == "__main__":
    # 分析苹果公司股票
    result = analyze_stock("AAPL", "2024-01-15")
    
    if result:
        print("\n✅ 分析完成!")
    else:
        print("\n❌ 分析失败!")

常见问题解决

1. API 密钥错误

错误: OpenAI API key not found
解决: 确保正确设置了 OPENAI_API_KEY 环境变量

2. 网络连接问题

错误: Connection timeout
解决: 检查网络连接,或使用代理设置

3. 内存不足

错误: Out of memory
解决: 减少 max_debate_rounds 或使用更小的模型

4. 数据获取失败

错误: Failed to fetch data
解决: 检查 FINNHUB_API_KEY 是否正确,或稍后重试

成本控制建议

1. 使用较小的模型

config["deep_think_llm"] = "gpt-4o-mini"    # 而不是 "gpt-4o"
config["quick_think_llm"] = "gpt-4o-mini"   # 而不是 "gpt-4o"

2. 减少辩论轮次

config["max_debate_rounds"] = 1              # 而不是 3-5
config["max_risk_discuss_rounds"] = 1        # 而不是 2-3

3. 选择性使用分析师

# 只使用核心分析师
selected_analysts = ["market", "fundamentals"]  # 而不是全部四个

4. 使用缓存数据

config["online_tools"] = False  # 使用缓存数据而不是实时数据

下一步

现在您已经成功运行了第一个分析,可以:

  1. 探索更多功能: 查看 API参考文档
  2. 自定义配置: 阅读 配置指南
  3. 开发自定义智能体: 参考 扩展开发指南
  4. 查看更多示例: 浏览 示例和教程

获取帮助

如果遇到问题,可以:

祝您使用愉快!🚀