TradingAgents,这是一个全新的股票交易框架,利用多个由 LLM 驱动的智能体,这些智能体分别担任基本面、情绪和技术分析师等专业角色,以及具有不同风险特征的交易员。该系统由牛市和熊市研究人员评估市场状况,由风险管理团队监督风险敞口,交易员则整合来自辩论和历史数据的洞见,从而做出明智的决策。这种协作的动态环境能够提升交易绩效,正如我们全面的实验所证明的那样,与基准模型相比,累计收益、夏普比率和最大回撤均有显著提升。
概述
TradingAgents利用多智能体框架模拟一家专业的交易公司,其角色各异:基本面(fundmental)、情绪(sentiment)和技术分析师(technical analysts);研究人员(researchers);交易员(traders);以及风险管理(risk managers)。这些智能体通过结构化的沟通和讨论进行协作,从而增强决策能力并优化交易策略。

角色定义
为 LLM 代理分配特定角色,可以将复杂的交易目标分解为易于管理的任务。TradingAgents 的设计灵感源自交易公司,包含七个不同的角色:基本面分析师(Fundamentals Analyst)、情绪分析师(Sentiment Analyst)、新闻分析师(News Analyst)、技术分析师(Technical Analyst)、研究员(Researcher)、交易员(Trader)和风险管理师(Risk Manager)。每个代理都配备了根据其职能定制的专用工具和约束,以确保全面的市场分析和明智的决策。
分析师团队
分析团队收集并分析各个领域的市场数据:
- 基本面分析师:评估公司基本面以确定被低估或被高估的股票。
- 情绪分析师:分析社交媒体和公众情绪来判断市场情绪。
- 新闻分析师:评估新闻和宏观经济指标以预测市场走势。
- 技术分析师:使用技术指标预测价格趋势和交易机会。
综合起来,他们的见解提供了整体的市场视角,为研究团队提供了进一步评估的信息。

研究团队
研究团队通过辩证分析的方式,批判性地评估分析师的数据,并结合看涨和看跌的观点。这种辩论确保分析的平衡性,识别机会和风险,从而为交易策略提供参考。
- 看涨研究人员:强调积极的市场指标和增长潜力。
- 看跌研究人员:关注风险和负面市场信号。
此过程确保对市场状况有均衡的了解,帮助交易代理做出明智的决策。

交易代理
交易代理基于综合分析执行决策。他们评估分析师和研究人员的见解,以确定最佳交易行动,在动态的市场环境中平衡收益和风险。
- 评估分析师和研究人员的建议。
- 确定交易时机和规模。
- 执行买入/卖出订单。
- 根据市场变化调整投资组合。
精确度和战略思维对于最大限度地提高绩效至关重要。

风险管理团队
风险管理团队负责监督公司的市场风险,确保交易活动保持在预先定义的限度内。
- 评估市场波动性和流动性。
- 实施风险缓解策略。
- 为交易代理提供有关风险敞口的建议。
- 使投资组合与风险承受能力相一致。
他们通过有效的风险控制来确保金融稳定并保护资产安全。
所有代理都利用 ReAct 提示框架,促进反映现实世界交易系统的协作和动态决策过程。

交易代理:代理工作流程
通信协议
为了提高沟通效率,TradingAgents采用结构化协议,将清晰的结构化输出与自然语言对话相结合。这种方法可以最大限度地减少信息丢失,并在长时间交互中保持上下文的一致性,从而确保代理之间沟通的专注性和有效性。
代理交互的类型
与以前严重依赖非结构化对话的框架不同,我们的代理通过结构化报告和图表进行交流,保留重要信息并支持从全局状态直接查询。
- 分析师团队:将研究汇编成简明的分析报告。
- 交易员:审查分析师报告并产生具有详细理由的决策信号。
自然语言对话专用于特定的互动,例如研究人员和风险管理团队内部的辩论,以促进更深入的推理和平衡的决策。
- 研究团队:参与辩论以形成平衡的观点。
- 风险管理团队:从多个风险角度审议交易计划。
- 基金经理:审查并批准风险调整后的交易决策。
LLM
我们根据任务需求选择LLM,使用快速思维模型进行数据检索,使用深度思维模型进行深入分析和决策。这种战略联盟确保了效率和稳健的推理能力,使交易代理无需 GPU 即可运行,并支持未来轻松集成其他模型。
实验
我们使用综合实验装置对TradingAgents进行了评估,以评估其相对于各种基线的表现。
反向交易
我们的模拟利用了多资产、多模式金融数据集,包括 2024 年 1 月至 3 月的历史股票价格、新闻文章、社交媒体情绪、内幕交易、财务报告和技术指标。
模拟设置
交易环境跨越 2024 年 6 月至 11 月。代理商每天进行操作,根据现有数据(不考虑未来信息)做出决策,确保结果公正。
基线模型
我们将TradingAgents与以下策略进行了比较:
- 买入并持有:在整个期间对选定的股票进行平等投资。
- MACD:基于MACD交叉的动量策略。
- KDJ 和 RSI:用于交易信号的组合动量指标。
- ZMR:基于价格偏差的均值回归策略。
- SMA:使用移动平均线交叉的趋势跟踪策略。
评估指标



夏普比率
TradingAgents实现了卓越的风险调整后收益,持续超越 AAPL、GOOGL 和 AMZN 的所有基准。增强的夏普比率证明了该框架在平衡收益与风险方面的有效性,凸显了其在不同市场条件下的稳健性。
最大回撤
基于规则的策略在控制风险方面表现出色,而TradingAgents 则在不牺牲高回报的情况下保持了较低的最大回撤。这种平衡凸显了该框架在有效管理风险的同时实现利润最大化的能力。
可解释性
与传统的深度学习模型不同,TradingAgents通过自然语言解释提供透明的决策。每个代理的操作都附有详细的推理和工具使用说明,使系统的操作易于解释和调试,这对于实际的金融应用至关重要。
结论
TradingAgents模拟了真实的交易公司,其中的专业智能体通过辩论和结构化沟通进行协作。它的框架利用多样化的数据源和多智能体交互来增强交易决策,在累积收益、夏普比率和风险管理方面均优于传统策略。未来的工作包括实时部署、扩展智能体角色以及集成实时数据处理,以进一步提升性能。
部署使用
从 github 克隆 TradingAgents 项目代码:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
创建 python 虚拟环境:
conda create -n tradingagents python=3.13
conda activate tradingagents
安装软件依赖包:
pip install -r requirements.txt
设置 OpenAI 和 FinnHub API KEY:
export FINNHUB_API_KEY=$YOUR_FINNHUB_API_KEY
export OPENAI_API_KEY=$YOUR_OPENAI_API_KEY
通过 CLI 使用 TradingAgents:
python -m cli.main

输入 INTC (英特尔公司股票代码)让它分析一下。分析完成后,看到如下的结果,我是否要考虑买一些呢?


所有的结果都保存在 results 目录里,文件格式为 markdown。

文章评论