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

ptrade get_sort_msg 传入 sort_type_grp 报错原因及解决方法

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

问题描述

get_sort_msg传入sort_type_grp参数后报错是什么原因?

使用get_sort_msg获取板块排名时,传入sort_type_grp="沪深"等中文名称后返回错误,为什么?

解决方案

在 ptrade 量化平台中,使用 get_sort_msg 函数获取板块或行业的涨幅排名时,如果传入 sort_type_grp="沪深" 等中文名称会导致报错。这是因为该参数不支持直接传入中文名称,而是需要传入特定的板块或行业代码

报错原因分析

根据 ptrade API 文档,sort_type_grp 参数的定义如下:

  • 参数类型list[str]str
  • 参数含义:板块或行业的代码
  • 支持的输入:目前暂时只支持特定的代码前缀,例如:
    • XBHS.DY:地域板块
    • XBHS.GN:概念板块
    • XBHS.ZJHHY:证监会行业
    • XBHS.ZS:指数
    • XBHS.HY:行业

因此,传入中文名称(如“沪深”、“农业”等)无法被系统识别,从而导致报错。

正确的使用方法

如果您想获取某个特定板块的排名,必须传入对应的代码。例如,获取地域板块的排名,应传入 XBHS.DY

代码示例

def initialize(context):
    g.security = '000001.SZ'
    set_universe(g.security)

def handle_data(context, data):
    # 正确用法:获取地域板块 (XBHS.DY) 的涨幅排名信息,按昨日收盘价降序排列
    sort_data = get_sort_msg(sort_type_grp='XBHS.DY', sort_field_name='preclose_px', sort_type=1, data_count=100)
    
    if sort_data:
        log.info("获取到的板块排名数据:")
        log.info(sort_data)
        
        # 获取排名第一的板块数据
        sort_data_first = sort_data[0]
        log.info("排名第一的板块信息:")
        log.info(sort_data_first)
    else:
        log.error("未获取到排名数据,请检查参数设置。")

总结

在使用 get_sort_msg 时,请务必查阅 API 文档中关于 sort_type_grp 的说明,使用官方指定的代码(如 XBHS.GNXBHS.HY 等)进行查询,避免使用中文名称。