网淘吧来吧,欢迎您!

Earnings Calendar

2026-03-30 新闻来源:网淘吧 围观:21
电脑广告
手机广告

财报日历

概述

此功能利用 Financial Modeling Prep (FMP) API 检索即将发布的美国股票财报公告。它重点关注市值较大(中盘股及以上,超过20亿美元)且可能影响市场走势的公司。该功能会生成组织有序的 Markdown 报告,显示未来一周内将发布财报的公司,并按日期和时间(开盘前、收盘后或时间未公布)进行分组。

主要功能

Earnings Calendar

  • 使用 FMP API 获取可靠、结构化的财报数据
  • 按市值(>20亿美元)筛选,重点关注能影响市场的公司
  • 包含每股收益 (EPS) 和营收预期
  • 支持多环境(命令行、桌面端、网页端)
  • 灵活的 API 密钥管理
  • 按日期、时间和市值进行组织

先决条件

FMP API 密钥

此功能需要一个 Financial Modeling Prep API 密钥。

获取免费 API 密钥

  1. 访问:https://site.financialmodelingprep.com/developer/docs
  2. 注册免费账户
  3. 立即获取API密钥
  4. 免费层级:每日250次API调用(足以满足每周收益日历需求)

按环境配置API密钥

Claude代码(CLI)

export FMP_API_KEY="your-api-key-here"

Claude桌面版: 在系统中设置环境变量或配置MCP服务器。

Claude网页版: API密钥将在技能执行期间请求(仅存储在当前会话中)。

核心工作流程

步骤1:获取当前日期并计算目标周

关键:始终从获取准确的当前日期开始。

检索当前日期和时间:

  • 使用系统日期/时间获取今日日期
  • 注意:"今日日期"在环境(<env>标签)中提供
  • 计算目标周:当前日期起未来7天

日期范围计算

Current Date: [e.g., November 2, 2025]
Target Week Start: [Current Date + 1 day, e.g., November 3, 2025]
Target Week End: [Current Date + 7 days, e.g., November 9, 2025]

为何重要

  • 财报日历具有时效性
  • "下周"必须基于实际当前日期计算
  • 为API请求提供准确的日期范围

日期格式化为YYYY-MM-DD以确保API兼容性。

步骤2:加载FMP API指南

在检索数据前,请加载全面的FMP API指南:

Read: references/fmp_api_guide.md

该指南包含:

  • FMP API端点结构及参数
  • 认证要求
  • 市值筛选策略(通过公司概况API)
  • 财报发布时间惯例(BMO、AMC、TAS)
  • 响应格式及字段说明
  • 错误处理策略
  • 最佳实践与优化提示

步骤三:API密钥检测与配置

根据运行环境检测API密钥可用性

多环境API密钥检测机制

3.1 检查环境变量(命令行/桌面环境)

if [ ! -z "$FMP_API_KEY" ]; then
  echo "✓ API key found in environment"
  API_KEY=$FMP_API_KEY
fi

若环境变量已设置,则跳转至步骤四

3.2 向用户请求API密钥(桌面/网页环境)

若未检测到环境变量,则调用AskUserQuestion工具:

问题配置方案

Question: "This skill requires an FMP API key to retrieve earnings data. Do you have an FMP API key?"
Header: "API Key"
Options:
  1. "Yes, I'll provide it now" → Proceed to 3.3
  2. "No, get free key" → Show instructions (3.2.1)
  3. "Skip API, use manual entry" → Jump to Step 8 (fallback mode)

3.2.1 若用户选择“否,获取免费密钥”

提供操作指引:

To get a free FMP API key:

1. Visit: https://site.financialmodelingprep.com/developer/docs
2. Click "Get Free API Key" or "Sign Up"
3. Create account (email + password)
4. Receive API key immediately
5. Free tier includes 250 API calls/day (sufficient for daily use)

Once you have your API key, please select "Yes, I'll provide it now" to continue.

3.3 请求输入API密钥

若用户已持有API密钥,则请求输入:

交互提示框

Please paste your FMP API key below:

(Your API key will only be stored for this conversation session and will be forgotten when the session ends. For regular use, consider setting the FMP_API_KEY environment variable.)

将API密钥存储至会话变量

API_KEY = [user_input]

向用户确认操作

✓ API key received and stored for this session.

Security Note:
- API key is stored only in current conversation context
- Not saved to disk or persistent storage
- Will be forgotten when session ends
- Do not share this conversation if it contains your API key

Proceeding with earnings data retrieval...

步骤四:通过FMP API获取收益数据

