🚀 AI 一键生成 ptrade 策略代码

Ptrade 平台如何进行公募 REITs 基金的回测与交易?

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

问题描述

Ptrade支持reits回测和交易吗?

/

解决方案

Ptrade 支持 REITs 回测和交易吗?

是的,Ptrade 量化平台支持基础设施公募 REITs 基金的回测与交易。

Ptrade 提供了专门的 API 接口 get_reits_list,用于获取指定日期沪深市场的所有公募 REITs 基金代码列表。该接口在研究、回测、交易模块中均可使用。获取到 REITs 代码后,您可以像交易普通股票或 ETF 一样,使用 orderorder_target 等委托接口进行买卖操作。


如何获取 REITs 代码列表?

您可以使用 get_reits_list(date=None) 接口来获取公募 REITs 基金代码。

接口说明

  • 使用场景:研究、回测、交易模块可用。
  • 参数
    • date:格式为 YYYYmmdd 的字符串。如果不传入此参数:
      • 在回测中,默认取回测当前日期(context.current_dt)。
      • 在研究和交易中,默认取当天日期。
  • 返回值:返回一个包含公募 REITs 基金代码的列表(list 类型),例如 ['180101.SZ', '180102.SZ', '508099.SS']

Python 源码示例

以下是一个在 Ptrade 中获取 REITs 列表并进行简单交易的策略示例:

def initialize(context):
    # 获取当前所有的公募 REITs 基金代码
    g.reits_list = get_reits_list()
    log.info('当前公募 REITs 基金数量为: %s' % len(g.reits_list))
    
    # 将获取到的 REITs 列表设置为股票池
    if len(g.reits_list) > 0:
        set_universe(g.reits_list)
        # 选取第一只 REITs 作为交易标的
        g.target_reit = g.reits_list[0]
    else:
        g.target_reit = None

def handle_data(context, data):
    if g.target_reit is None:
        return
        
    # 获取目标 REITs 的当前价格
    current_price = data[g.target_reit]['close']
    log.info('标的 %s 当前价格为: %s' % (g.target_reit, current_price))
    
    # 简单的买入逻辑:如果持仓为0,则买入 1000 股(份)
    position = get_position(g.target_reit)
    if position.amount == 0:
        order(g.target_reit, 1000)
        log.info('买入 1000 份 %s' % g.target_reit)

注意事项

  1. 流动性与滑点:REITs 市场的流动性可能与普通 A 股有所不同,在进行回测时,建议合理设置滑点(set_slippageset_fixed_slippage)和成交比例限制(set_volume_ratio),以使回测结果更贴近真实交易。
  2. 价格精度:REITs 的价格精度通常为小数点后三位,在使用限价单(如 limit_price 参数)时,请注意价格的小数位数处理,避免因精度问题导致委托失败。