跳到主要内容

TradingAgents

Tauric Research Logo

arXivDiscordWeChatX Follow
Community

TradingAgents:多智能体LLM金融交易框架

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

因此我们决定完全开源这个框架。期待与您一起构建有影响力的项目!

TradingAgents Star History

🚀 TradingAgents框架 | ⚡ 安装与CLI | 🎬 演示 | 📦 包使用 | 🤝 贡献 | 📄 引用

TradingAgents框架

TradingAgents是一个多智能体交易框架,模拟真实世界交易公司的动态运作。通过部署专业化的LLM驱动智能体:从基本面分析师、情绪专家、技术分析师,到交易员、风险管理团队,该平台协作评估市场条件并提供交易决策。此外,这些智能体通过动态讨论来确定最优策略。

TradingAgents框架架构图

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、研究深度等。

CLI初始界面

将出现一个界面,显示加载时的结果,让您跟踪智能体的运行进度。

CLI新闻分析

CLI交易结果

包使用

实现细节

我们使用LangGraph构建TradingAgents以确保灵活性和模块化。我们使用o1-previewgpt-4o作为我们实验的深度思考和快速思考LLM。但是,出于测试目的,我们建议您使用gpt-4o-minigpt-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},
}

社区