3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,使用 get_gear_price 函数获取股票的逐档委买委卖信息时,最多能获取的档位数取决于您账户所开通的行情权限:
get_gear_price 返回的数据是一个嵌套字典,包含 bid_grp(委买档位)和 offer_grp(委卖档位)。
{'bid_grp': {1: [价格, 委托量, 委托笔数], ..., 5: [价格, 委托量, 委托笔数]},
'offer_grp': {1: [价格, 委托量, 委托笔数], ..., 5: [价格, 委托量, 委托笔数]}}
{'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。