TradingAgents-多智能体大语言模型(LLM)金融交易框架-开源-09011


TradingAgents 是一个多智能体大语言模型(LLM)金融交易框架,旨在模拟现实世界交易公司的动态。该框架通过部署多个由LLM驱动的专业智能体,协同评估市场状况并为交易决策提供信息。以下是对该仓库的详细介绍:

仓库结构

仓库的主要目录和文件结构如下:

TradingAgents/
├── .gitignore
├── .python-version
├── LICENSE
├── README.md
├── main.py
├── pyproject.toml
├── requirements.txt
├── setup.py
├── uv.lock
├── tradingagents/
│   ├── agents/
│   ├── dataflows/
│   ├── default_config.py
│   ├── graph/
├── assets/
│   ├── TauricResearch.png
│   ├── analyst.png
│   ├── cli/
│   ├── researcher.png
│   ├── risk.png
│   ├── schema.png
│   ├── trader.png
│   ├── wechat.png
├── cli/
│   ├── __init__.py
│   ├── main.py
│   ├── models.py
│   ├── static/
│   ├── utils.py

核心特性

  1. 多智能体架构:模拟现实交易公司的结构,包括分析师团队、研究员团队、交易员智能体以及风险管理和投资组合管理团队。
  2. LLM驱动:使用LLM进行市场分析和决策制定,支持多种LLM模型,如 o1-previewgpt-4oo4-minigpt-4.1-mini
  3. 模块化设计:采用 LangGraph 构建,确保框架的灵活性和可扩展性。
  4. 研究目的:框架设计用于研究,交易性能受多种因素影响,不构成金融、投资或交易建议。

智能体团队

  1. 分析师团队
    • 基本面分析师:评估公司财务状况和绩效指标,识别内在价值和潜在风险。
    • 情绪分析师:使用情绪评分算法分析社交媒体和公众情绪,以衡量短期市场情绪。
    • 新闻分析师:监控全球新闻和宏观经济指标,解读事件对市场状况的影响。
    • 技术分析师:利用技术指标(如MACD和RSI)检测交易模式并预测价格走势。
  2. 研究员团队:包括看涨和看跌研究员,对分析师团队的见解进行批判性评估,通过结构化辩论平衡潜在收益和固有风险。
  3. 交易员智能体:综合分析师和研究员的报告,根据全面的市场见解做出明智的交易决策。
  4. 风险管理和投资组合管理团队
    • 风险管理团队:持续评估投资组合风险,评估和调整交易策略,并向投资组合经理提供评估报告。
    • 投资组合经理:批准或拒绝交易提案,若批准,将订单发送至模拟交易所执行。

安装和使用

安装

克隆 TradingAgents 仓库:

git clone https://github.com/TauricResearch/TradingAgents.git

CLI使用

你可以直接运行以下命令尝试CLI:

python -m cli.main

运行后,你将看到一个界面,可选择所需的股票代码、日期、LLM模型、研究深度等。

代码示例

看跌研究员智能体

tradingagents/agents/researchers/bear_researcher.py 文件中的 bear_node 函数实现了看跌研究员智能体的逻辑,根据市场研究报告、情绪报告、新闻报告和基本面报告等信息,提出反对投资股票的理由:

def bear_node(state) -> dict:
    # ... 代码省略 ...
    prompt = f"""You are a Bear Analyst making the case against investing in the stock. Your goal is to present a well-reasoned argument emphasizing risks, challenges, and negative indicators. ..."""
    response = llm.invoke(prompt)
    argument = f"Bear Analyst: {response.content}"
    new_investment_debate_state = {
        "history": history + "\n" + argument,
        "bear_history": bear_history + "\n" + argument,
        # ... 代码省略 ...
    }
    return {"investment_debate_state": new_investment_debate_state}

研究经理智能体

tradingagents/agents/managers/research_manager.py 文件中的 research_manager_node 函数实现了研究经理智能体的逻辑,评估辩论并做出明确的决策(买入、卖出或持有),同时制定详细的投资计划:

def create_research_manager(llm, memory):
    def research_manager_node(state) -> dict:
        # ... 代码省略 ...
        prompt = f"""As the portfolio manager and debate facilitator, your role is to critically evaluate this round of debate and make a definitive decision: align with the bear analyst, the bull analyst, or choose Hold only if it is strongly justified based on the arguments presented. ..."""
        response = llm.invoke(prompt)
        new_investment_debate_state = {
            "judge_decision": response.content,
            # ... 代码省略 ...
        }
        return {
            "investment_debate_state": new_investment_debate_state,
            "investment_plan": response.content,
        }
    return research_manager_node

贡献和引用

  • 贡献:欢迎社区贡献,无论是修复错误、改进文档还是提出新功能,都有助于项目的发展。
  • 引用:如果你发现 TradingAgents 对你有帮助,请引用以下论文:
@misc{xiao2025tradingagentsmultiagentsllmfinancial,
    title={TradingAgents: Multi-Agents LLM Financial Trading Framework}, 
    author={Yijia Xiao and Edward Sun and Di Luo and Wei Wang},
    year={2025},
    eprint={2412.20138},
    archivePrefix={arXiv},
    primaryClass={q-fin.TR},
    url={https://arxiv.org/abs/2412.20138}, 
}

Github