3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)等严谨的量化交易平台中,关于**股息率 TTM(最近十二个月股息率)**的计算和更新机制,通常遵循“基于确定性事实”的原则。针对您的问题,具体解答如下:
股息率 TTM 的计算通常是基于正式的“实施公告”或“除权除息日”,而不是基于“董事会预案”或“股东大会决议”。
根据 JoinQuant 的 API 文档和数据处理规范:
get_fundamentals)严格遵循时间戳。您在某一天查询到的数据,必定是该日期之前(含当日)已经正式披露且生效的数据。set_option('use_real_price', True)),当股票发生分红时,系统会在**分红当天(除权除息日)**自动将扣税后的分红现金发放到您的账户中。这也侧面印证了平台是基于实际除权除息日来处理分红逻辑的。on_event 回调函数,其中的 DividendsEvent(分红送股事件)也是在持仓标的实际发生分红送股时触发的。如果您需要查询具体的除权除息日或分红金额,可以使用 JoinQuant 的 finance.run_query 接口查询相关的财务/公司行动数据表(具体表名请参考 JoinQuant 数据字典中的“公司分红”相关表)。
示例代码:在策略中处理分红事件
# 导入聚宽函数库
import jqdata
def initialize(context):
# 开启动态复权模式(真实价格),确保分红能真实反映到账户现金中
set_option('use_real_price', True)
g.security = '000001.XSHE'
order_target(g.security, 1000)
# 监听分红送股事件
def on_event(context, event):
# 判断是否为分红送股事件
if isinstance(event, DividendsEvent):
log.info(f"标的 {event.security} 发生分红送股!")
# 获取分红详情
for dividend in event.dividends:
log.info(f"除权除息日: {dividend['date']}")
if 'bonus_pre_tax' in dividend:
log.info(f"税前分红: {dividend['bonus_pre_tax']}")
计算股息率 TTM 时,不会因为董事会预案或股东大会预案的发布而频繁更新。它依赖于除权除息日(或正式实施公告)这一确定性事件。这样设计是为了确保量化回测的数据严谨性,避免因预案变更而导致的历史数据重绘或未来函数问题。