🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

stock trading agents

by @ganyu21

基于 AgentScope 的多智能体股票诊断系统。一键执行完整诊断流程,自动生成技术面、基本面、舆情面分析、研究员辩论、交易员决策、风控讨论及最终投资决策报告。

Versionv1.0.7
Downloads1,491
Stars1
TERMINAL
clawhub install trading-agents

📖 About This Skill


name: trading-agents description: 基于 AgentScope 的多智能体股票诊断系统。一键执行完整诊断流程,自动生成技术面、基本面、舆情面分析、研究员辩论、交易员决策、风控讨论及最终投资决策报告。

Trading Agents 股票投资分析系统

基于 AgentScope 框架的多智能体协作股票诊断系统,一键执行完整诊断流程

核心特性

一键全自動执行 - 单次调用完成所有角色分析和报告生成 ✅ 多智能体协作 - 分析师、研究员、交易员、风控、基金经理五层决策 ✅ 完整报告输出 - 自动生成 7 份专业 MD 报告和 1 份合并 PDF ✅ 后台运行支持 - 避免长任务超时,自动保存中间结果 ✅ 数据驱动 - 集成 Tushare/AKShare 实时金融数据

系统架构

智能体团队架构

1. 分析师团队 (ReActAgent) - 数据采集 - MarketAnalyst: 技术面分析 - FundamentalsAnalyst: 基本面分析 - NewsAnalyst: 舆情面分析

2. 研究员团队 (AgentBase) - 多空辩论 - BullishResearcher: 看多研究员 - BearishResearcher: 看空研究员 - ResearchFacilitator: 研究主持人

3. 交易与风控团队 - 决策与风控 - Trader: 交易员 - AggressiveRisk: 激进型风控 - NeutralRisk: 中性型风控 - ConservativeRisk: 保守型风控 - RiskFacilitator: 风控协调人

4. 基金经理 - 最终决策 - Manager: 做出最终投资决策

所有角色通过一次调用自动完成:

advisor = StockAdvisorSystem()
result = advisor.diagnose("600519.SH")  # 一键执行所有角色
advisor.save_report(result)  # 生成所有报告

一键自动执行所有角色(推荐)

这是最简单也是最推荐的使用方式,一次调用完成所有分析并生成所有报告:

from trading_agents import StockAdvisorSystem

创建系统实例

advisor = StockAdvisorSystem()

一键执行完整诊断(自动完成所有角色)

result = advisor.diagnose("600519.SH", base_report_dir="report")

保存所有报告(JSON + PDF)

advisor.save_report(result)

print(f"✅ 所有报告已生成:{result['report_dir']}") print(f"📊 最终决策:{result['final_decision']}")

以上代码会自动完成以下所有步骤:

阶段 1: 数据采集(分析师团队)
  ├─ MarketAnalyst → 技术面分析报告.md
  ├─ FundamentalsAnalyst → 基本面分析报告.md
  └─ NewsAnalyst → 舆情面分析报告.md
      ↓
阶段 2: 研究员辩论
  ├─ BullishResearcher vs BearishResearcher
  └─ → 研究员辩论报告.md
      ↓
阶段 3: 交易员决策
  ├─ Trader 综合分析所有报告
  └─ → 交易员决策报告.md
      ↓
阶段 4: 风险管理讨论
  ├─ AggressiveRisk vs NeutralRisk vs ConservativeRisk
  └─ → 风险管理讨论报告.md
      ↓
阶段 5: 基金经理最终决策
  ├─ Manager 做出最终决策
  └─ → 最终决策报告.md
      ↓
阶段 6: 报告生成
  ├─ complete_diagnosis_report.json
  └─ {股票名}_{代码}_{时间}_{决策}.pdf

分步执行(可选)

from trading_agents import StockAdvisorSystem

advisor = StockAdvisorSystem()

阶段 1: 分析师数据采集

result = advisor.diagnose("600519.SH") # 已完成所有分析师报告

阶段 2-5: 后续流程自动完成

研究员辩论 → 交易员决策 → 风控讨论 → 经理决策

阶段 6: 保存所有报告

advisor.save_report(result)

快速开始

一键完整诊断(推荐)

#### 方式 1:使用 OpenClaw 技能调用

from trading_agents import StockAdvisorSystem

创建系统实例

advisor = StockAdvisorSystem()

一键执行完整诊断(自动完成所有角色分析并生成所有报告)

result = advisor.diagnose("600519.SH", base_report_dir="report")

保存完整报告(包含 JSON 和合并 PDF)

advisor.save_report(result)

print(f"✅ 所有报告已生成:{result['report_dir']}") print(f"📊 最终决策:{result['final_decision']}")

#### 方式 2:命令行执行

# 直接运行诊断脚本
python3 scripts/stock_advisor.py --stock 600519.SH

或使用 nohup 后台运行(适合长时间任务)

