TradingAgents:多智能体大语言模型金融交易框架
🎉 TradingAgents 正式发布!我们收到了大量关于这项工作的咨询,感谢社区的热情关注。
为此我们决定全面开源该框架。期待与您共同打造有影响力的项目!
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-preview
和gpt-4o
分别作为深度思考与快速思考的大语言模型。但测试时建议使用o4-mini
和gpt-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},
}