mcpField
D
dividend-growth-pullback-screener

dividend-growth-pullback-screener

github.com/mphinance其他3287 次安装3 天前更新
代码仓库

关于 dividend-growth-pullback-screener

使用 Python 筛选基本面较强且 RSI 较低的股息增长股。它结合 FMP 数据与可选的 FINVIZ 预筛选,对候选股排名并生成结构化及可读报告。

主要功能

  1. 01筛选股息增长与财务状况
  2. 02计算 14 周期 RSI
  3. 03使用可选 FINVIZ 预筛选
  4. 04按综合分数排列候选股
  5. 05导出 JSON 和 Markdown 报告

适用场景

  1. 01寻找回调中的股息增长股
  2. 02按基本面比较合格股票
  3. 03查看 RSI 所示的入场时机

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mphinance/alpha-skills --skill dividend-growth-pullback-screener

安装后在 Claude Code 中输入/dividend-growth-pullback-screener确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
dividend_growth_compounding.md
fmp_api_guide.md
rsi_oversold_strategy.md
scripts/
screen_dividend_growth_rsi.py
scripts/tests/
test_screen_dividend_growth_rsi.py

详细介绍

股息增长回调筛选器

概述

此技能用于筛选基本面强劲但暂时出现技术面疲软的股息增长型股票。目标是股息增长率出色(CAGR 达 12% 以上),且回调至 RSI 超卖水平(≤40)的股票,为长期股息增长型投资者创造潜在的入场机会。

投资论点: 高质量的股息增长型股票(收益率通常为 1–2.5%)依靠股息增长而非较高的当前收益率来实现财富复利。在这些股票暂时回调时买入(RSI ≤40),可将强劲的基本面增长与有利的技术面入场时机相结合,从而提升总回报。

何时使用此技能

在以下情况下使用此技能:

  • 寻找复利增长潜力出色的股息增长型股票(股息 CAGR 达 12% 以上)
  • 在市场暂时走弱期间寻找优质股票的入场机会
  • 愿意接受较低的当前收益率(1.5–3%),以换取更高的股息增长
  • 关注 5–10 年的总回报,而非当前收入
  • 市场环境显示行业轮动或普遍回调正在影响优质股票

请勿在以下情况下使用:

  • 寻求较高的当前收入(请改用 value-dividend-screener)
  • 要求股息收益率立即达到 3% 以上
  • 寻找对市盈率或市净率有严格要求的深度价值投资标的
  • 专注于短期交易(少于 6 个月)

前提条件

  • FMP API 密钥(必需):设置 FMP_API_KEY 环境变量,或传入 --fmp-api-key。免费套餐(每天 250 次调用)足以用于纯 FMP 模式(不超过 40 只股票)。注册。
  • FINVIZ Elite API 密钥(可选,建议使用):设置 FINVIZ_API_KEY 环境变量,或传入 --finviz-api-key。可将执行时间从 10–15 分钟缩短至 2–3 分钟。注册。
  • 已安装 requests 和 pandas 库的 Python 3.8+。

筛选工作流

第 1 步:设置 API 密钥
双阶段方法(推荐)

为获得最佳性能,请使用 FINVIZ Elite API 进行预筛选,再使用 FMP API 进行详细分析:

# Set both API keys as environment variables
export FMP_API_KEY=your_fmp_key_here
export FINVIZ_API_KEY=your_finviz_key_here

为什么采用双阶段方法?

  • FINVIZ:通过 RSI 筛选条件快速预筛选(1 次 API 调用 → 约 10–50 个候选对象)
  • FMP:仅对预筛选出的候选对象进行详细基本面分析
  • 结果:使用更少的 FMP API 调用分析更多股票(不会超出免费套餐限制)
纯 FMP 方法(原始方法)

如果没有 FINVIZ Elite 访问权限:

export FMP_API_KEY=your_key_here

限制: FMP 免费套餐(每天 250 次请求)最多只能分析约 40 只股票。使用 --max-candidates 40 以确保不超出限制。

第 2 步:执行筛选

双阶段筛选(推荐):

python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --use-finviz

此操作会执行:

  1. FINVIZ 预筛选:股息收益率 0.5–3%、股息增长 10% 以上、每股收益增长 5% 以上、销售额增长 5% 以上、RSI <40
  2. FMP 详细分析:验证股息 CAGR 达 12% 以上、计算精确 RSI、分析基本面

纯 FMP 筛选:

python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --max-candidates 40

自定义选项:

# Two-stage with custom parameters
python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \
  --use-finviz --min-yield 2.0 --min-div-growth 15.0 --rsi-max 35

# FMP-only with custom parameters
python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \
  --min-yield 2.0 --min-div-growth 10.0 --max-candidates 30

# Provide API keys as arguments (instead of environment variables)
python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py \
  --use-finviz --fmp-api-key YOUR_FMP_KEY --finviz-api-key YOUR_FINVIZ_KEY
