问题描述
解决方案
在 PTrade 量化交易平台中,获取市场上所有公募 REITs(不动产投资信托基金)代码列表,可以使用内置的 get_reits_list 函数。
以下是具体的接口说明和代码示例。
PTrade 获取公募 REITs 基金代码列表
核心函数:get_reits_list
该函数用于获取指定日期沪深市场的所有公募 REITs 基金代码列表。
接口说明
get_reits_list(date=None)
- 参数:
date(str, 可选): 查询日期,格式为'YYYYMMDD'(如'20230403')。- 回测中:不传参默认取当前回测日期 (
context.blotter.current_dt)。 - 交易/研究中:不传参默认取当天日期。
- 回测中:不传参默认取当前回测日期 (
- 返回值:
- 返回一个包含 REITs 代码的列表 (
list),例如['180101.SZ', '508001.SS', ...]。
- 返回一个包含 REITs 代码的列表 (
- 适用范围:
- 研究、回测、交易模块均可用。
策略代码示例
以下代码展示了如何在策略初始化阶段获取并打印当前的公募 REITs 列表:
def initialize(context):
# 1. 获取当前回测日期或交易日的所有公募REITs代码
reits_list = get_reits_list()
# 打印列表内容
log.info("当前市场公募REITs代码列表: %s" % reits_list)
# 打印数量
log.info("公募REITs数量: %s" % len(reits_list))
# 2. (可选) 获取指定历史日期的REITs列表
# history_reits = get_reits_list(date='20220101')
# log.info("20220101时的REITs数量: %s" % len(history_reits))
def handle_data(context, data):
pass
常见问题 (Q&A)
Q: get_reits_list 返回的代码包含后缀吗?
A: 是的,返回的代码包含交易所后缀,例如上海市场的 .SS 和深圳市场的 .SZ。
Q: 如果我想获取这些 REITs 的行情数据怎么办?
A: 获取到代码列表后,您可以直接将该列表传入 get_history 或 get_price 函数中来获取开盘价、收盘价等行情数据。例如:get_price(reits_list, count=10, frequency='1d')。
Q: 这个函数能获取到已经退市的 REITs 吗?
A: 如果您传入的 date 是历史日期,且在该日期该 REITs 仍在上市交易,则可以获取到。如果不传参(默认当天),则只返回当前上市交易的品种。