nohup python3 scripts/stock_advisor.py --stock 600519.SH > diagnose.log 2>&1 &

#### 方式 3:后台运行模式(防超时)

# 使用后台诊断脚本
python3 scripts/background_diagnose.py 600519.SH 贵州茅台

⚠️ 重要提示

完整诊断流程需要 10-15 分钟,包含以下自动执行步骤:

1. ✅ 数据采集 - 3 位分析师独立获取数据并生成报告 2. ✅ 研究员辩论 - 看多看空双方辩论形成共识 3. ✅ 交易员决策 - 综合分析报告制定交易策略 4. ✅ 风控讨论 - 三种风险偏好评估风险 5. ✅ 经理决策 - 做出最终投资决策 6. ✅ 报告生成 - 自动生成所有 MD 报告和合并 PDF

推荐使用后台运行模式以避免会话超时:

  • 详见 BACKGROUND_RULES.md
  • 自动保存中间结果,防止中断丢失数据
  • 使用方法

    作为 OpenClaw 技能使用:

    将本目录复制到 OpenClaw 项目的 skills 目录:

    cp -r trading-agents /path/to/openclaw/skills/
    

    OpenClaw 中调用示例(一键完成所有角色):

    # OpenClaw 会自动加载技能
    from trading_agents import StockAdvisorSystem

    创建系统实例

    advisor = StockAdvisorSystem()

    一键执行完整诊断(自动完成所有角色分析并生成所有报告)

    result = advisor.diagnose("600519.SH", base_report_dir="report")

    保存所有报告(JSON + PDF)

    advisor.save_report(result)

    输出包含:

    - MarketAnalyst_技术面分析.md

    - FundamentalsAnalyst_基本面分析.md

    - NewsAnalyst_舆情面分析.md

    - 研究员辩论报告.md

    - 交易员决策报告.md

    - 风险管理讨论报告.md

    - 最终决策报告.md

    - complete_diagnosis_report.json

    - {股票名}_{代码}_{时间}_{决策}.pdf

    作为 Python 包安装:

    # 安装整个技能包
    pip install /path/to/trading-agents/

    或进入 scripts 目录安装核心代码

    pip install /path/to/trading-agents/scripts/

    独立使用:

    from trading_agents import StockAdvisorSystem

    创建系统实例

    advisor = StockAdvisorSystem()

    一键诊断股票(自动执行所有角色并生成所有报告)

    result = advisor.diagnose("600519.SH", base_report_dir="report")

    保存完整报告

    advisor.save_report(result)

    print(f"报告目录:{result['report_dir']}") print(f"最终决策:{result['final_decision']}")

    使用特定模型

    from trading_agents.config import config

    切换模型

    config.model_name = "qwen-max-2025-01-25" # 或其他支持的模型

    支持的模型:

    - kimi-k2.5

    - qwen-max-2025-01-25

    - qwen3.5-plus

    - glm-5

    - MiniMax/MiniMax-M2.5

    配置说明

    环境变量

    # Tushare API Token
    TUSHARE_TOKEN=your_token_here

    阿里云百炼 API Key

    ALIYUN_BAILIAN_API_KEY=your_key_here

    配置参数

    from trading_agents.config import config

    辩论轮数

    config.debate_rounds = 2

    风控讨论轮数

    config.risk_discussion_rounds = 2

    权重配置

    config.tech_weight = 0.25 # 技术面权重 config.fund_weight = 0.35 # 基本面权重 config.news_weight = 0.20 # 舆情面权重 config.research_weight = 0.20 # 研究员共识权重

    输出报告(自动生成)

    系统自动生成以下报告文件:

    分析师报告(阶段 1)

  • MarketAnalyst_技术面分析.md - 技术面分析报告
  • FundamentalsAnalyst_基本面分析.md - 基本面分析报告
  • NewsAnalyst_舆情面分析.md - 舆情面分析报告
  • 研究员辩论(阶段 2)

  • 研究员辩论报告.md - 看多看空辩论记录
  • 交易员决策(阶段 3)

  • 交易员决策报告.md - 交易策略报告
  • 风控讨论(阶段 4)

  • 风险管理讨论报告.md - 风险评估报告
  • 经理决策(阶段 5)

  • 最终决策报告.md - 最终投资决策
  • 完整报告(阶段 6)

  • complete_diagnosis_report.json - 完整 JSON 数据
  • {股票名}_{代码}_{时间}_{决策}.pdf - 合并 PDF 报告
  • 所有报告通过一键调用自动生成:

    advisor = StockAdvisorSystem()
    result = advisor.diagnose("600519.SH")
    advisor.save_report(result)  # 自动生成所有 MD 和 PDF
    

    核心组件(可选)

    > 注意:推荐使用一键调用方式,以上代码已自动完成所有角色。以下为高级用法,可按需单独调用。

    分析师智能体

    from trading_agents.agents import (
        MarketAnalystAgent,
        FundamentalsAnalystAgent,
        NewsAnalystAgent
    )

    技术面分析

    market_analyst = MarketAnalystAgent() report = market_analyst.analyze("600519.SH")

    基本面分析

    fund_analyst = FundamentalsAnalystAgent() report = fund_analyst.analyze("600519.SH")

    舆情分析

    news_analyst = NewsAnalystAgent() report = news_analyst.analyze("600519.SH", "贵州茅台")

    数据工具

    from trading_agents.tools import TushareTools, AKShareTools

    Tushare 数据

    tushare = TushareTools(token) data = tushare.get_stock_daily("600519.SH", days=60) indicators = tushare.get_technical_indicators("600519.SH")

    AKShare 数据

    akshare = AKShareTools() news = akshare.get_stock_news("600519.SH", days=7) sentiment = akshare.get_market_sentiment()

    AgentScope 工具包

    from trading_agents.tools import (
        create_market_analyst_toolkit,
        create_fundamentals_analyst_toolkit,
        create_news_analyst_toolkit,
        create_stock_toolkit
    )

    创建工具包

    toolkit = create_stock_toolkit()

    批量诊断

    from trading_agents.batch_diagnose import batch_diagnose

    stocks = ["600519.SH", "000858.SZ", "002594.SZ"] results = batch_diagnose(stocks, output_dir="report/batch")

    依赖安装

    # 基础依赖
    pip install agentscope>=0.0.5
    pip install tushare>=1.2.89
    pip install akshare>=1.12.0
    pip install pandas>=2.0.0
    pip install numpy>=1.24.0
    pip install requests>=2.31.0
    pip install openai>=1.0.0
    pip install fpdf2>=2.8.0
    pip install python-dotenv

    阿里云夸克搜索 SDK(可选)

    pip install alibabacloud_iqs20241111>=1.0.0 pip install alibabacloud_tea_openapi>=0.3.0

    Web 界面(可选)

    pip install streamlit>=1.28.0

    项目结构

    Skill 目录结构 (OpenClaw 兼容)

    trading-agents/              # 技能根目录
    ├── SKILL.md                 # Skill 说明文档 (必需)
    ├── __init__.py              # Python 包标识 (OpenClaw 需要)
    ├── setup.py                 # 安装配置
    └── scripts/                 # 完整源代码
        ├── __init__.py
        ├── stock_advisor.py  # 主系统入口
        ├── config.py            # 系统配置
        ├── batch_diagnose.py    # 批量诊断
        ├── streamlit_app.py     # Web 界面
        ├── requirements.txt     # 依赖清单
        ├── agents/
        │   ├── __init__.py
        │   ├── analysts.py      # 分析师团队 (ReActAgent)
        │   ├── researchers.py   # 研究员团队 (AgentBase)
        │   ├── trader.py        # 交易员
        │   ├── risk_managers.py # 风险管理团队
        │   └── manager.py       # 基金经理
        └── tools/
            ├── __init__.py
            ├── tushare_tools.py # Tushare 数据接口
            ├── akshare_tools.py # AKShare 数据接口
            └── toolkit.py       # AgentScope 工具注册
    

    移植到其他项目

    只需复制整个 trading-agents 目录:

    # 从源项目复制到目标项目
    cp -r /source/project/.qoder/skills/trading-agents \
          /target/project/.qoder/skills/

    或在目标项目中克隆后复制

    mkdir -p /target/project/.qoder/skills/ cp -r trading-agents /target/project/.qoder/skills/

    注意事项

    1. API Token: 需要配置 TUSHARE_TOKEN 和 ALIYUN_BAILIAN_API_KEY 2. 中文字体: PDF 生成需要系统中文字体支持 3. 网络连接: 需要访问阿里云百炼 API 4. 数据限制: Tushare 免费版有数据调用限制 5. 执行时间: 完整诊断流程需要 10-15 分钟,建议使用后台运行模式

    总结

    为什么选择 Trading Agents?

    一键完成所有角色 - 无需手动调用多个函数,一次诊断完成所有分析 ✅ 自动化报告生成 - 自动生成 7 份 MD 报告和 1 份合并 PDF,无需手动整理 ✅ 专业智能体团队 - 5 层决策流程,模拟专业投资机构的工作流 ✅ 实时数据驱动 - 集成 Tushare/AKShare 获取最新市场数据 ✅ 灵活可配置 - 支持多种模型、权重、辩论轮数等参数配置

    快速上手

    from trading_agents import StockAdvisorSystem

    一行代码完成股票诊断

    result = StockAdvisorSystem().diagnose("600519.SH")

    一行代码保存所有报告

    StockAdvisorSystem().save_report(result)

    就这么简单!所有复杂的分析、辩论、决策过程都由智能体团队自动完成。