【Python量化实战 #08】Python筛选高股息股票:分红数据与股息率计算
做红利策略,第一步通常是「拿到可靠的分红记录,再算股息率」。本文是「Python量化实战」第 8 篇,使用 company_dividends 拉取近年分红,并给出股息率粗算骨架。
Playground:https://www.mairuiapi.com/playground
文档:https://www.mairuiapi.com/hsdata
环境准备
pip install mairui pandas
SDK 文档:https://github.com/MaiRuiApi/mairui
拉取分红数据
import os
import pandas as pd
from mairui import Client
licence = os.environ.get("MAIRUI_LICENCE", "your_licence")
code = "600519.SH"
with Client(licence=licence) as api:
divs = api.company_dividends(code)
div_df = pd.DataFrame(divs or [])
print(div_df.columns.tolist())
print(div_df.tail())
股息率粗算骨架
# 注意:字段名、单位(元/股、送转)以实际返回为准
# 下面仅演示结构,请按 columns 映射后再计算
def rough_dividend_yield(cash_div_per_share: float, price: float) -> float:
if price <= 0:
return float("nan")
return cash_div_per_share / price
# 示例:用实时或最新收盘价(自行选择接口)
with Client(licence=licence) as api:
# 历史日线取最新收盘,字段名请对齐
bars = api.stock_history(code, "d", "n", lt=5)
bar_df = pd.DataFrame(bars or [])
print(bar_df.tail(1))
print("请将现金分红与现价代入 rough_dividend_yield")
连续分红筛选思路
- 按年度聚合现金分红次数 / 金额
- 要求近 N 年每年都有现金分红
- 再叠加 PE/PB、ROE(可用财报接口,见第 5 篇)
避坑
- 送转与现金分红不要混在一个口径里。
- 除权除息日与「能否按当日价简单相除」要分清。
- 非投资建议;回测请标注区间与数据截止日期。
下一篇:指数与 ETF 数据。Playground:https://www.mairuiapi.com/playground
麦蕊智数 · Python量化实战 #08



