mcpField
D
dividend-growth-pullback-screener

dividend-growth-pullback-screener

github.com/tradermonty其他3.4k3.4k 次安装2 天前更新
代码仓库

关于 dividend-growth-pullback-screener

用于长期股息增长投资者的股票筛选技能,结合股息增长、财务质量与 RSI 回调条件评估候选股,并生成排名及分析报告。

主要功能

  1. 01筛选股息增长率与财务质量
  2. 02按 RSI 回调条件筛选
  3. 03支持 FINVIZ 预筛与 FMP 分析
  4. 04生成 JSON 数据和 Markdown 报告
  5. 05提供排名、风险与入场分析

适用场景

  1. 01寻找股息增长较快且近期回调的股票
  2. 02评估长期投资候选股的股息可持续性
  3. 03在市场回落时筛查潜在入场机会

安装

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

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill dividend-growth-pullback-screener

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

包含的文件

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

requirements.txt
references/
dividend_growth_compounding.md
fmp_api_guide.md
rsi_oversold_strategy.md
scripts/
fmp_client.py
screen_dividend_growth_rsi.py
scripts/tests/
test_fmp_stable.py
test_screen_dividend_growth_rsi.py
test_screening_flow.py
test_shared_fmp_transport.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 库的 Python 3.9+。

筛选工作流

步骤 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% 以上、EPS 增长 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 和稳定性
  • 支付率和可持续性评估,包含 fcf_status、fcf_coverage_status、sustainability_basis 以及每只股票对应的 sustainability_note
  • 非 REIT 股票的可持续性要求:盈利支付率低于 80%,且报告的 freeCashFlow 严格高于已支付股息(FCF 支付率低于 100%)。负值、零值、不足值以及缺失或无效的 FCF 均无法确认可持续性。缺失的 FCF 保持缺失;不会根据盈利或指标推断。
  • REIT 必须明确标记为 isReit: true 或被识别为 REIT 行业;仅属于 Real Estate 板块并不足以确认。已识别的 REIT 要求简化 FFO(净收入 + 折旧/摊销)的支付率低于 80%,且必须同时提供这两项输入。对于 REIT,FCF 状态仅供参考;此代理指标不包括房产出售调整。
  • 指标支付率回退值仅用于显示。判断使用未四舍五入的比率;显示的比率可能四舍五入到阈值。覆盖不足并不意味着未来一定会削减股息。

技术择时:

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

质量指标:

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

投资建议:

  • 入场时机评估(立即入场或等待确认)
  • 个股特有的风险因素
  • 基于股息增长复利的上涨情景

输出

脚本会将两个文件保存到其配置的输出位置。在当前打包版本中,CLI 可能不接受 --output-dir;如果该标志不可用,请在目标工作目录中运行脚本,或在运行后移动生成的文件。某些构建版本即使从其他目录调用,也会将文件写入仓库的 logs/ 目录,因此请在读取文件前核对打印出的路径。

文件说明
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%(根据实际股息支付计算)
  • 市值 ≥ $2 billion(流动性和稳定性)
  • 交易所:NYSE、NASDAQ(排除 OTC/粉单市场)

股息增长分析:

  • 3 年股息 CAGR ≥ 12%(6 年内股息翻倍)
  • 股息稳定性:过去 4 年没有削减
  • 可持续性:非 REIT 股票的盈利支付率 <80% 且 FCF 支付率 <100%;已识别 REIT 的简化 FFO 支付率 <80%

财务健康状况:

  • 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%):P/E 和 P/B 仅供参考(不作为筛选条件)

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

理解结果

解读 RSI 水平

RSI 25-30(极度超卖):

  • 通常表示恐慌性抛售或负面消息
  • 风险较高,但潜在回报也可能最高
  • 建议:等待 RSI 回升(表明走势趋于稳定)
  • 入场:先买入 50% 的仓位,RSI >30 后再加仓

RSI 30-35(严重超卖):

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

RSI 35-40(初期回调):

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

12% 股息 CAGR(最低门槛):

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

15% 股息 CAGR(出色):

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

20% 股息 CAGR(卓越):

  • 初始收益率: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 次请求
  • 每只分析的股票需要调用 API 6 次(报价、股息、价格、损益表、资产负债表、现金流、指标)
  • 仅使用 FMP 模式时,每天最多可分析约 40 只股票

解决方案:

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

python3 skills/dividend-growth-pullback-screener/scripts/screen_dividend_growth_rsi.py --use-finviz
  • FINVIZ 预筛选:调用 API 1 次 → 获得 10-50 只候选股票(已按 RSI 筛选)
  • FMP 分析:10-50 只股票 × 每只调用 6 次 = 调用 FMP 60-300 次
  • 优势: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 - 股息增长数学原理

  • 股息 CAGR 达到 12%+ 的长期影响
  • 股息率与增长率之间的权衡
  • 历史案例(MSFT、V、MA、AAPL)
  • 股息增长型股票的质量特征

fmp_api_guide.md - API 使用文档

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

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

共享 FMP 客户端

FMP 数据访问使用随附生成的 scripts/fmp_client.py。现有的 CLI 密钥/环境变量优先级、财务计算方式和成功时的输出格式均保持不变。迁移后的路径仅使用稳定端点;稳定请求遭拒或失败时,不会回退到已停用的 v3 URL。共享客户端会屏蔽原始密钥及 URL 编码密钥的回显、对格式错误的 JSON 重试一次,并在遇到 429 时等待 60 秒后重试一次;若再次触发速率限制,则停止。若使用 FINVIZ,则仍使用独立客户端。

评论

支持 Markdown