股票研究中的信息过载是真实存在的
在评估股票价值时,一个常见的挑战是:处理来自多个来源的大量信息,以做出明智的投资决策。
传统方法包括:
- 从各种平台收集财务数据。
- 阅读多份报告、新闻和其他文章。
- 构建和维护复杂的电子表格模型。
- 将这些信息综合成可操作的内容。
同时持有和管理所有这些输入通常看起来像这样:
众所周知,AI 是最可行的解决方案,可以轻松高效地处理大型数据集。
然而,目前大多数公开可用的大语言模型(LLM)仍然无法非常准确地对实时股票数据进行详细的深入分析。
- ChatGPT 和 Claude 有上下文日期截止。
- Perplexity 非常适合实时信息,但在分析任务方面受到限制。
- ChatGPT 搜索仍然不尽如人意。
对于详细的研究和股票分析,我们需要更精确且能够很好地处理结构化数据集的东西。
事实上,如果我们能把所有东西结合起来呢?如果我们能够利用 AI 智能体,在一个系统中就可以浏览新闻、谷歌搜索、财务数据集和编码任务呢?
一个超强、始终在线的股票分析师。
进入 AI 智能体解决方案
为了解决这个问题,我开发了一个系统,可以协调多个专业的 AI 智能体,每个智能体处理股票分析的特定方面。
智能体团队
- 情绪分析智能体(GPT-4o)
- 处理新闻和市场情绪
- 使用谷歌搜索收集最近的进展
- 提供情绪评分和趋势分析
- 财务分析智能体(Claude 3.5)
- 不同的智能体用于基本股票数据和历史数据
- 分析公司财务和指标
- 执行估值计算(DCF、公开可比公司、基本面分析)
- 评估关键绩效指标
- 量化分析智能体(Claude 3.5 Sonnet 或 Haiku)
- 执行 Python 代码进行技术分析
- 处理大型数据集和其他智能体的输出
- 生成可视化和统计见解
- 执行/投资组合经理智能体(Claude 3.5 Sonnet 或 Haiku)
- 充当投资组合经理,旨在综合数据,可选择路由。
- 汇总其他工具型智能体收集的所有信息,并提供买入、卖出或持有的建议
Phidata:智能体构建器
Phidata 是一个 AI 智能体框架,使开发人员能够:
- 构建具有记忆、知识和外部连接的智能体
- 构建可以协同工作的智能体团队
- 监控、评估和优化智能体
他们还提供直观且用户友好的智能体用户界面,用户可以在沙盒环境中测试智能体。
Phidata 允许我们开箱即用地集成多个强大的工具:
- Yahoo Finance API 用于实时价格数据和历史财务数据
- 谷歌搜索用于新闻和情绪分析
- 用于 AI 指导的代码执行和定量分析的 Python 工具(谨慎使用)
- 用于数据处理和可视化的自定义量化函数(可选)
- 注意:代码执行智能体需要严格的控制和严格的提示工程
- 代码智能体可能会遇到多个错误,例如递归函数或保存和读取文件
入门
想自己尝试一下吗?完整的代码可在 Google Colab 笔记本中找到。
您将需要:
- OpenAI 和 Anthropic 的 API 密钥(我们对不同的智能体使用不同的模型,但您可以选择更统一的工作流程)
- 已安装 Phidata 框架
- 一些基本的 Python 知识,以便继续学习
必需的包
!pip install phidata openai anthropic yfinance googlesearch-python pycountry -q
实例化库和 API 密钥
## Libraries from phi.agent import Agent from phi.model.openai import OpenAIChat from phi.model.anthropic import Claude from phi.tools.yfinance import YFinanceTools from phi.tools.googlesearch import GoogleSearch ## API Keys import requests from google.colab import userdata OPENAI_API_KEY = userdata.get('OPENAI_API_KEY') ANTHROPIC_API_KEY = userdata.get('ANTHROPIC_API_KEY') import os os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY os.environ["ANTHROPIC_API_KEY"] = ANTHROPIC_API_KEY
定义一个智能体 - 情绪分析示例
# Sentiment Analysis Agent sentiment_agent = Agent( name="Sentiment Analysis Agent", role="Search and interpret news articles", model=OpenAIChat(id="gpt-4o"), ## define the tools for the Agent's use tools=[GoogleSearch(), YFinanceTools(company_news=True)], instructions=[ "Find relevant news articles for each company and critically analyze the news sentiment.", "Provide sentiment scores from 1 (negative) to 10 (positive) with reasoning and sources." "Cite your sources. Be specific, crtical and provide relevant links." ], show_tool_calls=True, markdown=True, )
定义一个智能体 - 基本股票信息示例
# Financial Analyst Agent basic_stock_agent = Agent( name="Basic Financial Data Agent", role="Retrieve basic company financial data and expertly interpret trends and data using a rigourously analytical approach", model=Claude(id="claude-3-5-sonnet-latest"), ## swapped claude for gpt-4o ## define the tools for the Agent's use tools=[YFinanceTools(stock_price=True, company_info=True, stock_fundamentals=True, analyst_recommendations=True)], instructions=[ "Retrieve stock prices, analyst recommendations, and key summary financial data.", "Focus on company funamentals and trends, presenting the data in tables with key insights." ], show_tool_calls=True, markdown=True, )
用户可以选择根据其独特需求添加更多智能体,包括可视化智能体和其他格式
构建您的智能体团队
只需几行代码,我们就可以建立一个强大的多智能体系统,该系统具有特定的角色,可以协同分析股票。
agent_team
充当指挥,选择合适的智能体工作流程,并确保每个智能体贡献其见解,并且最终输出结构良好、数据驱动且易于理解
agent_team = Agent( model=Claude(id="claude-3-5-sonnet-latest"), team=[sentiment_agent, basic_stock_agent], ## Add more Agents here if desired. instructions=[ "Combine the expertise of all the agents part of your team to provide a cohesive, highly analytical and well-supported response", "Always include references and dates for all data points and sources. Your context is current as of [insert date here]" "Present data in structured tables for clarity, ensuring all conclusions are data-driven." "Explain the methodlogy and always determine a BUY, SELL, or HOLD recommendation." ], show_tool_calls=True, markdown=True, )
开始与您的智能体团队聊天 🤖
您现在可以开始查询您的智能体团队了!以下是示例提示和输出的外观:
示例提示:
agent_team.print_response( "Perform a public comparable companies analysis for CALM Cal Maine Foods. Identify it's main competitors and market positioning. Assess each comp in a structrued table format", stream=True )
示例输出:
(格式化后数据)
### 公共可比公司分析:Cal-Maine Foods (CALM) #### **公司概览** | 公司名称 | 股票代码 | 市值 (美元) | 主要业务方向 | 鸡蛋生产重点 | | ---------------------- | ---------- | ------------- | ---------------- | -------------- | | Cal-Maine Foods | CALM | $4.96B | 专注于鸡蛋生产 | 核心业务 | | Post Holdings | POST | $6.66B | 包装食品 | 次要业务 | | Tyson Foods | TSN | $20.65B | 肉类和食品产品 | 边缘业务线 | | Vital Farms | VITL | $1.64B | 放养鸡蛋 | 专注细分市场 | | Seaboard Corporation | SEB | $2.34B | 多元化企业集团 | 边缘业务线 | #### **财务指标对比** | 指标 | CALM | POST | TSN | VITL | SEB | | ----------------------- | -------- | -------- | -------- | -------- | -------- | | 市盈率 (P/E Ratio) | 11.59 | 16.11 | 13.80 | 31.31 | N/A | | 每股收益 (EPS) | $8.73 | $5.64 | $2.25 | $1.12 | -$5.30 | | 收入增长率 (同比) | 71.1% | 波动 | 中等 | 高 | 波动 | | 毛利率 (Gross Margin) | 28.02% | 15-20% | 12-15% | 25-30% | 波动 | --- ### **Cal-Maine Foods 的竞争地位** #### **独特优势** 1. 鸡蛋生产市场的领导地位 2. 多元化的产品组合 3. 强大的区域分销网络 4. 专注于特色鸡蛋细分市场 5. 稳健的财务表现 #### **关键差异化特点** * **品牌** :Egg-Land's Best, Land O' Lakes, Farmhouse Eggs * **产品范围** :传统、有机、散养、放牧鸡蛋 * **地理覆盖** :西南、东南、中西部、东北和中大西洋地区 --- ### **市场建议** #### **综合评估** * **Cal-Maine Foods** 是最专注于鸡蛋生产的公司 * 与多元化竞争对手相比,财务指标表现强劲 * 在特色鸡蛋市场细分中有持续增长的潜力 #### **投资建议:** **强烈买入** * 稳健的基本面 * 市场领导地位 * 适应消费者趋势的能力 * 相较于同业估值具有吸引力 --- **注意** :以上分析基于当前市场数据,可能会随市场变化而调整。在做出投资决策之前,请始终进行个人尽职调查。
就是这样。您正在构建您的个人股票分析师,以帮助您增强投资流程。
真实世界的结果
在各种股票上测试该系统已显示出可喜的结果:
- 成本降低:通过自动汇总数据,可以消除对多个金融数据库订阅的需求
- 研究效率:减少股票研究时间,并且可以同时处理多家公司,从而在不增加人员的情况下扩大覆盖范围
- 竞争分析:快速生成同行比较和行业定位
- 财务分析:减少对初级分析师进行数据收集的依赖,使他们能够专注于更高价值的分析
- 多模型支持:插入 Claude、GPT、Groq、HF 模型或任何最适合您需求的 LLM 提供商
⚠️ 局限性
虽然功能强大,但该系统仍有一些局限性:
- 分析超出 LLM 训练截止日期的数据的能力有限
- 依赖外部 API 数据质量和可用性
- 使用其他工具和智能体时,计算成本较高
- 需要精确的提示工程
- 复杂的决策仍需要人工监督
🛠️ 潜在的增强功能
未来的增强功能可能包括:
- 其他数据源和 API
- 更复杂的智能体间通信
- 增强的可视化和代码执行能力
- 用于模式识别的机器学习模型
结论
这个多智能体系统是自动化金融分析向前迈出的重要一步,并且每个人都可以免费使用。通过结合不同 AI 模型和工具的优势,我们可以创建更强大和全面的分析工作流程。
请记住:虽然 AI 可以极大地增强我们的分析能力,但它应该作为投资决策中人类判断的补充,而不是替代品。
免责声明:此帖子仅用于教育目的,不应被视为财务建议。在做出投资决策之前,请始终进行自己的研究。