tes
TradingAgents 是一个多代理交易框架,它模拟了现实世界中交易公司的动态。通过部署专门的LLM驱动的代理,从基本面分析师到风险管理团队,该平台协作评估市场状况并为交易决策提供信息。
服务介绍
TradingAgents: 多代理LLM金融交易框架
🎉 TradingAgents 正式发布!我们收到了许多关于这项工作的询问,非常感谢社区的热情。
因此,我们决定将该框架完全开源。期待与您一起构建有影响力的项目!
🚀 TradingAgents 框架 | ⚡ 安装与CLI | 🎬 演示 | 📦 包使用说明 | 🤝 贡献指南 | 📄 引用
TradingAgents 框架
TradingAgents 是一个多代理交易框架,模拟了现实世界中交易公司的动态。通过部署专门的LLM驱动的代理:从基本面分析师、情绪专家和技术分析师到交易员和风险管理团队,该平台协同评估市场状况并为交易决策提供信息。此外,这些代理会进行动态讨论以确定最佳策略。
我们的框架将复杂的交易任务分解为专门的角色。这确保了系统在市场分析和决策方面实现稳健且可扩展的方法。
分析团队
- 基本面分析师:评估公司财务状况和绩效指标,识别内在价值和潜在风险。
- 情绪分析师:使用情绪评分算法分析社交媒体和公众情绪,以衡量短期市场情绪。
- 新闻分析师:监控全球新闻和宏观经济指标,解读事件对市场状况的影响。
- 技术分析师:利用技术指标(如MACD和RSI)来检测交易模式并预测价格走势。
研究团队
- 包括看涨和看跌的研究人员,他们批判性地评估分析团队提供的见解。通过结构化的辩论,他们在潜在收益与固有风险之间取得平衡。
交易代理
- 根据分析师和研究人员的报告做出明智的交易决策。它根据全面的市场洞察决定交易的时间和规模。
风险管理和投资组合经理
- 持续评估投资组合风险,通过评估市场波动性、流动性和其他风险因素。风险管理团队评估并调整交易策略,向投资组合经理提供评估报告以做出最终决策。
- 投资组合经理批准/拒绝交易提案。如果获得批准,订单将被发送到模拟交易所并执行。
安装和CLI
安装
克隆 TradingAgents:
bash
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
在您喜欢的任何环境管理器中创建虚拟环境:
bash
conda create -n tradingagents python=3.13
conda activate tradingagents
安装依赖项:
bash
pip install -r requirements.txt
所需API
您还需要FinnHub API来获取金融数据。我们所有的代码都是用免费层级实现的。
bash
export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY
您需要OpenAI API来运行所有代理。
bash
export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY
CLI 使用
您也可以直接运行CLI来尝试:
bash
python -m cli.main
您将看到一个屏幕,在那里您可以选择所需的股票代码、日期、LLM、研究深度等。
界面将显示加载结果,让您跟踪代理运行时的进度。
TradingAgents 包
实现细节我们使用LangGraph构建了TradingAgents,以确保其灵活性和模块化。在我们的实验中,我们利用o1-preview和gpt-4o作为深度思考和快速思考的LLM(大型语言模型)。然而,为了测试目的,我们建议您使用o4-mini和gpt-4.1-mini来节省成本,因为我们的框架会进行大量API调用。
Python 使用方法
要在您的代码中使用TradingAgents,您可以导入tradingagents模块并初始化一个TradingAgentsGraph()对象。.propagate()函数将返回一个决策。您可以运行main.py,这里也有一个简单的示例:
python
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
前向传播
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)
您还可以调整默认配置来设置自己的LLM选择、辩论轮次等。
python
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
创建自定义配置
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4.1-nano" # 使用不同的模型
config["quick_think_llm"] = "gpt-4.1-nano" # 使用不同的模型
config["max_debate_rounds"] = 1 # 增加辩论轮次
config["online_tools"] = True # 使用在线工具或缓存数据
使用自定义配置初始化
ta = TradingAgentsGraph(debug=True, config=config)
前向传播
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)
对于
online_tools,我们建议在实验时启用它们,因为它们可以访问实时数据。代理的离线工具依赖于我们Tauric TradingDB中的缓存数据,这是一个用于回测的精选数据集。我们目前正在改进这个数据集,并计划在未来项目发布时一同公开它。敬请期待!
您可以在tradingagents/default_config.py中查看完整的配置列表。
贡献
我们欢迎社区的贡献!无论是修复bug、改进文档还是提出新功能,您的输入都有助于使这个项目变得更好。如果您对这一研究方向感兴趣,请考虑加入我们的开源金融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},
}