3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化平台中,调用 get_stock_exrights 函数获取股票除权除息信息时,date 参数对传入的格式有严格的要求。如果您在调用时遇到时而正常、时而报错的情况,通常是因为传入了不支持的日期格式。
date 参数支持的格式根据 ptrade API 文档,date 参数支持以下三种格式:
'YYYYMMDD',例如 '20180228'。注意:不支持带横杠的格式如 '2018-02-28'。YYYYMMDD,例如 20180228。datetime.date(2018, 2, 28)。此外,如果不传入 date 参数(即默认值为 None),函数将返回该股票历史上所有的除权除息信息。
如果您传入的参数报错,请检查是否属于以下情况:
'2018-02-28' 或 '2018/02/28'。datetime.datetime 对象(包含时间信息),而不是 datetime.date 对象。import datetime
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 方式一:不传 date,获取所有历史除权除息信息
all_exrights = get_stock_exrights(g.security)
log.info('所有除权除息信息:\n%s' % all_exrights)
# 方式二:传入字符串格式 'YYYYMMDD'
exrights_str = get_stock_exrights(g.security, date='20200605')
log.info('字符串格式查询:\n%s' % exrights_str)
# 方式三:传入整数格式 YYYYMMDD
exrights_int = get_stock_exrights(g.security, date=20200605)
log.info('整数格式查询:\n%s' % exrights_int)
# 方式四:传入 datetime.date 对象
query_date = datetime.date(2020, 6, 5)
exrights_date = get_stock_exrights(g.security, date=query_date)
log.info('date对象格式查询:\n%s' % exrights_date)
总结:为了保证策略的稳定性,建议统一使用 'YYYYMMDD' 的字符串格式或 datetime.date 对象来传递日期参数。