TradingAgents
TradingAgents:多智能体LLM金融交易框架
🎉 TradingAgents 正式发布!我们收到了大量关于这项工作的询问,感谢社区的热情支持。
因此我们决定完全开源这个框架。期待与您一起构建有影响力的项目!
TradingAgents框架
TradingAgents是一个多智能体交易框架,模拟真实世界交易公司的动态运作。通过部署专业化的LLM驱动智能体:从基本面分析师、情绪专家、技术分析师,到交易员、风险管理团队,该平台协作评估市场条件并提供交易决策。此外,这些智能体通过动态讨论来确定最优策略。
TradingAgents框架专为研究目的设计。交易性能可能因多种因素而异,包括所选择的主干语言模型、模型温度、交易周期、数据质量以及其他非确定性因素。它不作为财务、投资或交易建议。
我们的框架将复杂的交易任务分解为专业角色。这确保系统实现了稳健、可扩展的市场分析和决策方法。
分析师团队
- 基本面分析师:评估公司财务和业绩指标,识别内在价值和潜在风险信号。
- 情绪分析师:通过情绪评分算法分析社交媒体和公众情绪,以衡量短期市场情绪。
- 新闻分析师:监控全球新闻和宏观经济指标,解释事件对市场条件的影响。
- 技术分析师:利用技术指标(如MACD和RSI)检测交易模式并预测价格走势。
研究团队
- 包括多头和空头研究员,他们批判性评估分析师团队提供的见解。通过结构化辩论,他们平衡潜在收益与固有风险。
交易智能体
- 综合分析师和研究员的报告,做出明智的交易决策。基于全面的市场洞察确定交易的时机和规模。
风险管理和投资组合经理
- 通过评估市场波动性、流动性和其他风险因素,持续评估投资组合风险。风险管理团队评估和调整交易策略,向投资组合经理提供评估报告以做出最终决策。
- 投资组合经理批准/拒绝交易提案。如果批准,订单将发送到模拟交易所并执行。
安装与CLI
安装
克隆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使用
您可以直接运行CLI:
python -m cli.main
您将看到一个屏幕,可以选择所需的股票代码、日期、LLM、研究深度等。
将出现一个界面,显示加载时的结果,让您跟踪智能体的运行进度。
包使用
实现细节
我们使用LangGraph构建TradingAgents以确保灵活性和模块化。我们使用o1-preview
和gpt-4o
作为我们实验的深度思考和快速思考LLM。但是,出于测试目的,我们建议您使用gpt-4o-mini
和gpt-4o-mini
来节省成本,因为我们的框架会进行大量API调用。
Python使用
要在您的代码中使用TradingAgents,您可以导入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())
# 前向传播
_, decision = ta.propagate("NVDA", "2024-05-10")
print(decision)
您还可以调整默认配置来设置您自己选择的LLM、辩论轮数等。
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
# 创建自定义配置
config = DEFAULT_CONFIG.copy()
config["deep_think_llm"] = "gpt-4o-mini" # 使用不同的模型
config["quick_think_llm"] = "gpt-4o-mini" # 使用不同的模型
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
中查看完整的配置列表。
快速链接
贡献
我们欢迎社区的贡献!无论是修复错误、改进文档还是建议新功能,您的输入都有助于让这个项目变得更好。如果您对这一研究领域感兴趣,请考虑加入我们的开源金融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},
}