当前位置: 首页 > news >正文

论文阅读_TradingAgents多智能体金融交易框架

英文名称: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

摘要

  • 目标:提出一种受交易公司启发的股票交易框架,以提升交易表现。

  • 方法:使用大型语言模型(LLM)构建多角色的代理系统,包括基础分析师、情感分析师、技术分析师和交易员,通过模拟动态协作的交易环境。

  • 结论:通过详细的架构和广泛的实验,TradingAgents 在累计收益、夏普比率和最大回撤方面显著优于基准模型。

读后感

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

  • 关键角色是什么

  • 数据源有哪些 

  • 怎么具体实现

我个人比较喜欢:

  • 拆解问题的方法:一旦拆解,就容易得到答案

  • “分析团队”那部分(图一左侧),展示了股票投资相关的因素

  • Agent 之间用结构化文本通讯,取代随意的自然语言

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

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

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

1 现状

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

  • 组织建模不够现实:模型狭隘聚焦任务绩效,与真实交易机构的工作流程和人工作法割裂,难以模拟真实协作。(文中改进:引入层级化角色分工(如分析团队、研究团队、交易团队、风险管理团队等)来模拟真实交易组织的协作结构,有助于提升系统的可操作性与业务契合度

  • 通信接口效率低下:依赖自然语言通信容易产生“电话效应”,对话中细节丢失、状态损坏,破坏信息完整性。(文中改进:在自然语言基础之上,加入结构化输出(如报告模板、摘要结构等)以保障信息传递的准确性和上下文稳固性

2 TradingAgents:角色专业化

image

图 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% 的优势超越最佳基线表现。

image

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

image

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

  • CR% 累计收益 总共赚了多少

  • ARR% 年化收益 每年大概赚多少

  • SR 夏普比率 每单位风险带来多少回报

  • MDD% 最大回撤 最惨时亏了多少

image

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

http://www.dtcms.com/a/360819.html

相关文章:

  • .net 微服务jeager链路跟踪
  • C++11 ——— lambda表达式
  • LeetCode 19: 删除链表的倒数第 N 个结点
  • GIT(了解)
  • 计算机网络---https(超文本传输安全协议)
  • Unity项目基本风格/规范
  • 三、SVN实践练习指南
  • 【项目思维】贪吃蛇(嵌入式进阶方向)
  • 函数、数组与 grep + 正则表达式的 Linux Shell 编程进阶指南
  • GPU 通用手册:裸机、Docker、K8s 环境实战宝典
  • 嵌入式碎片知识总结(二)
  • Shell编程(二):正则表达式
  • 至真科技西安分公司正式成立,赋能点金石业务增长新篇章!
  • 基于Spring Authorization Server的OAuth2与OpenID Connect统一认证授权框架深度解析
  • Linux -- 进程间通信【System V共享内存】
  • 基于llama.cpp在CPU环境部署Qwen3
  • JimuReport 积木报表 v2.1.3 版本发布,免费开源的可视化报表和大屏
  • 【Linux手册】Unix/Linux 信号:原理、触发与响应机制实战
  • 开源 C# .net mvc 开发(九)websocket--服务器与客户端的实时通信
  • Unity:XML笔记
  • 【基础】Three.js中如何添加阴影(附案例代码)
  • 基于SpringBoot的运动服装销售系统【2026最新】
  • 大型语言模型微调 内容预告(69)
  • 剧本杀小程序系统开发:重塑社交娱乐新生态
  • Trae x MCP:一键打造品牌专属高质量SVG封面
  • apipost 8.x 脚本循环调用接口
  • 9月1日
  • WhatsApp 漏洞与 Apple 零日漏洞一起被利用于间谍软件攻击
  • LangChain VectorStores核心:多向量数据库统一交互层与RAG存储中枢
  • 深度学习——速问速答