1
2
3
4
5
6
7
英文名称:TradingAgents: Multi-Agents LLM Financial Trading Framework
中文名称:交易代理:多智能体大语言模型金融交易框架
链接: http://arxiv.org/pdf/2412.20138v7
代码: https://github.com/TauricResearch/TradingAgents
作者: Yijia Xiao, Edward Sun, Di Luo, Wei Wang
机构: 加利福尼亚大学洛杉矶分校,麻省理工学院,Tauric Research
日期:2024-12-28

1 摘要

  • 目标:提出一种受交易公司启发的股票交易框架,以提升交易表现。
  • 方法:使用大型语言模型(LLM)构建多角色的代理系统,包括基础分析师、情感分析师、技术分析师和交易员,通过模拟动态协作的交易环境。
  • 结论:通过详细的架构和广泛的实验,TradingAgents 在累计收益、夏普比率和最大回撤方面显著优于基准模型。

1 读后感

这篇论文在同类中算是设计较复杂的,附录有 Prompt 列表,GitHub 提供了代码。亮点在于整体架构设计,体现出作者对问题的理解和推演过程:

  • 关键角色是什么
  • 数据源有哪些
  • 怎么具体实现

我个人比较喜欢:

  • 拆解问题的方法:一旦拆解,就容易得到答案
  • “分析团队”那部分(图一左侧),展示了股票投资相关的因素
  • Agent 之间用结构化文本通讯,取代随意的自然语言

仔细一想,以大模型当前的知识结构、逻辑能力,加上 Agent 和 MCP 的信息整合渠道,不被情绪影响,不必做到完美,实现个七七八八就已经比普通人强太多了——那人到底强在哪儿?我一时真没想出来。

从实用角度看,如果只盯几只股票,用的资源也不会太多;毕竟趋势和基本面短期内变化不大。这是个可落地的方案。

(以下内容中,斜体部分为我的观点和思考,请谨慎阅读)

1 现状