第 3 步:查看结果

该脚本会生成两种输出:

  1. JSON 文件: dividend_growth_pullback_results_YYYY-MM-DD.json

    • 包含所有指标的结构化数据,便于进一步分析
    • 包含股息增长率、RSI 值和财务健康指标
  2. Markdown 报告: dividend_growth_pullback_screening_YYYY-MM-DD.md

    • 包含股票概况的易读分析
    • 基于不同情景的概率评估
    • 入场时机建议
第 4 步:分析符合条件的股票

对于每只符合条件的股票,报告包括:

股息增长概况:

  • 当前收益率和年度股息
  • 3 年股息 CAGR 和稳定性
  • 派息率和可持续性评估

技术择时:

  • 当前 RSI 值(≤40 = 超卖)
  • RSI 背景(极度超卖 <30,早期回调 30-40)
  • 相对于近期趋势的价格走势

质量指标:

  • 营收和 EPS 增长(确认业务势头)
  • 财务状况(债务水平、流动性比率)
  • 盈利能力(ROE、利润率)

投资建议:

  • 入场时机评估(立即入场还是等待确认)
  • 该股票的特定风险因素
  • 基于股息增长复利效应的上涨情景

输出

脚本会将两个文件保存到当前工作目录(或指定的 --output-dir):

文件描述
dividend_growth_pullback_results_YYYY-MM-DD.json包含所有指标的结构化数据(收益率、股息 CAGR、RSI、综合评分等)
dividend_growth_pullback_screening_YYYY-MM-DD.md易于阅读的报告,包含股票概况、入场时机和投资建议

报告结构(Markdown):

  • 执行摘要(候选数量、市场状况)
  • 按排名排列的股票概况,包含股息增长概况、技术择时和质量指标
  • 根据 RSI 区间给出的入场建议(极度超卖 / 强势超卖 / 早期回调)
  • 免责声明

筛选标准详情

阶段 1:基本面筛选(FMP API)

初步筛选:

  • 股息收益率 ≥ 1.5%(根据实际股息支付计算)
  • 市值 ≥ 20 亿美元(流动性和稳定性)
  • 交易所:NYSE、NASDAQ(排除 OTC / 粉单市场)

股息增长分析:

  • 3 年股息 CAGR ≥ 12%(6 年内股息翻倍)
  • 股息稳定性:过去 4 年内没有削减股息
  • 派息率 < 100%(可持续性检查)

财务状况:

  • 过去 3 年营收增长为正
  • 过去 3 年 EPS 增长为正
  • 负债权益比 < 2.0(杠杆水平可控)
  • 流动比率 > 1.0(流动性)
阶段 2:技术筛选(RSI 计算)

RSI 计算:

  • 使用每日收盘价计算 14 个周期的 RSI
  • 公式:RSI = 100 - (100 / (1 + RS))
    • RS = 14 个周期内的平均涨幅 / 平均跌幅
  • 数据来源:FMP 历史价格(过去 30 天)

RSI 筛选:

  • RSI ≤ 40(超卖 / 回调状态)
  • RSI 解读:
    • < 30:极度超卖(可能反转)
    • 30-40:早期回调(上升趋势中的调整)
    • 40:未超卖(排除)

阶段 3:排名和输出

综合评分(0-100):

  • 股息增长(40%):奖励较高的 CAGR 和稳定性
  • 财务质量(30%):ROE、利润率、债务水平
  • 技术形态(20%):RSI 越低,入场机会越好
  • 估值(10%):用于参考的市盈率和市净率(不作为筛选条件)

股票按综合评分排名。排名靠前的股票兼具出色的股息增长和有吸引力的技术入场点。

理解结果

解读 RSI 水平

RSI 25-30(极度超卖):

  • 通常表示恐慌性抛售或负面消息
  • 风险较高,但潜在回报也可能最高
  • 建议:等待 RSI 开始回升(稳定迹象)
  • 入场:分批买入,先建仓 50%,RSI >30 时加仓

RSI 30-35(强势超卖):

  • 强势上升趋势中的正常调整
  • 风险低于极度超卖
  • 建议:可立即开始建仓
  • 入场:可以建立完整仓位,并在下方 5-8% 处设置止损

RSI 35-40(早期回调):

  • 上升趋势中的轻微走弱
  • 进一步下跌风险最低
  • 建议:对高确信度股票采取保守入场策略
  • 入场:建立完整仓位,并在下方 3-5% 处设置紧密止损
股息增长复利示例

12% 股息复合年增长率(最低门槛):

  • 起始收益率:1.5%
  • 第 6 年:成本收益率为 2.96%(翻倍)
  • 第 12 年:成本收益率为 5.85%(4 倍)
  • 示例:Visa (V)、Mastercard (MA) 的历史表现

