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

ptrade 平台 get_gear_price 能否同时查询多只股票的档位数据?

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

问题描述

get_gear_price能同时查询多只股票的档位数据吗?

需要同时获取多只股票的档位行情,是否需要循环调用get_gear_price多次?

解决方案

在 ptrade 量化交易平台中,get_gear_price 接口完全支持同时查询多只股票的档位数据。您不需要使用 for 循环多次调用该接口,直接传入一个包含多只股票代码的列表(list)即可。

接口说明

根据 ptrade API 文档,get_gear_price(sids) 的入参 sids 支持 list[str]str 类型。这意味着您可以一次性传入多只股票代码。

返回数据格式

当传入多只股票代码时,返回的数据是一个嵌套字典,最外层的 key 是股票代码,value 是该股票的档位数据:

{
    '600570.SS': {
        'bid_grp': {1: [价格, 委托量, 委托笔数], ...},
        'offer_grp': {1: [价格, 委托量, 委托笔数], ...}
    },
    '600571.SS': {
        'bid_grp': {1: [价格, 委托量, 委托笔数], ...},
        'offer_grp': {1: [价格, 委托量, 委托笔数], ...}
    }
}

代码示例

以下是如何在策略中一次性获取多只股票档位数据的示例:

def initialize(context):
    # 设置包含多只股票的股票池
    g.security = ['600570.SS', '600571.SS']
    set_universe(g.security)

def handle_data(context, data):
    # 直接传入列表,一次性获取多只股票的档位行情
    gear_prices = get_gear_price(g.security)
    
    # 打印获取到的数据
    log.info("多只股票档位数据: %s" % gear_prices)
    
    # 解析单只股票的数据
    if '600570.SS' in gear_prices:
        bid_1 = gear_prices['600570.SS'].get('bid_grp', {}).get(1)
        log.info("600570.SS 买一档数据: %s" % bid_1)

总结与建议

强烈建议直接传入列表来获取多只股票的档位数据,而不是在 handle_data 或其他定时函数中使用 for 循环逐个调用 get_gear_price。批量获取可以显著减少底层接口的调用次数,降低网络和系统开销,从而大幅提升量化策略的运行效率和响应速度。