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
@@ -12,6 +12,38 @@ A 股 和 港股 用**不同的接口**(2026-07-29 验证可用):
**注意**: 美股 Nasdaq API (`api.nasdaq.com/api/calendar/dividends?date=YYYY-MM-DD`) **只返回当天** — 没有历史。
要美股历史需 `stock_us_dividend_em` (akshare) 或 yfinance。
### 1.1 美股"连续(估年)"近似列 (2026-07-30 实战)
**问题**: 美股没有可靠的**历史派息年数 API**(Nasdaq 当天, yfinance 国内 VPS 不稳定)。
用户 cron `366934c1474c` 美股推送缺"派息稳定"列。
**近似方案**: `连续(估年) = 年化 / 每股派` —— 当年总派息 ÷ 每股单次派息 ≈ 派息频率(可能 4=季度派, 12=月派, 24=双周派)。
**坑**: 这是**派息频率**, **不是**真实连续年数!
- STRC 月派 ×12 = 24 (24 表示一年 24 次派息, 不是 24 年连续)
- 季度派票显示 4.0 (合理)
- 半年派票显示 2.0 (合理)
**实现** (`dividend_alert.py` fmt 函数):
```python
cont_years = ann / d if d > 0 else 0 # ann=年化派息总额, d=每股派
if cont_years >= 10:
cont_str = f'🔥{cont_years:.0f}' # 可能假阳性(月派)
elif cont_years >= 5:
cont_str = f'⚡{cont_years:.0f}'
elif cont_years >= 1:
cont_str = f'{cont_years:.1f}'
else:
cont_str = '-'
```
**正确做法**: 推送时**显式标注估算** + 提示月派票会偏高:
```
⚠️ 连续(估年) = 年化 / 每股派 (月派票会偏高, 仅作参考; 真连续年数需 yfinance API 不稳定)
```
**未来**: 真要做精确,装 yfinance + `yf.Ticker(code).dividends` 拉历史, 算真实连续年数 (2026-07-30 国内 VPS 装 yfinance 失败, 暂用近似)。
### 1.1 helper 实现
```python