15% 股息复合年增长率(优秀):

  • 起始收益率:1.8%
  • 第 6 年:成本收益率为 4.08%(2.3 倍)
  • 第 12 年:成本收益率为 9.22%(5.1 倍)
  • 示例:Microsoft (MSFT) 2010-2020 年期间

20% 股息复合年增长率(卓越):

  • 起始收益率:2.0%
  • 第 6 年:成本收益率为 6.00%(3 倍)
  • 第 12 年:成本收益率为 18.0%(9 倍)
  • 示例:Apple (AAPL) 2012-2020 年期间

关键见解: 10 年以上的时间里,较低的起始收益率 + 高增长 > 较高的起始收益率 + 低增长。

故障排除

未找到结果

可能原因:

  1. 市场状况: 强劲的牛市中,超卖股票较少
  2. 筛选条件过严: 12% 的股息增长率很罕见(通常只有 5-10 只股票符合条件)
  3. RSI 阈值过低: 考虑提高至 RSI ≤45,以获取更多候选股票

解决方案:

  • 放宽 RSI 阈值:--rsi-max 45(回调早期阶段)
  • 降低股息增长率:--min-div-growth 10.0(仍属于优秀增长)
  • 降低最低收益率:--min-yield 1.0(纳入更多成长股)
达到 API 速率限制

FMP 免费层级限制:

  • 每天 250 次请求
  • 每只待分析股票需要 6 次 API 调用(quote、dividend、prices、income、balance、cashflow、metrics)
  • 仅使用 FMP 模式下,每天最多约 40 只股票

解决方案:

1. 使用 FINVIZ 两阶段方法(推荐)

python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --use-finviz
  • FINVIZ 预筛选:1 次 API 调用 → 10-50 个候选项(已按 RSI 筛选)
  • FMP 分析:6 次调用 × 10-50 只股票 = 60-300 次 FMP 调用
  • 优势: FINVIZ 的 RSI 筛选器大幅减少候选项数量,使调用量保持在 FMP 限额内

2. 限制仅使用 FMP 时的候选项数量

python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --max-candidates 40

3. 等待 24 小时,直至速率限制重置

  • FMP 在 UTC 午夜重置

4. 升级至 FMP 付费方案

  • Starter($14/月):每天 500 次请求
  • Professional($29/月):每天 1,000 次请求

注意: 对于此使用场景,FINVIZ Elite 订阅($40/月)+ FMP 免费层级比 FMP 付费方案更划算。

RSI 计算错误

问题:“RSI 计算所需的价格数据不足”

原因: 股票的交易历史不足 30 天(IPO 或不活跃)

解决方案: 脚本会自动跳过数据不足的股票。无需采取任何操作。

与其他技能结合使用

预筛选背景信息:

  1. 市场新闻分析师 → 识别板块轮动或市场回调
  2. 市场广度图表分析师 → 确认更广泛市场的超卖状况
  3. 经济日历获取器 → 查看即将公布的利率决议或宏观经济事件

筛选后分析:

  1. 技术分析师 → 分析符合条件的候选股票的个股图表
  2. 美股分析 → 买入前深入分析特定股票
  3. 回测专家 → 根据历史数据验证 RSI + 股息增长策略

工作流示例:

1. Market News Analyst: "Market pulled back 5% this week on Fed hawkish comments"
2. Breadth Chart Analyst: Confirms market oversold (S&P breadth weak)
3. Dividend Growth Pullback Screener: Finds 8 quality dividend growers with RSI <35
4. Technical Analyst: Analyze top 3 candidates for support levels and entry timing
5. Execute: Enter scaled positions with 6-12 month time horizon

资源

scripts/

screen_dividend_growth_rsi.py - 主筛选脚本

  • 集成 FMP API 获取基本面数据
  • 根据历史价格计算 14 周期 RSI
  • 应用多阶段筛选和排名
  • 输出 JSON 和 Markdown 报告
references/

rsi_oversold_strategy.md - RSI 指标说明

  • RSI 如何识别超卖情况
  • 极度超卖(<30)与早期回调(30-40)的区别
  • 将 RSI 与基本面分析相结合
  • 误报管理与风险缓释

dividend_growth_compounding.md - 股息增长的数学原理

  • 12% 以上股息 CAGR 随时间产生的复利效应
  • 收益率与增长之间的权衡
  • 历史案例(MSFT、V、MA、AAPL)
  • 股息增长型股票的优质特征

fmp_api_guide.md - API 使用文档

  • API 密钥的设置与管理
  • 筛选所用的端点文档
  • 速率限制策略
  • 错误处理与故障排查

免责声明: 此筛选工具仅供参考。过去的股息增长不保证未来表现。请在做出投资决策前进行全面的尽职调查。RSI 超卖情况不保证价格反转——股票可能在较长时间内持续处于超卖状态。

评论

支持 Markdown