arXiv Discord WeChat X Follow
Community

TradingAgents:多智能体大语言模型金融交易框架

🎉 TradingAgents 正式发布!我们收到了大量关于这项工作的咨询,感谢社区的热情关注。

为此我们决定全面开源该框架。期待与您共同打造有影响力的项目!

🚀 框架介绍 | ⚡ 安装与CLI | 🎬 演示视频 | 📦 包使用 | 🤝 贡献指南 | 📄 引用说明

TradingAgents 框架

TradingAgents 是一个模拟真实交易公司运作模式的多智能体交易框架。通过部署由大语言模型驱动的专业智能体——从基本面分析师、情绪分析师、技术分析师,到交易员和风险管理团队,平台能够协同评估市场状况并制定交易决策。这些智能体还会进行动态讨论以确定最优策略。

TradingAgents 框架仅供研究用途。交易表现可能因多种因素而异,包括所选基础语言模型、模型温度参数、交易周期、数据质量以及其他非确定性因素。本框架不作为财务、投资或交易建议。

我们的框架将复杂交易任务分解为专业角色。这种设计确保系统采用稳健、可扩展的方法进行市场分析和决策制定。

分析师团队

  • 基本面分析师:评估公司财务和业绩指标,识别内在价值和潜在风险信号
  • 情绪分析师:运用情绪评分算法分析社交媒体和公众情绪,研判短期市场情绪
  • 新闻分析师:监测全球新闻和宏观经济指标,解读事件对市场状况的影响
  • 技术分析师:运用MACD、RSI等技术指标识别交易模式并预测价格走势

研究团队

  • 由多头和空头研究员组成,他们会对分析师团队提供的见解进行批判性评估。通过结构化辩论,权衡潜在收益与固有风险。

交易员代理

  • 整合分析师和研究员的报告,做出明智的交易决策。基于全面的市场洞察,决定交易时机和规模。

风险管理与投资组合经理

  • 通过评估市场波动性、流动性及其他风险因素,持续监控投资组合风险。风险管理团队评估并调整交易策略,向投资组合经理提交评估报告以供最终决策。
  • 投资组合经理审批交易提案。若获批准,订单将发送至模拟交易所执行。

安装与命令行界面

安装

克隆TradingAgents仓库:

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

使用您偏好的环境管理工具创建虚拟环境:

conda create -n tradingagents python=3.13
conda activate tradingagents

安装依赖项:

pip install -r requirements.txt

所需API

需要FinnHub API获取金融数据,所有代码均基于免费层级实现。

export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY

所有代理均需使用OpenAI API。

export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY

命令行使用

可直接运行CLI:

python -m cli.main

界面将显示可选参数:股票代码、日期、大语言模型、研究深度等。

运行时会实时显示加载结果,可追踪代理执行进度。

TradingAgents包

实现细节

采用LangGraph构建TradingAgents以保证灵活性和模块化。实验中使用o1-previewgpt-4o分别作为深度思考与快速思考的大语言模型。但测试时建议使用o4-minigpt-4.1-mini以节省成本,因本框架会发起大量API调用。

Python调用

在代码中导入tradingagents模块并初始化TradingAgentsGraph()对象。.propagate()函数将返回决策结果。可运行main.py,以下是快速示例:

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

ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())

# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)

您也可以调整默认配置,设置您偏好的大语言模型(LLMs)、辩论轮次等参数。

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

# Create a custom config
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4.1-nano"  # Use a different model
config["quick_think_llm"] = "gpt-4.1-nano"  # Use a different model
config["max_debate_rounds"] = 1  # Increase debate rounds
config["online_tools"] = True # Use online tools or cached data

# Initialize with custom config
ta = TradingAgentsGraph(debug=True, config=config)

# forward propagate
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)

对于 online_tools,我们建议在实验时启用它们,因为它们能提供实时数据访问。智能体的离线工具依赖于我们Tauric TradingDB中的缓存数据——这是我们用于回测的精选数据集。目前我们正在完善该数据集,并计划在即将发布的项目中同步公开。敬请期待!

完整配置列表可在 tradingagents/default_config.py 中查看。

参与贡献

我们欢迎社区贡献!无论是修复错误、改进文档还是建议新功能,您的参与都将推动项目发展。如果您对该研究方向感兴趣,请考虑加入我们的开源金融AI研究社区Tauric Research

引用说明

如果您认为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}, 
}