每日 A 股收盘后,对高股息标的进行五因子综合评分,生成击球意愿排名,推送至华为负一屏。
text
击球意愿 = 股息率(30%) + PE低估(15%) + PB低估(15%) + ROE(20%) + 安全性(20%)
各因子 0-100 分:
因子权重计算规则股息率30%甜蜜区 3-6% 线性映射;6-8% 递减;>8% 封顶 80PE 低估15%100 - PE百分位(越低越便宜)PB 低估15%100 - PB百分位(越低越便宜)ROE20%线性映射,25% = 100分安全性20%非银行:分红覆盖率(FCFF/总分红);银行:派息率(分红/EPS)
非银行(分红覆盖率 = FCFF / 总分红):
银行(派息率 = 分红 / EPS):
70% → 20 分
数据来源接口实时行情新浪财经hq.sinajs.cnPE/PB 百分位小乐财报leetab.com/stock/{code}/pe|pbROE/EPS/FCFF东方财富RPT_F10_FINANCE_MAINFINADATA (年报)除息日东方财富RPT_SHAREBONUS_DET交易日判断chinese_calendaris_workday()
股票行业代码年度分红/股类型长江电力电力sh6009001.00非银行伊利股份食品饮料sh6008871.38非银行格力电器家电sz0006513.00非银行中国移动通信sh6009414.7037非银行建设银行银行sh6019390.3887银行
today-task 技能推送至华为负一屏agentTurn)bash
# 正常运行(推送至负一屏)
python scripts/daily_batting.py
# 仅测试(不推送)
python scripts/daily_batting.py --dry-run
编辑 scripts/daily_batting.py 中的 STOCKS 列表:
python
{
"code": "sh601088", # 新浪代码
"name": "中国神华", # 名称
"api_code": "601088", # 东方财富代码
"annual_div": 5.20, # 年度分红合计(中期+末期)
"leetab_code": "sh601088", # 小乐财报代码
"ex_div_date": None, # 除息日(可选)
"is_bank": False, # 是否银行股
"total_shares_billion": 198.7, # 总股本(亿股),用于算分红覆盖率
}
同时在 DEFAULT_PE_PB 中添加默认 PE/PB 分位数据。
优先选择:
scripts/daily_batting.py — 主脚本today-task 技能 — 负一屏推送b5e8deb5-0c20-4998-9c70-d31a80f09aeb