问题描述
解决方案
在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 | 无 |
常见使用场景举例:
- 沪市股票:恒生电子代码为
600570,在PTrade中应写为'600570.SS'或'600570.XSHG'。 - 深市股票:平安银行代码为
000001,在PTrade中应写为'000001.SZ'或'000001.XSHE'。 - 指数:沪深300指数代码为
000300,在PTrade中应写为'000300.XBHS'(注意:部分接口如get_index_stocks获取指数成分股时,尾缀可能要求为.SS或.XBHS,具体请参考对应API文档)。 - 期货:沪深300股指期货当月合约,应写为类似
'IF2112.CCFX'。
💡 注意事项
- 在编写策略时,强烈建议统一使用简称尾缀(如
.SS,.SZ),因为它们更简短且在大多数API中兼容性最好。 - 如果不加后缀,系统将无法识别该代码属于哪个市场,会导致报错或获取不到数据。