使用Python脚本从FMP API获取收益数据。

脚本位置:

scripts/fetch_earnings_fmp.py

执行:

选项A:使用环境变量(CLI):

python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09

选项B:使用会话API密钥(桌面/网页):

python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09 "${API_KEY}"

脚本工作流程(自动):

  1. 验证API密钥和日期参数
  2. 调用FMP收益日历API获取日期范围数据
  3. 获取公司简介(市值、行业板块、具体行业)
  4. 筛选市值大于20亿美元的公司
  5. 标准化时间安排(盘前BMO/盘后AMC/盘中TAS)
  6. 按日期 → 时间安排 → 市值(降序)排序
  7. 将JSON输出到标准输出

预期输出格式(JSON):

[
  {
    "symbol": "AAPL",
    "companyName": "Apple Inc.",
    "date": "2025-11-04",
    "timing": "AMC",
    "marketCap": 3000000000000,
    "marketCapFormatted": "$3.0T",
    "sector": "Technology",
    "industry": "Consumer Electronics",
    "epsEstimated": 1.54,
    "revenueEstimated": 123400000000,
    "fiscalDateEnding": "2025-09-30",
    "exchange": "NASDAQ"
  },
  ...
]

保存到文件(建议与报告生成器配合使用):

python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09 "${API_KEY}" > earnings_data.json

或捕获到变量:

earnings_data=$(python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09 "${API_KEY}")

错误处理

如果脚本返回错误:

  • 401 未授权:API密钥无效 → 验证密钥或重新输入
  • 429 速率限制:超过每日250次调用 → 等待或升级计划
  • 空结果:日期范围内无收益数据 → 扩大日期范围或在报告中注明
  • 连接错误:网络问题 → 重试或使用缓存的可用数据

步骤5:处理和组织数据

一旦获取到收益数据(JSON格式),进行处理和组织:

5.1 解析JSON数据

从脚本输出加载JSON数据:

import json
earnings_data = json.loads(earnings_json_string)

或如果保存到文件:

with open('earnings_data.json', 'r') as f:
    earnings_data = json.load(f)

5.2 验证数据结构

确认数据包含必要字段:

  • ✓ 股票代码
  • ✓ 公司名称
  • ✓ 日期
  • ✓ 时间(盘前/盘后/未公布)
  • ✓ 市值
  • ✓ 行业

5.3 按日期分组

将所有财报发布日期按日期分组:

  • 星期日,[完整日期](如适用)
  • 星期一,[完整日期]
  • 星期二,[完整日期]
  • 星期三,[完整日期]
  • 星期四,[完整日期]
  • 星期五,[完整日期]
  • 星期六,[完整日期](如适用)

5.4 按发布时间子分组

在每个日期内,创建三个子部分:

  1. 盘前 (BMO)
  2. 盘后 (AMC)
  3. 时间未公布 (TAS)

数据已通过脚本按时间排序,请保持此顺序。

5.5 在每个时间分组内

公司已按市值降序排列(脚本输出):

  • 首先列出大盘股(>2000亿美元)
  • 大型股(100亿至2000亿美元)其次
  • 中型股(20亿至100亿美元)第三

这种优先级排序确保对市场影响最大的公司优先列出。

5.6 计算汇总统计量

计算:

  • 公司总数:数据集中所有公司的数量
  • 巨型/大型股数量:市值 >= 100亿美元的公司数量
  • 中型股数量:市值在20亿至100亿美元之间的公司数量
  • 发布高峰日:财报发布最集中的星期几
  • 行业分布:按行业统计的数量(科技、医疗保健、金融等)
  • 市值最高的公司:按市值排名的前5家公司

步骤6:生成Markdown报告

使用报告生成脚本,根据JSON数据创建格式化的Markdown报告。

脚本位置

scripts/generate_report.py

执行:

选项 A:输出到标准输出:

python scripts/generate_report.py earnings_data.json

选项 B:保存到文件:

python scripts/generate_report.py earnings_data.json earnings_calendar_2025-11-02.md

脚本功能:

  1. 从 JSON 文件加载盈利数据
  2. 按日期和时段(BMO/AMC/TAS)分组
  3. 在各组内按市值排序
  4. 计算汇总统计信息
  5. 生成格式化的 Markdown 报告
  6. 输出到标准输出或保存到文件

脚本自动处理所有格式化,包括:

  • 正确的 Markdown 表格结构
  • 日期分组和星期名称
  • 市值排序
  • 每股收益和收入格式化
  • 汇总统计信息计算

报告结构:

