3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在量化交易中,准确的价格复权对于技术指标计算和回测至关重要。QMT 平台提供了 ContextInfo.get_divid_factors 接口,允许投资者直接获取指定股票的历史除权除息日与复权因子的映射字典。通过该接口,您可以轻松实现自定义的复权逻辑。
ContextInfo.get_divid_factors(stock_code)stock_code:字符串类型,必须是 股票代码.市场代码 形式,例如 '600000.SH'。dict),其键(Key)为除权除息日的时间戳(毫秒),值(Value)为对应的复权因子。以下是一个完整的 QMT 策略示例,展示了如何获取浦发银行(600000.SH)的历史除权除息数据,并将其时间戳转换为可读的日期格式:
#coding:gbk
def init(ContextInfo):
# 设定基础股票池
ContextInfo.set_universe(['600000.SH'])
def handlebar(ContextInfo):
# 仅在最后一根 K 线上执行,避免历史 K 线重复打印
if not ContextInfo.is_last_bar():
return
stock = '600000.SH'
# 获取除权除息日和复权因子映射字典
divid_factors = ContextInfo.get_divid_factors(stock)
print(f"--- 股票 {stock} 历史除权除息数据 ---")
if divid_factors:
for timetag, factor in divid_factors.items():
# 将毫秒级时间戳转换为可读的日期格式
date_str = timetag_to_datetime(timetag, '%Y-%m-%d')
print(f"除权除息日: {date_str} | 复权因子: {factor}")
else:
print("未获取到除权除息数据,请检查本地历史数据是否补充完整。")
timetag_to_datetime(timetag, format) 函数转换为标准日期格式(如 '%Y-%m-%d'),以便于阅读和后续计算。