| name | a-share-dividend-calendar |
| description | A股分红日历/除权除息追踪。当用户说"分红日历"、"除权除息"、"什么时候分红"、"登记日"、"除权日"、"dividend calendar"、"最近谁分红"、"XX什么时候除权"、"股权登记日"、"红利发放日"时触发。追踪A股上市公司分红方案公告、股权登记日、除权除息日、红利发放日,帮助投资者合理安排持仓和打新。支持研报风格(formal)和日历视图风格(brief)。 |
数据源
SCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts"
python -c "import akshare as ak; df = ak.stock_fhps_em(date='YYYY'); print(df.to_string())"
python "$SCRIPTS/cn_stock_data.py" quote --code [CODE]
补充 web 搜索:
- 最新分红实施公告(登记日、除权日、发放日)
- 近期除权除息安排(按日期范围)
- 个股分红方案进展(预案→股东大会→实施)
Workflow (4 steps):
Step 1: 获取分红数据
根据用户意图确定查询范围:
- 近期日历:"最近谁分红" →
ak.stock_fhps_em(date='当年') 获取当年全部分红方案,筛选近期有除权除息安排的
- 个股查询:"XX什么时候除权" → 获取指定股票的分红方案进展
- 日期范围:"本周/本月除权除息" → 按日期范围筛选
stock_fhps_em 返回字段:
| 字段 | 说明 |
|---|
| 代码 | 股票代码 |
| 名称 | 股票简称 |
| 每股收益 | EPS |
| 每股派息(税前) | 每10股派息金额 |
| 送股 | 每10股送股数 |
| 转增 | 每10股转增数 |
| 股权登记日 | 登记日(当日收盘持有即可享有) |
| 除权除息日 | 除权日(当日买入不再享有) |
| 红利发放日 | 现金到账日 |
| 公告日期 | 实施公告日 |
| 方案进度 | 预案/股东大会/实施 |
Step 2: 日历视图构建
按时间线排列分红事件,展示关键日期节点:
📅 分红日历 — [日期范围]
[日期] 股权登记日
├─ 600519 贵州茅台 | 10派259.11元 | 股息率2.1%
└─ 000858 五粮液 | 10派55.00元 | 股息率3.5%
[日期] 除权除息日
├─ 601318 中国平安 | 10派9.20元 | 股息率4.2%
└─ ...
[日期] 红利发放日
└─ 600036 招商银行 | 10派18.22元 | 到账日
分类标注方案进度:
- 🟢 已实施(有明确除权日)
- 🟡 股东大会通过(待实施)
- ⚪ 董事会预案(待股东大会)
Step 3: 股息率计算
每股派息 = 每10股派息 / 10
税前股息率 = 每股派息 / 当前股价 × 100%
税后股息率(按持股期限):
- 持股 > 1年:免税,税后股息率 = 税前股息率
- 1月 < 持股 ≤ 1年:税率10%,税后股息率 = 税前 × 90%
- 持股 ≤ 1月:税率20%,税后股息率 = 税前 × 80%
除权参考价 = (前收盘价 - 每股派息) / (1 + 送转比例)
如有送转:
送转比例 = (送股数 + 转增数) / 10
除权参考价 = (前收盘价 - 每股派息) / (1 + 送转比例)
Step 4: 输出
风格说明
| 维度 | formal(研报风格) | brief(日历视图) |
|---|
| 篇幅 | 2-4 页 | 1 页日历表 |
| 展示形式 | 表格+分析 | 时间线日历 |
| 股息率 | 税前/税后分别计算 | 仅显示税前 |
| 送转分析 | 区分送转与分红,风险提示 | 简要标注 |
| 除权影响 | 除权价计算+历史填权分析 | 除权参考价 |
| 持仓建议 | 红利税+登记日操作建议 | 关键日期提醒 |
| 免责声明 | 需要 | 不需要 |
默认风格:brief(日历视图)
关键规则
- 登记日当天买入仍可享有分红 — 除权日当天买入则不享有,这是投资者最关心的时间点
- 注意红利税差异化政策 — 持股超1年免税,短期持有最高20%税率,影响实际收益
- 除权后价格自动调整 — 除权日开盘价会自动下调,不是"跌了",是价格机制调整
- 送转不等于分红 — 送股/转增只是股本拆分,不涉及现金流出,不要与现金分红混为一谈
- 关注方案进度 — 预案阶段可能变更,只有实施公告后的日期才是确定的
- 高送转风险提示 — 高送转常被用于配合减持,监管已加强审查,需警惕炒作风险
使用示例
示例 1: 基本使用
result = run_skill({
"param1": "value1",
"param2": "value2"
})
示例 2: 命令行使用
python scripts/run_skill.py --input data.json