传统算法交易系统主要依赖定量模型,但往往难以捕捉多种因素之间复杂的相互作用。基于深度学习的交易系统通常可解释性较差,因为它们依赖隐藏特征,难以让人理解其决策依据。LLM(大型语言模型)具备处理自然语言数据的能力,非常适合分析新闻、财报和社交媒体舆情等文本驱动任务,而当前 LLM 也有局限性:

  • 组织建模不够现实:模型狭隘聚焦任务绩效,与真实交易机构的工作流程和人工作法割裂,难以模拟真实协作。(文中改进:引入层级化角色分工(如分析团队、研究团队、交易团队、风险管理团队等)来模拟真实交易组织的协作结构,有助于提升系统的可操作性与业务契合度
  • 通信接口效率低下:依赖自然语言通信容易产生“电话效应”,对话中细节丢失、状态损坏,破坏信息完整性。(文中改进:在自然语言基础之上,加入结构化输出(如报告模板、摘要结构等)以保障信息传递的准确性和上下文稳固性

2 TradingAgents:角色专业化

图 1:TradingAgents 系统架构。从左到右依次是,分析师团队:并行收集市场信息;研究团队:对信息进行评估和辩论;交易代理:基于研究结论做出交易决策;风险管理团队:评估市场风险并提出风险控制建议;基金经理:批准并执行最终交易操作(这里的基金经理是由人最后把关)。

2.1 分析师团队

负责收集和处理多源市场数据,为后续决策提供信息基础。该团队分为四类专业代理:

  • 基本面分析代理:分析财报、收益报告、内幕交易等信息,评估公司内在价值,识别被高估或低估的股票,提供长期投资建议。
  • 情绪分析代理:处理社交媒体数据、情绪打分与用户行为,识别市场情绪变化,预测短期投资者行为对股价的潜在影响。
  • 新闻分析代理:分析新闻报道、政策公告和宏观经济数据,提取影响市场走势的重要事件,用于预测市场动态的突发变动。
  • 技术分析代理:针对具体标的,计算并应用技术指标(如 MACD、RSI 等),识别价格走势和交易量模式,为择时提供支持。

2.2 研究员团队

该团队负责对分析师提供的信息进行批判性评估。由持有不同市场观点(看多 / 看空)的代理组成,通过多轮辩论权衡风险与回报,深入挖掘交易建议背后的逻辑合理性。

(根据先前的采集和计算结果进一步讨论,利用了大模型的金融能力)

2.3 交易代理

交易代理根据分析师和研究团队提供的综合信息做出实际交易决策:

  • 评估各类见解,整合定量与定性信息;
  • 决定交易时机与规模,力求收益最大化;
  • 发出买入/卖出指令;
  • 动态调整投资组合应对市场变化。

这一角色需要在高压、快速变化的市场中权衡风险与回报,其操作直接影响整体收益,对精度和策略性要求极高。

(这里提供了一种基于大模型的实现方法,也可以通过强化学习等技术优化复杂决策)

2.4 风险管理团队

监控和控制公司面临的各种市场风险。

  • 分析波动性、流动性与交易对手风险;
  • 提出风险控制措施(如止损、资产分散等);
  • 为交易代理提供实时反馈,优化交易策略;
  • 保证投资行为在公司风险容忍范围内运行。

所有代理均采用 ReAct 提示框架,结合推理与行动,使各角色能在任务中高效协同,具备结构化决策流程。

(可以看到,这里只提供了一个架构,每一个模块都可繁可简,都有进一步的优化空间)

3 TradingAgents:代理工作流程

3.1 通信协议

自然语言虽灵活,但面对复杂、长期任务时容易模糊不清。灵感来自 MetaGPT 等框架,其通过结构化通信大幅降低错误。TradingAgents 使用结构化通信协议,明确每个代理的输入输出:代理仅查询和处理所需信息,并以格式化报告返回,确保交互清晰、责任明确。

这种做法类似 MetaGPT 推崇的一致化工作流程,通过将标准操作程序(SOPs)编码到 prompt 中,促进模块化输出及角色分工有效避免错误传播。

3.2 代理间交互类型

TradingAgents 通过定义精确文档类型,替代自由文本沟通,确保信息规范、有序传递:

  • 分析师团队:生成领域内(基本面、情绪、新闻、技术等)结构化分析报告,覆盖关键指标、见解与建议。
  • 交易者代理:评估分析报告,生成明确的决策信号及支持证据,并形成结构化报告供风险管理使用。
  • 研究员团队:看多和看空立场的代理基于分析报告展开多轮辩论,由主持人总结形成主流观点,并以结构化形式输出。
  • 风险管理团队:参考交易者的决策与报告,在风险限制下调整方案,并通过主持人机制输出优化后建议。
  • 基金经理:审核风险团队建议,最终确定和更新决策,并在协议中更新交易者的状态。

3.3 骨干 LLM

根据任务特点选用不同模型:

  • 敏捷型 LLM(如 gpt‑4o‑mini、gpt‑4o)适用于摘要、检索、表格转文本等快速低深度任务。
  • 深思型 LLM(如 o1‑preview)适用于决策制定、循证报告和数据深入推理等需求。
  • 专用专家模型 用于情绪分析等专业任务。

架构高度模块化,可灵活替换不同骨干模型,以实现未来扩展与性能优化。

4 实验

TradingAgents 在三个抽样股票上的累计回报率达到了至少 23.21%,年回报率达到 24.90%,以 6.1% 的优势超越最佳基线表现。

图 6:TradingAgents 针对苹果公司($AAPL)的详细交易记录。绿箭头/红箭头分别表示多头/空头仓位 (买入/卖出),展示了模型随时间变化的交易决策。

表 1:使用四种评估指标对所有方法进行性能比较。

  • CR% 累计收益 总共赚了多少
  • ARR% 年化收益 每年大概赚多少
  • SR 夏普比率 每单位风险带来多少回报
  • MDD% 最大回撤 最惨时亏了多少

基于 LLM 的代理框架带来了变革性优势:通过自然语言进行决策传达,显著提升了可解释性。

源码分析:开源项目_TradingAgents