dividend skills: A股高息股自动筛文档 (同花顺口径/东方财富批量/行业分散)

This commit is contained in:
2026-09-25 01:25:26 +08:00
parent f46abb8ca3
commit 56b4d9cf62
10 changed files with 1004 additions and 25 deletions
+13 -11
View File
@@ -1,32 +1,34 @@
---
name: dividend-investing
description: "Dividend stock research, analysis, and ex-dividend alerting across A/HK/US markets. Covers: dividend history analysis (yield, growth, payout ratio), pre-ex-dividend day alerts via cron job, yield-vs-financing-cost arbitrage calculations, and record date tracking. Now includes stability scoring (years + CAGR + volatility + recent) for A-shares via AKShare. Push output uses horizontal markdown tables (4-8 cols, user 2026-07-29 preference) with 次/年 + 连续(年) + vs MA50 enrichment. Not for short-term trading entries — this is the dividend-side analysis mindset."
version: 1.2.0
description: "Dividend stock research, analysis, and ex-dividend alerting across A/HK/US markets. Includes stability scoring (years + CAGR + volatility + recent) for A-shares via AKShare. Push output uses horizontal markdown tables (4-8 cols, user 2026-07-29 preference) with 次/年 + 连续(年) + vs MA50 enrichment. 🧙 2026-08-23 cn_dividend_buy_timing 用神奇九转 (TD9) 增强入场判别. 🔄 2026-08-26 加美股「频率(估)」列 (ann/rate 反推 W/BW/M/BM/Q/S/A, 替代原「连续(估年)」避免把 BDC 周派推成 249 年连续派). 🔇 2026-09-01 silent on no-data (cron no_agent + 空 stdout = 不推 QQ). 📝 2026-09-02 列名重命名 '年化' → '估算年派', '连续(估年)' 删除, ann=0 → ⚠️数据缺失. 📉 2026-09-14 股息率过滤 MIN_YIELD=5.0 — 低于5%的直接丢弃(三市场统一), 全低于5%则整条 silent 不推. Not for short-term trading entries — dividend-side analysis mindset, with TD9 as top-of-trend warning only."
version: 1.5.0
author: Hermes Agent
license: MIT
platforms: [linux, macos]
metadata:
hermes:
tags: [trading, dividends, stocks, a-shares, hk-stocks, us-stocks, cron, dividend-stability]
related_skills: [tonghuashun, longbridge-python-sdk, stock-analysis]
tags: [trading, dividends, stocks, a-shares, hk-stocks, us-stocks, cron, dividend-stability, td9, bdc-reit-frequency, silent-on-success]
related_skills: [tonghuashun, longbridge-python-sdk, stock-analysis, intraday-trading]
scripts:
- "scripts/dividend_alert.py: 'Daily dividend scan. Cron jobs (id `789a7710b1cf` A股+港股, `366934c1474c` 美股) call `scripts/dividend_alert_cn_hk.sh` and `scripts/dividend_alert_us.sh` (proxychains4 + 过滤 [proxychains] 日志). Contains score_dividend_stability() with _stability_cache per symbol per run. Edit here in skill repo to update.'"
- "scripts/dividend_alert.py: 'Daily dividend scan. Cron jobs (id `789a7710b1cf` A股+港股, `366934c1474c` 美股) call `scripts/dividend_alert_cn_hk.sh` and `scripts/dividend_alert_us.sh` (proxychains4 + 过滤 [proxychains] 日志 + **过滤 Longport SDK QuoteContext init 行情权限表格** (2026-09-07 加)。 Contains score_dividend_stability() with _stability_cache per symbol per run. 2026-08-26 加美股「频率(估)」列 (反推 ann/rate → W/BW/M/BM/Q/S/A), 替代原「连续(估年)」作为主信号. Edit here in skill repo to update.'"
- "scripts/dividend_alert.py is a duplicate under ~/.hermes/scripts/ (cron path). Keep both in sync — cron uses absolute path /home/openclaw/.hermes/scripts/dividend_alert.py (rule: skill scripts under skills/, cron scripts under ~/.hermes/scripts/)."
- "scripts/dividend_highfreq.py (new 2026-08-26): '长桥MCP动态扫描美股高频派息 (BDC/REIT/周/月派 ETF). 数据源 mcp_longport_screener_search + dividend. 替代之前的白名单方案. SQLite库 ~/.hermes/trading/dividend_highfreq.db. --scan每日跑, --alert推送. **替代 Nasdaq API 漏 QQQY/RDTE 问题** (addendum in references/us-bdc-reit-frequency-classification.md). Path: ~/.hermes/scripts/dividend_highfreq.py (cron wrapper).'"
- "scripts/dividend_alert_cn_hk.sh / _us.sh 必须 grep -v 过滤三类噪声: (1) `^\\[proxychains\\]` 代理日志; (2) `^\\+\\-\\-\\-.*\\+$` longport SDK QuoteContext init 输出的行情权限表格边框; (3) `^\\|\\-\\-\\-` 表格中间分隔行; (4) `^\\| (US|HK|CN|USOption) +\\| +[A-Za-z]` 行情权限表格的内容行 (LV1/LV2/Real-time Quotes/Open API)。不滤掉这些会塞满推送开头,真实除权表被挤到底部。"
references:
- dividend-yield-rate-sort: "分红扫描按股息率% 倒序(用户偏好 2026-07-13)"
- fill-gap-timing: "填权时间线数据 + 抓取分析"
- dividend-yield-arbitrage: "股息率 vs 融资成本套息"
- longport-sdk-verbose-output-filter: "Longport SDK QuoteContext() init 表格噪声过滤 (2026-09-07 加)。cron 脚本 stdout=推送内容,SDK 构造时 print 行情权限表格无法关闭,必须 grep -v 过滤 +---+---+ / |---|---| / | (US|HK|CN) | 三类行。适用所有 longport + cron 推送组合。"
- cron-schedule-and-push-timing: "cron schedule / Beijing-time push timing (why 11:00 BJT)"
- dividend-stability-score: "5 维评分 (派息年数/CAGR/波动/最近/连续) 综合稳定性 0-100 + 5 星等级; 数据源 akshare stock_history_dividend_detail(indicator='分红'); 缓存避免重复查询; 2026-07-22 新增"
- cn-dividend-buy-timing-pool: "Manual HIGH_DIVIDEND_POOL list (17 A-share blue chips) + 综合评分公式 `score = annual_yield + stability_bonus` where stability_bonus = (stability - 2) * 2.0 (stab=3 → +2%, stab=2 → 0, stab=1 → -2%). 用户 2026-07-29 反馈纯 yield 排序把 招商银行(5%)/伊利股份(4%)/长江电力(4.5%) 挤出去, 加 stability bonus 后这 3 票稳定进 top 15。脚本: ~/.hermes/scripts/cn_dividend_buy_timing.py (cron 任务待接入)。脚本里 stability 字段: 3=连续5年+稳定, 2=连续3年, 1=波动。"
- cn-dividend-buy-timing-pool: "Manual HIGH_DIVIDEND_POOL list (17 A-share blue chips) + 综合评分公式 `score = annual_yield + stability_bonus` where stability_bonus = (stability - 2) * 2.0 (stab=3 → +2%, stab=2 → 0, stab=1 → -2%)。用户 2026-07-29 反馈纯 yield 排序把 招商银行(5%)/伊利股份(4%)/长江电力(4.5%) 挤出去, 加 stability bonus 后这 3 票稳定进 top 15。脚本: ~/.hermes/scripts/cn_dividend_buy_timing.py (cron 任务待接入)。脚本里 stability 字段: 3=连续5年+稳定, 2=连续3年, 1=波动。"
- akshare-dividend-history-and-push-enrichment: "AKShare 两套历史股息 API (A 股 stock_history_dividend_detail + 港股 stock_hk_dividend_payout_em) + push 字段扩展模式 (次/年 + 连续(年) + vs MA50) + ⚠️ ma_off double-*100 bug 教训 + 数据累积+循环外拼表模式 + 名称行单独存在。2026-07-29 实战 + 2026-07-30 加 ma_off bug fix。适用所有 dividend_alert 类推送。"
- cn-dividend-buy-timing-td9: "🧙 cn_dividend_buy_timing.py + scan_cn.py + dca_scanner.py 用九转 (TD9) 增强入场判别。**核心规则**: TD9 是**信号增强层**不替代 MA50/支撑/趋势 — 卖出完成 → 🔴不入场升级为 🟡等回撤 ★★☆ + 用九转止损价 (第9根收盘);买入计数 7+/卖出计数 7+ 在 🟢今天买 理由里加提示;共用 lib `~/.hermes/scripts/lib/td9.py` (4 个脚本共享,2026-08-23 抽库)。详见 `~/.hermes/skills/trading/intraday-trading/references/td9-td-sequential.md`。"
- td9-in-high-dividend-pitfall: "⚠️ 高股息票的 TD9 解读陷阱: 银行/煤炭等高息票 长期横盘或温和上涨,九转**卖出计数**经常达 7+ 但很少完成 — 此时九转是'涨势末期警告'而非'即将见顶',不必升级入场判别。**只有 `done=True` (count>=9) 才升级 🔴→🟡**;未完成的 7-8 计数只加理由文字提示,不改入场动作。"
- us-bdc-reit-frequency-classification: "🔄 **美股派息频率反推 (2026-08-26 新增)**: ann/rate 反推 W/BW/M/BM/Q/S/A 频率档位, 替代原「连续(估年)」作为主信号 (公式 bug 把 BDC 周派 SATA 推成「连续 249 年」误导)。W/BW/M/BM 是 BDC/REIT 高息陷阱常见标签。详见 `references/us-bdc-reit-frequency-classification.md`。"
- min-yield-5pct-filter: "📉 **股息率过滤 (2026-09-14 新增)**: MIN_YIELD=5.0 常量, 三市场统一股息率 <5% 丢弃; 全部低于 5% 整条 silent 不推。详见 `references/min-yield-5pct-filter-2026-09-14.md`。"
references:
- dividend-yield-rate-sort: "分红扫描按股息率% 倒序(用户偏好 2026-07-13)"
- fill-gap-timing: "填权时间线数据 + 抓取分析"
- dividend-yield-arbitrage: "股息率 vs 融资成本套息"
- cron-schedule-and-push-timing: "cron schedule / Beijing-time push timing (why 11:00 BJT)"
- dividend-stability-score: "5 维评分 (派息年数/CAGR/波动/最近/连续) 综合稳定性 0-100 + 5 星等级; 数据源 akshare stock_history_dividend_detail(indicator='分红'); 缓存避免重复查询; 2026-07-22 新增"
requires:
- python3 + akshare (pip install akshare)
- python3 + requests (stdlib)