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

PTrade量化交易:如何使用set_universe设置股票池及代码后缀区别?

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

问题描述

PTrade策略中set_universe函数如何使用,股票代码后缀有什么区别?

解决方案

在PTrade量化交易平台中,set_universe 函数是编写策略时最常用的基础设置函数之一,用于指定策略需要关注和操作的标的(股票池)。同时,为了区分不同市场的证券,PTrade对代码后缀有严格的规范。

以下是详细的使用指南和后缀说明:

一、 set_universe 函数如何使用?

1. 接口说明

set_universe(security_list) 用于设置或者更新此策略要操作的股票池。在股票策略中,该函数主要用于设定 get_history 等行情获取函数的默认 security_list 入参。

使用场景:仅在回测、交易模块可用,通常在 initialize (初始化) 函数中调用。

2. 参数说明

  • security_list: 股票列表,支持单支或者多支股票。数据类型可以是字符串 (str) 或字符串列表 (list[str])。

3. 代码示例

示例 1:设置单只股票

def initialize(context):
    # 设置只操作恒生电子一只股票
    set_universe('600570.SS')

示例 2:设置多只股票

def initialize(context):
    # 设置操作恒生电子和平安银行
    g.security = ['600570.SS', '000001.SZ']
    set_universe(g.security)

def handle_data(context, data):
    # 获取初始化设定的股票池行情数据,security_list=None 时默认使用 set_universe 设置的股票池
    his = get_history(5, '1d', 'close', security_list=None)

二、 股票代码后缀有什么区别?

在PTrade中,为了准确识别不同交易所和不同类型的交易品种,代码后面必须加上特定的后缀(尾缀)。PTrade支持全称尾缀和简称尾缀。

支持的代码尾缀列表

市场品种 尾缀全称 尾缀简称
上海市场证券 (如沪市A股、科创板) XSHG SS
深圳市场证券 (如深市A股、创业板) XSHE SZ
指数 (如沪深300) XBHS
中金所期货 CCFX
上海股票期权 XSHO
深圳股票期权 XSZO
上海港股通 XHKG-SS
深圳港股通 XHKG-SZ

常见使用场景举例:

  1. 沪市股票:恒生电子代码为 600570,在PTrade中应写为 '600570.SS''600570.XSHG'
  2. 深市股票:平安银行代码为 000001,在PTrade中应写为 '000001.SZ''000001.XSHE'
  3. 指数:沪深300指数代码为 000300,在PTrade中应写为 '000300.XBHS'(注意:部分接口如 get_index_stocks 获取指数成分股时,尾缀可能要求为 .SS.XBHS,具体请参考对应API文档)。
  4. 期货:沪深300股指期货当月合约,应写为类似 'IF2112.CCFX'

💡 注意事项

  • 在编写策略时,强烈建议统一使用简称尾缀(如 .SS, .SZ,因为它们更简短且在大多数API中兼容性最好。
  • 如果不加后缀,系统将无法识别该代码属于哪个市场,会导致报错或获取不到数据。