# Upcoming Earnings Calendar - Week of [START_DATE] to [END_DATE]

**Report Generated**: [Current Date]
**Data Source**: FMP API (Mid-cap and above, >$2B market cap)
**Coverage Period**: Next 7 days
**Total Companies**: [COUNT]

---

## Executive Summary

- **Total Companies Reporting**: [TOTAL_COUNT]
- **Mega/Large Cap (>$10B)**: [LARGE_CAP_COUNT]
- **Mid Cap ($2B-$10B)**: [MID_CAP_COUNT]
- **Peak Day**: [DAY_WITH_MOST_EARNINGS]

---

## [Day Name], [Full Date]

### Before Market Open (BMO)

| Ticker | Company | Market Cap | Sector | EPS Est. | Revenue Est. |
|--------|---------|------------|--------|----------|--------------|
| [TICKER] | [COMPANY] | [MCAP] | [SECTOR] | [EPS] | [REV] |

### After Market Close (AMC)

| Ticker | Company | Market Cap | Sector | EPS Est. | Revenue Est. |
|--------|---------|------------|--------|----------|--------------|
| [TICKER] | [COMPANY] | [MCAP] | [SECTOR] | [EPS] | [REV] |

### Time Not Announced (TAS)

| Ticker | Company | Market Cap | Sector | EPS Est. | Revenue Est. |
|--------|---------|------------|--------|----------|--------------|
| [TICKER] | [COMPANY] | [MCAP] | [SECTOR] | [EPS] | [REV] |

---

[Repeat for each day of week]

---

## Key Observations

### Highest Market Cap Companies This Week
1. [COMPANY] ([TICKER]) - [MCAP] - [DATE] [TIME]
2. [COMPANY] ([TICKER]) - [MCAP] - [DATE] [TIME]
3. [COMPANY] ([TICKER]) - [MCAP] - [DATE] [TIME]

### Sector Distribution
- **Technology**: [COUNT] companies
- **Healthcare**: [COUNT] companies
- **Financial**: [COUNT] companies
- **Consumer**: [COUNT] companies
- **Other**: [COUNT] companies

### Trading Considerations
- **Days with Heavy Volume**: [DATES with multiple large-cap earnings]
- **Pre-Market Focus**: [BMO companies that may move markets]
- **After-Hours Focus**: [AMC companies that may move markets]

---

## Timing Reference

- **BMO (Before Market Open)**: Announcements typically around 6:00-8:00 AM ET before market opens at 9:30 AM ET
- **AMC (After Market Close)**: Announcements typically around 4:00-5:00 PM ET after market closes at 4:00 PM ET
- **TAS (Time Not Announced)**: Specific time not yet disclosed - monitor company investor relations

---

## Data Notes

- **Market Cap Categories**:
  - Mega Cap: >$200B
  - Large Cap: $10B-$200B
  - Mid Cap: $2B-$10B

- **Filter Criteria**: This report includes companies with market cap $2B and above (mid-cap+) with earnings scheduled for the next week.

- **Data Source**: Financial Modeling Prep (FMP) API

- **Data Freshness**: Earnings dates and times can change. Verify critical dates through company investor relations websites for the most current information.

- **EPS and Revenue Estimates**: Analyst consensus estimates from FMP API. Actual results will be reported on earnings date.

---

## Additional Resources

- **FMP API Documentation**: https://site.financialmodelingprep.com/developer/docs
- **Seeking Alpha Calendar**: https://seekingalpha.com/earnings/earnings-calendar
- **Yahoo Finance Calendar**: https://finance.yahoo.com/calendar/earnings

---

*Report generated using FMP Earnings Calendar API with mid-cap+ filter (>$2B market cap). Data current as of report generation time. Always verify earnings dates through official company sources.*

格式化最佳实践使用Markdown表格进行清晰展示

  • 如需要,可将重要公司名称(超大型股)加粗
  • 包含易于阅读格式的市值信息($3.0T, $150B, $5.2B) - 已由脚本格式化
  • 按日期和发布时间进行逻辑分组
  • 顶部包含摘要部分以便快速概览
  • 若可获得,请包含每股收益和营收预测
  • 步骤7:质量保证

在最终确定报告前,请核实:

数据质量检查

✓ 所有日期均落在目标周内(未来7天)

  1. ✓ 所有公司的市值信息均已提供
  2. ✓ 每家公司均已指定发布时间(盘前/盘后/不定时)
  3. ✓ 各章节内的公司已按市值排序
  4. ✓ 摘要统计信息准确无误
  5. ✓ 报告生成日期已明确标注
  6. ✓ 在可获得的情况下已包含每股收益和营收预测
  7. 完整性检查

