AlphaFeed Blog

如何用五档盘口数据判断买卖盘力量?(委比/委差实战)

如何用五档盘口数据判断买卖盘力量?(委比/委差实战)

一句话回答: 五档盘口给出买一到买五、卖一到卖五的价格和挂单量。把买盘总量和卖盘总量做对比就能算出委比和委差,量化当前买卖盘的力量对比;结合挂单结构还能识别涨停封板、跌停砸盘和大单埋伏。

什么是五档盘口

盘口(深度)数据反映的是还没成交的挂单:

它反映的是市场当下的供求意愿,是判断短线买卖压力的直接依据。

获取盘口数据

from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")

depth = af.depth.get("600519.SH")
print(f"标的: {depth['symbol']}  地区: {depth['region']}")
for i in range(5):
    print(f"  买{i+1}: {depth['bid_prices'][i]:>10.2f} x {depth['bid_volumes'][i]:<6}"
          f" | 卖{i+1}: {depth['ask_prices'][i]:>10.2f} x {depth['ask_volumes'][i]}")

返回结构:

字段含义
bid_prices买一~买五价格(长度 5 的列表)
bid_volumes买一~买五挂单量
ask_prices卖一~卖五价格
ask_volumes卖一~卖五挂单量

计算委比和委差

def order_book_strength(depth):
    bid = sum(depth["bid_volumes"])
    ask = sum(depth["ask_volumes"])
    weibi_diff = bid - ask                     # 委差
    weibi = (bid - ask) / (bid + ask) * 100 if (bid + ask) else 0  # 委比 %
    return round(weibi, 2), weibi_diff

depth = af.depth.get("000001.SZ")
weibi, diff = order_book_strength(depth)
print(f"委比: {weibi}%  委差: {diff}")

怎么读:

委比含义
> +50%买盘明显占优,短线偏强
-50% ~ +50%多空相对均衡
< -50%卖盘明显占优,短线偏弱

注意:委比只反映五档以内的挂单,不代表全部真实意愿。大资金常常隐藏挂单或用撤单诱导,需结合成交量一起判断。

识别涨停封板 / 跌停砸盘

这是盘口数据一个非常实用的场景。逻辑很直接:

结合标的元数据里的涨跌停价可以精确确认:

def check_limit(symbol):
    depth = af.depth.get(symbol)
    if depth["ask_volumes"][0] == 0 and depth["bid_volumes"][0] > 0:
        return "涨停封板", depth["bid_volumes"][0]
    if depth["bid_volumes"][0] == 0 and depth["ask_volumes"][0] > 0:
        return "跌停封板", depth["ask_volumes"][0]
    return "正常交易", None

state, seal = check_limit("600519.SH")
print(f"状态: {state}  封单量: {seal}")

批量扫描全市场封板情况

结合全市场行情 + 元数据涨跌停价 + 盘口确认,可以扫出当前所有涨停封板的票:

import pandas as pd

# 1. 全 A 行情
quotes = af.quotes.get(universes=["CN_Stock"], to_dataframe=True)

# 2. 标的元数据里的涨停价(SDK 自动分批)
insts = af.instruments.batch(quotes["symbol"].tolist())
limit_up = {x["symbol"]: x["ext"]["limit_up"]
            for x in insts if x.get("ext", {}).get("limit_up") is not None}

# 3. 价格初筛:最新价 ≈ 涨停价
def near_limit(row):
    lu = limit_up.get(row["symbol"])
    return lu is not None and abs(row["last_price"] - lu) < 1e-3

candidates = quotes[quotes.apply(near_limit, axis=1)]

# 4. 盘口确认:卖一量为 0 才算真封板(SDK 自动分批)
depths = af.depth.batch(candidates["symbol"].tolist())
sealed = [s for s, d in depths.items() if d["ask_volumes"][0] == 0]

print(f"涨停封板: {len(sealed)} 只")
print(candidates[candidates["symbol"].isin(sealed)][["symbol", "ext.name", "last_price"]])

af.instruments.batch 和 af.depth.batch 会自动分批请求,传入几千只标的也无需自己切片。标的池查询需要 Starter 及以上权限。

常见问题(FAQ)

Q:能拿到十档吗? A:当前提供 A 股五档盘口(买卖各 5 档)。

Q:盘口数据多久刷新? A:与实时行情快照同步,约每 3 秒一次。

Q:委比为什么会突然大幅变化? A:大额挂单/撤单会瞬间改变某一档的量,这也是盘口博弈的一部分,建议配合成交量、分时走势综合判断。

Q:能批量取盘口吗? A:可以,用 af.depth.batch([...]) 一次取多只,返回以标的代码为 key 的字典。

小结

五档盘口把”市场当下想以什么价成交多少量”直接摊在你面前。委比委差量化了买卖力量,封单识别帮你抓涨停跌停。它是短线量化里信息密度最高的数据之一,用 af.depth 接口几行就能取到并计算。

相关链接: