get_sort_msg支持按成交额排序吗?
使用get_sort_msg想要获取成交额最大的板块,设置sort_field_name="成交额"后报错,为什么?
问题描述
解决方案
核心解答
支持按成交额排序。
报错的原因是 sort_field_name 参数不支持直接输入中文。在 ptrade 的 get_sort_msg 接口中,排序字段必须使用官方指定的英文字段名。代表“总成交额”的正确字段名是 'business_balance'。
正确的使用方法
如果您想获取成交额最大的板块(降序排列),应该这样设置参数:
# 获取概念板块按成交额降序排列的前10名
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='business_balance', sort_type=1, data_count=10)
完整代码示例
def initialize(context):
g.security = '000001.SZ'
set_universe(g.security)
def handle_data(context, data):
# 获取概念板块(XBHS.GN)按总成交额(business_balance)降序(sort_type=1)排名的前10条数据
sort_data = get_sort_msg(sort_type_grp='XBHS.GN', sort_field_name='business_balance', sort_type=1, data_count=10)
if sort_data:
# 打印成交额最大的板块信息
first_block = sort_data[0]
log.info("成交额最大的板块是:%s, 成交额为:%s" % (first_block['prod_name'], first_block['business_balance']))
附:sort_field_name 常用支持字段列表
为了避免类似报错,请参考以下常用的合法英文字段名:
business_balance:总成交额business_amount:总成交量px_change_rate:涨跌幅px_change:涨跌额amplitude:振幅vol_ratio:量比market_value:市值circulation_value:流通市值rise_count:上涨家数fall_count:下跌家数