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

ptrade 平台如何利用 get_sort_msg 获取概念板块成员个数与上涨家数比例?(附 Python 源码)

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

问题描述

ptrade 板块分析:利用 get_sort_msg 获取行业成分股数量与上涨家数比例
我想用 get_sort_msg 获取概念板块的涨幅排名,并提取各板块的成员个数(member_count)与上涨家数,该怎么做?

解决方案

在 ptrade 交易平台中,get_sort_msg 是一个非常强大的盘中行情分析接口,适用于获取板块、行业的涨幅排名及详细的成分股统计数据。通过该接口,您可以轻松获取板块的成员个数(member_count)、上涨家数(rise_count)以及下跌家数(fall_count),从而计算出板块内部的上涨家数比例,辅助进行板块强弱的量化分析。

1. 接口关键字段解析

调用 get_sort_msg 时,若传入板块或行业代码组(如概念板块 'XBHS.GN'),返回的列表中每个字典会包含以下关键字段:

  • prod_code: 板块/行业代码
  • prod_name: 板块/行业名称
  • member_count: 成员个数(即该板块包含的成分股总数)
  • rise_count: 上涨家数
  • fall_count: 下跌家数
  • px_change_rate: 涨跌幅

2. Python 策略源码示例

以下是一个完整的 ptrade 策略示例,展示了如何在盘中(handle_data)获取概念板块(XBHS.GN)的涨幅排名,并提取成员个数与上涨家数,计算上涨比例:

def initialize(context):
    # 初始化策略,设置基准
    set_benchmark('000300.SS')
    g.security = '600570.SS'
    set_universe(g.security)
    g.has_run = False

def handle_data(context, data):
    # 确保在盘中只执行一次演示,实际策略中可根据需要定时运行
    if not g.has_run:
        log.info("------ 开始获取概念板块涨幅排名及成员统计 ------")
        
        # 获取概念板块(XBHS.GN)按涨跌幅(px_change_rate)降序排名的前 10 个板块
        # sort_type=1 表示降序,data_count=10 表示获取前10条数据
        sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='px_change_rate', sort_type=1, data_count=10)
        
        if sort_data:
            for item in sort_data:
                name = item.get('prod_name')          # 板块名称
                code = item.get('prod_code')          # 板块代码
                pct = item.get('px_change_rate')      # 涨跌幅
                total = item.get('member_count', 0)   # 成员总数
                rise = item.get('rise_count', 0)      # 上涨家数
                fall = item.get('fall_count', 0)      # 下跌家数
                
                # 计算上涨家数比例
                rise_ratio = (rise / total * 100) if total > 0 else 0.0
                
                log.info(f"板块: {name}({code}) | 涨幅: {pct}% | 总成员数: {total} | 上涨家数: {rise} | 下跌家数: {fall} | 上涨比例: {rise_ratio:.2f}%")
        else:
            log.warning("未能获取到板块排名数据,请检查网络或行情权限。")
            
        g.has_run = True

3. 注意事项

  1. 运行环境限制get_sort_msg 接口仅在交易模块(实盘/模拟盘)可用,在回测或研究模块中无法直接调用。
  2. 数据更新频率:该数据为盘中实时统计数据,建议在 handle_data 或通过 run_interval 定时调用,避免高频重复请求造成行情服务器压力。