3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,基础设施公募 REITs(不动产投资信托基金)作为一类创新金融品种,为投资者提供了资产资产证券化与稳定现金流投资的新选择。进行 REITs 策略回测或历史数据研究时,获取历史特定日期的 REITs 成分股列表是避免未来函数、确保回测准确性的关键步骤。
get_reits_list 是 PTrade 平台提供的基础信息获取接口,用于获取沪深市场上市的所有公募 REITs 基金代码列表。
get_reits_list(date=None)
YYYYmmdd(例如 '20230403')。
date 参数,默认取当前回测周期的历史日期(即 context.blotter.current_dt),该值会随回测进度动态变化。date 参数,默认取当前系统日期。返回一个由 REITs 基金代码(带市场尾缀)组成的字符串列表(list[str]),例如:['180101.SZ', '180102.SZ', '508099.SS']。
在研究环境或 Notebook 中,可以通过显式传入 date 参数查询任意历史节点的 REITs 数量与代码。`
# 获取 2023 年 4 月 3 日市场上的公募 REITs 列表
reits_20230403 = get_reits_list('20230403')
print(f"20230403 共有 REITs 数量: {len(reits_20230403)}")
print(reits_20230403)
在策略回测中,既可以在 handle_data 中不传 date 动态获取当天的 REITs,也可以显式指定历史日期进行对比分析。
def initialize(context):
# 设置基础标的
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 1. 不传 date 参数:自动获取当前回测日期的 REITs 列表
current_reits = get_reits_list()
log.info('%s 当前交易日 REITs 数量为: %s' % (context.blotter.current_dt, len(current_reits)))
# 2. 显式指定 date 参数:获取历史固定日期 (20230403) 的 REITs 列表
historical_reits = get_reits_list('20230403')
log.info('20230403 历史固定节点 REITs 数量为: %s' % len(historical_reits))
date 参数仅支持标准的 YYYYmmdd 8位数字字符串格式,切勿使用 YYYY-mm-dd 或 datetime 对象。get_price 或 get_history 批量提取历史 K 线数据,进行动量、溢价率等因子计算。