【PTrade】PTrade如何获取买卖十档行情?详解

本方案由 EasyQuant AI量化助手 提供。

问题背景

实时交易中,仅看最新价往往不够。买一到买五、卖一到卖五的价格、挂单量和委托笔数,可用于判断盘口流动性、设置限价委托价格或过滤异常行情。

PTrade 的 get_gear_price() 可获取指定证券的档位行情数据。

完整代码示例

def initialize(context):
    g.security = "510300.SS"

    set_universe([g.security])


def handle_data(context, data):
    # 获取当前盘口档位数据
    gear_data = get_gear_price(g.security)

    if not gear_data:
        log.info("未获取到盘口数据")
        return

    bid_grp = gear_data.get("bid_grp", {})
    offer_grp = gear_data.get("offer_grp", {})

    if not bid_grp or not offer_grp:
        log.info("盘口数据为空,可能行情快照获取失败")
        return

    # 买一:[价格、委托量、委托笔数]
    bid_one = bid_grp.get(1, [0, 0, 0])

    # 卖一:[价格、委托量、委托笔数]
    ask_one = offer_grp.get(1, [0, 0, 0])

    bid_price = bid_one[0]
    bid_volume = bid_one[1]
    bid_count = bid_one[2]

    ask_price = ask_one[0]
    ask_volume = ask_one[1]
    ask_count = ask_one[2]

    log.info(
        "买一:价格=%.3f,数量=%d,笔数=%d"
        % (bid_price, bid_volume, bid_count)
    )

    log.info(
        "卖一:价格=%.3f,数量=%d,笔数=%d"
        % (ask_price, ask_volume, ask_count)
    )

    # 计算买卖一档价差
    if bid_price > 0 and ask_price > 0:
        spread = ask_price - bid_price

        log.info("买卖一档价差:%.3f" % spread)

    # 简单盘口失衡指标
    total_volume = bid_volume + ask_volume

    if total_volume > 0:
        bid_ratio = bid_volume / total_volume

        log.info("买一挂单占比:%.2f%%" % (bid_ratio * 100))

        if bid_ratio > 0.7:
            log.info("买一挂单相对较强")
        elif bid_ratio < 0.3:
            log.info("卖一挂单相对较强")

多股票读取示例

def handle_data(context, data):
    stocks = ["510300.SS", "159919.SZ"]

    gear_data = get_gear_price(stocks)

    for security in stocks:
        stock_gear = gear_data.get(security, {})

        bid_one = stock_gear.get("bid_grp", {}).get(1, [0, 0, 0])
        ask_one = stock_gear.get("offer_grp", {}).get(1, [0, 0, 0])

        log.info(
            "%s 买一=%.3f,卖一=%.3f"
            % (security, bid_one[0], ask_one[0])
        )

注意事项

  1. get_gear_price() 仅支持 PTrade 交易模块。

  2. 档位数据为空时,应跳过交易,不能直接以空数据下单。

  3. 无 L2 行情时,委托笔数字段可能为 0

  4. 盘口挂单可能快速撤销,不应仅依赖单一档位做交易决策。

  5. 盘口数据适合辅助限价下单和流动性判断,不构成收益保证。

总结

get_gear_price() 能帮助 PTrade 策略读取买卖盘口,在限价委托、ETF 做市价差监控和短线流动性过滤中非常实用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值