Completeness Checks✓ 目标周的所有日期均已包含(即使没有收益数据)

  1. ✓ 主要知名公司均未遗漏(必要时可对照外部来源进行验证)
  2. ✓ 在可获得的情况下包含行业信息
  3. ✓ 存在时间参考部分
  4. ✓ 数据来源已注明(FMP API)
  5. 格式检查

:✓ Markdown 表格格式正确

  1. ✓ 日期格式保持一致
  2. ✓ 市值使用一致的单位(B 代表十亿,T 代表万亿)
  3. ✓ 所有部分均遵循模板结构
  4. ✓ 无占位符文本([PLACEHOLDER])残留
  5. ✓ EPS 和营收预估格式正确
  6. 步骤 8:保存并交付报告

使用适当的文件名保存生成的报告:

文件名约定

:示例:

earnings_calendar_[YYYY-MM-DD].md

earnings_calendar_2025-11-02.mdearnings_calendar_2025-11-02.md

文件名中的日期代表报告生成日期,而非财报周。

交付

  • 将Markdown文件保存到工作目录
  • 通知用户报告已生成
  • 提供关键发现的简要摘要(例如:“下周有45家公司发布财报,苹果和微软在周一”)

示例摘要

✓ Earnings calendar report generated: earnings_calendar_2025-11-02.md

Summary for week of November 3-9, 2025:
- 45 companies reporting earnings
- 28 large/mega-cap, 17 mid-cap
- Peak day: Thursday (15 companies)
- Notable: Apple (Mon AMC), Microsoft (Tue AMC), Tesla (Wed AMC)

Top 5 by market cap:
1. Apple - $3.0T (Mon AMC)
2. Microsoft - $2.8T (Tue AMC)
3. Alphabet - $1.8T (Thu AMC)
4. Amazon - $1.6T (Fri AMC)
5. Tesla - $800B (Wed AMC)

备用模式(步骤8替代方案):手动数据输入

如果API访问不可用或用户选择跳过API:

提供手动输入说明

Since FMP API is not available, you can manually gather earnings data:

1. Visit Finviz: https://finviz.com/screener.ashx?v=111&f=cap_midover%2Cearningsdate_nextweek
2. Or Yahoo Finance: https://finance.yahoo.com/calendar/earnings
3. Note down companies reporting next week

Please provide the following information for each company:
- Ticker symbol
- Company name
- Earnings date
- Timing (BMO/AMC/TAS)
- Market cap (approximate)
- Sector

I will format this into the standard earnings calendar report.

处理手动输入

  1. 解析用户提供的财报数据
  2. 按日期、时间和市值进行组织
  3. 使用相同模板生成报告
  4. 在报告中注明:“数据来源:手动输入”

用例与示例

用例1:每周回顾(主要用例)

用户请求:"获取下周的财报日历"

工作流程

  1. 获取当前日期(例如:2025年11月2日)
  2. 计算目标周(2025年11月3日至9日)
  3. 加载FMP API指南
  4. 检测/请求API密钥
  5. 获取财报数据:
    python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09 > earnings_data.json
    
  6. 生成Markdown报告:
    python scripts/generate_report.py earnings_data.json earnings_calendar_2025-11-02.md
    
  7. 向用户发送摘要通知

完整一句话总结

python scripts/fetch_earnings_fmp.py 2025-11-03 2025-11-09 > earnings_data.json && \
python scripts/generate_report.py earnings_data.json earnings_calendar_2025-11-02.md

用例2:专注于特定日期

用户请求:"周一会发布哪些财报?"

工作流程

  1. 获取当前日期并确定下一个周一(例如:2025年11月4日)
  2. 获取整周数据(与用例1相同)
  3. 生成完整报告但突出显示周一部分
  4. 提供周一的财报口头摘要并加以强调

用例 3:超大型股聚焦

用户请求:"显示下周市值超过1000亿美元的公司的财报信息"

工作流程

  1. 获取完整财报数据(脚本已预设过滤市值>20亿美元的公司)
  2. 正常处理和组织数据
  3. 生成报告时,在顶部添加"超大型股聚焦"部分
  4. 筛选表格,仅显示市值>1000亿美元的公司
  5. 注意:完整数据仍包含在附录中供参考

用例 4:特定行业

用户请求:"下周有哪些科技公司发布财报?"

