🚀 AI 一键生成 ptrade 策略代码
立即体验

PTrade 创新品种选股:如何通过 get_reits_list 获取历史特定日期的 REITs 列表?

ptrade | 发布时间: 2026/7/28
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: PTrade 创新品种选股:利用 get_reits_list 获取历史特定日期的 REITs 列表

Question: 如何在 PTrade 回测和研究模块中通过 get_reits_list 指定 date 参数获取历史公募 REITs 列表?

解决方案

PTrade 创新品种选股:利用 get_reits_list 获取历史特定日期的 REITs 列表

在 PTrade 量化交易平台中,基础设施公募 REITs(不动产投资信托基金)作为一类创新金融品种,为投资者提供了资产资产证券化与稳定现金流投资的新选择。进行 REITs 策略回测或历史数据研究时,获取历史特定日期的 REITs 成分股列表是避免未来函数、确保回测准确性的关键步骤。


一、get_reits_list 接口简介

get_reits_list 是 PTrade 平台提供的基础信息获取接口,用于获取沪深市场上市的所有公募 REITs 基金代码列表。

接口参数说明

get_reits_list(date=None)
  • date (str): 指定查询日期,格式为 YYYYmmdd(例如 '20230403')。
    • 回测模块: 若不传 date 参数,默认取当前回测周期的历史日期(即 context.blotter.current_dt),该值会随回测进度动态变化。
    • 研究/交易模块: 若不传 date 参数,默认取当前系统日期。

返回值

返回一个由 REITs 基金代码(带市场尾缀)组成的字符串列表(list[str]),例如:['180101.SZ', '180102.SZ', '508099.SS']


二、代码实现示例

1. 研究模块示例:查询历史指定日期的 REITs 列表

在研究环境或 Notebook 中,可以通过显式传入 date 参数查询任意历史节点的 REITs 数量与代码。`

# 获取 2023 年 4 月 3 日市场上的公募 REITs 列表
reits_20230403 = get_reits_list('20230403')
print(f"20230403 共有 REITs 数量: {len(reits_20230403)}")
print(reits_20230403)

2. 回测/交易模块示例:动态与定点获取 REITs 列表

在策略回测中,既可以在 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))

三、注意事项与 SEO 最佳实践

  1. 日期格式要求: date 参数仅支持标准的 YYYYmmdd 8位数字字符串格式,切勿使用 YYYY-mm-dddatetime 对象。
  2. 规避未来函数: 在编写量化选股逻辑时,确保回测阶段获取的是当前历史节点及之前的 REITs 列表,避免使用未来日期的代码池导致回测失真。
  3. 行情获取配合: 获取 REITs 代码列表后,可结合 get_priceget_history 批量提取历史 K 线数据,进行动量、溢价率等因子计算。