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

ptrade 平台 get_gear_price 函数最多能获取多少档行情数据?

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

问题描述

get_gear_price最多返回几档行情数据?

使用get_gear_price获取股票的逐档委买委卖信息时,最多能获取多少档数据?

解决方案

在 ptrade 量化交易平台中,使用 get_gear_price 函数获取股票的逐档委买委卖信息时,最多能获取的档位数取决于您账户所开通的行情权限:

  1. Level 1 行情(普通行情):最多返回 5档 行情数据(即买一到买五,卖一到卖五)。
  2. Level 2 行情(高级行情):最多返回 10档 行情数据(即买一到买十,卖一到卖十)。

数据结构说明

get_gear_price 返回的数据是一个嵌套字典,包含 bid_grp(委买档位)和 offer_grp(委卖档位)。

  • 5档行情示例
    {'bid_grp': {1: [价格, 委托量, 委托笔数], ..., 5: [价格, 委托量, 委托笔数]},
     'offer_grp': {1: [价格, 委托量, 委托笔数], ..., 5: [价格, 委托量, 委托笔数]}}
    
  • 10档行情示例(Level 2)
    {'bid_grp': {1: [价格, 委托量, 委托笔数, {委托队列}], ..., 10: [价格, 委托量, 委托笔数]},
     'offer_grp': {1: [价格, 委托量, 委托笔数, {委托队列}], ..., 10: [价格, 委托量, 委托笔数]}}
    
    注意:在 Level 2 行情下,第一档(买一/卖一)的数据列表中可能会包含第四个元素,即详细的委托队列字典。

代码示例

以下是如何在策略中获取并打印档位数据的示例:

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 获取当前档位行情
    gear_price = get_gear_price(g.security)
    
    if gear_price and 'bid_grp' in gear_price:
        bid_grp = gear_price['bid_grp']
        # 获取当前返回的最大档位数
        max_level = max(bid_grp.keys()) if bid_grp else 0
        log.info(f"{g.security} 当前获取到 {max_level} 档买盘数据")
        
        # 打印买一价和买十价(如果存在)
        if 1 in bid_grp:
            log.info(f"买一价: {bid_grp[1][0]}, 委托量: {bid_grp[1][1]}")
        if 10 in bid_grp:
            log.info(f"买十价: {bid_grp[10][0]}, 委托量: {bid_grp[10][1]}")

总结get_gear_price 最多可以返回 10档 数据,但这需要您的券商环境支持并开通了 Level 2 行情。如果没有 L2 行情,默认只能获取 5 档数据,且委托笔数字段可能返回 0。