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

开源项目_金融分析工具TradingAgents

TradingAgents 是一个由 加州大学洛杉矶分校 和 麻省理工学院 联合开发的 多智能体金融交易框架 ,旨在通过 大型语言模型 (LLM)驱动的多个专业化智能体协作完成金融交易决策。

1 源码分析

image

  • 标准版:https://github.com/TauricResearch/TradingAgents,18.2K star(2 个月前更新)

    • 为简化内容,本文仅介绍标准版。

  • 中文加强版:https://github.com/hsliuping/TradingAgents-CN,4.7K star(一周前更新)

    • 针对 A 股信息源进行调整

    • 加强了新闻功能的使用

    • 加强了 Docker 部署部分

    • Streamlit 界面

    • 基于国内模型优化

1.1 数据来源

用法见:获取金融数据_总览

1.2 模型

实验中使用 o1-preview 和 gpt-4o 分别作为深度思考与快速思考的大语言模型。但测试时建议使用 o4-mini 和 gpt-4.1-mini 以节省成本,框架会发起大量 API 调用。

1.3 代码

概览:该项目由 Python 语言编写,代码 3500+ 行,分为三个主要部分:

  1. agent:定义了每个组和组内各成员的功能及实现,请参见具体 Prompt。

  2. dataflow:实现各种工具功能,如新闻抓取、信息和数据采集,以及指标计算。

  3. graph:构建组与成员之间的关系框架,是系统的调用入口,包含以下组件:

    • ConditionalLogic:处理条件逻辑

    • GraphSetup:设置和配置图结构

    • Propagator:管理信息传播和状态

    • Reflector:负责反思机制和记忆更新

    • SignalProcessor:处理交易信号并生成最终决策

    • TradingAgentsGraph:核心功能入口

├── assets 资源数据│   └── cli├── cli 与用户界面交互,实时跟踪各个 agent 的状态和执行流│   └── static└── tradingagents(下面详述)    ├── agents    │   ├── analysts    │   ├── managers    │   ├── researchers    │   ├── risk_mgmt    │   ├── trader    │   └── utils    ├── dataflows
  • 使用的库接口都非常简便,极为用户友好,无需在细节上浪费过多时间,用起来轻松愉快。

  • 新闻来源包括:FinnHub、Google 新闻、Reddit,也尝试通过 OpenAI 获取新闻信息。处理方式是:将计算的指标和收集的信息提交给大模型,由其筛选出最重要的 topN 个指标并进行解释,最后提供建议。

  • 指标计算使用了 Python 的 StockStats 库。

  • 记忆存储使用 ChromaDB 管理,在思考过程中每个代理都会记录,并进行嵌入。

  • 接口大多与美股相关。尽管使用了 FinnHub 数据,但只是读取了之前下载的数据文件,没有真正从 FinnHub、SimFin 下载数据。调用 yfinance 库时频繁出现 429 错误,不过 GoogleNews_Utils 库依旧可用。实际使用时还需要修改。

2 依赖工具介绍

2.1 ChromaDB

ChromaDB (通常称为 Chroma )是一个开源的向量数据库,专注于存储、索引和查询向量数据,主要用于自然语言处理(NLP)和计算机视觉等领域。它提供轻量化数据存储方案,支持多模态嵌入检索,并可与大型语言模型(如 Llama3 )结合使用,实现精准文档查询。

基于 SQLite 数据库,无需复杂配置即可运行,适合中小型项目。

ChromaDB 支持这两种模式:

2.1.1 客户端 - 服务器模式(多客户端共享)

可以启动一个 ChromaDB 服务器,多个客户端连接:

启动 ChromaDB 服务器

chroma run --host localhost --port 8000

客户端连接到服务器

2.1.2 嵌入式模式(单客户端,类似 SQLite)

就像当前代码中使用的方式,直接创建本地客户端:

当前代码使用的方式 - 嵌入式模式

client = chromadb.Client(Settings(allow_reset=True))

或者指定持久化路径

client = chromadb.PersistentClient(path="/path/to/chroma/data")

2.2 LangGraph

LangGraph 是一种基于 LangChain 构建的智能体编排框架,通过状态机驱动,将 Agent 系统设计为有向图流程图。

http://www.xdnf.cn/news/19580.html

相关文章:

  • 01数据结构-红黑树
  • python 数据类型【python进阶一】
  • java设计模式一、单例模式
  • 【K8s】整体认识K8s之Configmap、Secret/ResourceQuota资源配额/访问控制
  • Linux应用开发-windows,linux环境下相关工具
  • Adobe Illustrator 2025最新破解教程下载安装教程,Illustrator2025最新版下载
  • AI 安全与伦理:当大模型拥有 “决策能力”,我们该如何建立技术边界与监管框架?
  • 新手向:前端开发中的常见问题
  • NLP大语言模型数据准备
  • 基于 DNA 的原核生物与微小真核生物分类学:分子革命下的范式重构​
  • Shell编程(二):正则表达式
  • FastK v1.1 安装与使用-生信工具59
  • Gradle vs. Maven,Java 构建工具该用哪个?
  • 喜讯!华清远见参与制定的《电子产品印制电路板可制造性设计(DFM)和可靠性设计规范》正式发布
  • 【无标题】训练、推理适用的数据类型
  • 专题:2025全球新能源汽车供应链核心领域研究报告|附300+份报告PDF、数据仪表盘汇总下载
  • 关闭页面强制清除所有循环定时器
  • ES6手录02-字符串与函数的扩展
  • Kotlin 协程异步任务工具类:高效处理异步操作与超时控制
  • UE5 为啥原生的NotifyState写逻辑会有问题
  • 开源低代码平台(NocoBase)
  • 20250828的学习笔记
  • 9.1日IO作业
  • 2025年09月01日Github流行趋势
  • 99、23种设计模式之组合模式(8/23)
  • 09.《路由基础知识解析和实践》
  • 基于外部对照数据借用的临床试验统计分析方案设计与仿真研究
  • PitVis-2023挑战赛:内镜下垂体瘤手术视频中的手术流程识别|文献速递-深度学习人工智能医疗图像
  • 如何把指定阿里云文件夹下的所有文件移动到另一个文件夹下,移动文件时把文件名称(不包括文件后缀)进行md5编码
  • 从理论到实践,深入剖析数据库水平拆分的安全平滑落地