dividend skills: A股高息股自动筛文档 (同花顺口径/东方财富批量/行业分散)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user