工作流程

  1. 获取完整财报数据
  2. 正常处理和组织数据
  3. 按行业筛选结果,选择"科技"行业
  4. 生成聚焦科技行业的报告
  5. 注意:报告模板结构保持不变;仅内容经过筛选

故障排除

问题:API密钥无效

解决方案

  • 验证API密钥是否正确(仔细复制粘贴)
  • 检查API密钥是否处于激活状态(登录FMP控制面板)
  • 确保密钥前后没有多余的空格
  • 尝试从FMP控制面板生成新的API密钥

问题:脚本返回空结果

解决方案

  • 验证日期范围是否为未来日期(而非过去日期)
  • 检查日期格式是否为YYYY-MM-DD
  • 尝试更宽的日期范围(例如14天而非7天)
  • 确认公司确实在该周已公布财报日期

问题:缺少主要公司

解决方案

  • 公司可能尚未公布财报日期
  • 部分公司公布日期非常晚(提前1-2天)
  • 与公司投资者关系网站进行交叉核对
  • 市值可能已跌破20亿美元门槛

问题:触发速率限制(429错误)

解决方案

  • 免费层级:每日250次调用
  • 每份周报使用约3-5次API调用
  • 检查其他工具/脚本是否使用同一API密钥
  • 等待24小时速率限制重置
  • 若需频繁使用,可考虑升级至付费层级

问题:脚本执行错误

解决方案

  • 验证Python 3是否已安装:python3 --version
  • 安装requests库:pip install requests
  • 检查脚本是否具有执行权限:chmod +x fetch_earnings_fmp.py
  • 显式使用python3运行:python3 fetch_earnings_fmp.py ...

最佳实践

注意事项

✓ 在任何数据检索之前,先获取当前日期 ✓ 使用FMP API作为主要来源以确保可靠性 ✓ 将API密钥存储在环境变量中,以便在CLI中使用 ✓ 按市值排序,优先考虑高影响力公司 ✓ 按日期和发布时间分组,以实现逻辑组织 ✓ 包含汇总统计以便快速概览 ✓ 在报告页脚注明数据来源 ✓ 使用清晰的Markdown表格以提高可读性 ✓ 提供发布时间参考部分以明确时间 ✓ 注明数据新鲜度和可能存在的变更 ✓ 在可用时纳入每股收益和营收预测

禁止事项

✗ 不要未经从当前日期计算就假定"下周" ✗ 不要省略发布时间信息(盘前/盘后/盘中) ✗ 不要在报告中混用日期格式(保持一致性) ✗ 除非特别要求,否则不要包含微型/小型市值公司 ✗ 不要忘记在各部分内按市值排序 ✗ 不要在对话或报告中分享API密钥 ✗ 不要包含本周或已过期的财报 ✗ 不要未经质量保证检查就生成报告 ✗ 不要将API密钥提交到版本控制系统

安全注意事项

API密钥安全

重要提醒:

  1. ✓ 测试时使用免费层级的API密钥
  2. ✓ 定期轮换密钥
  3. ✓ 不要分享包含API密钥的对话
  4. ✓ 为CLI使用将API密钥设置为环境变量
  5. ✓ 聊天中提供的密钥仅限会话使用(会话结束后即失效)
  6. ✗ 切勿将API密钥提交至Git仓库
  7. ✗ 切勿将具备敏感数据访问权限的生产环境API密钥用于开发测试

最佳实践: 对于Claude代码(CLI),请始终使用环境变量:

# Add to ~/.zshrc or ~/.bashrc
export FMP_API_KEY="your-key-here"

对于Claude网页版,请注意:

  • 聊天中输入的API密钥具有临时性
  • 仅存储在对话上下文中
  • 不会保存至磁盘
  • 会话结束时自动清除

资源

FMP API

补充来源(用于验证):

技能资源

  • FMP API 指南:references/fmp_api_guide.md
  • Python 脚本:scripts/fetch_earnings_fmp.py
  • 报告模板:assets/earnings_report_template.md

总结

该技能提供了一种可靠的、基于API的方法来生成美股每周盈利日历。通过使用FMP API,确保获取结构化的准确数据,并附带如每股收益/营收预估等额外洞察。多环境支持使其能在命令行、桌面和网页端灵活使用,而备用模式则确保了即便没有API访问也能保持功能运行。

核心工作流程:日期计算 → API密钥设置 → API数据获取 → 处理 → 报告生成 → 质量保证 → 交付

输出结果:生成简洁有序的Markdown报告,盈利数据按日期/时段/市值分组,包含摘要统计和交易注意事项。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第349353名访客 今日有175篇新文章/评论