3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 交易平台中,get_sort_msg 是一个非常强大的盘中行情分析接口,适用于获取板块、行业的涨幅排名及详细的成分股统计数据。通过该接口,您可以轻松获取板块的成员个数(member_count)、上涨家数(rise_count)以及下跌家数(fall_count),从而计算出板块内部的上涨家数比例,辅助进行板块强弱的量化分析。
调用 get_sort_msg 时,若传入板块或行业代码组(如概念板块 'XBHS.GN'),返回的列表中每个字典会包含以下关键字段:
prod_code: 板块/行业代码prod_name: 板块/行业名称member_count: 成员个数(即该板块包含的成分股总数)rise_count: 上涨家数fall_count: 下跌家数px_change_rate: 涨跌幅以下是一个完整的 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
get_sort_msg 接口仅在交易模块(实盘/模拟盘)可用,在回测或研究模块中无法直接调用。handle_data 或通过 run_interval 定时调用,避免高频重复请求造成行情服务器压力。