一、订单簿基础:限价单与市价单、买卖盘口、深度图、订单簿数据结构

做量化交易这些年,我越来越觉得订单簿这东西,就像市场的「心跳」。你盯着它看久了,能感受到资金在流动,情绪在变化。今天咱们就把这个基础打扎实。

1.1 限价单 vs 市价单:两种最基本的武器

先说说最核心的两个概念。限价单和市价单,说白了就是「我想用多少钱买」和「我不管多少钱,现在就要买」的区别。

  • 限价单(Limit Order):你指定一个价格,只有市场达到这个价格时才会成交。比如你挂一个「买入BTC,限价30000」,那只有价格跌到30000或以下才会成交。
  • 市价单(Market Order):你只说要买多少,系统按当前最优价格立刻成交。比如「买入1个BTC,市价」,系统会吃掉盘口上最便宜的卖单。

关键区别:限价单提供流动性,市价单消耗流动性。做市商靠挂限价单赚钱,散户喜欢用市价单图快。

我记得刚入行时,有个同事用市价单买了大额资产,结果滑点吃了大亏。嗯,从那以后我给自己定了个规矩:大单必须用限价单拆着挂。

1.2 买卖盘口:订单簿的「门面」

打开任何一个交易平台,你看到的买一卖一、买二卖二……这就是盘口。它本质上是一个价格-数量的映射表。

档位 买价(Bid) 买量 卖价(Ask) 卖量
1 100.00 500 100.05 300
2 99.95 800 100.10 600
3 99.90 1200 100.15 900

这里有个细节:买一和卖一之间的价差,叫「Spread」。价差越小,说明市场流动性越好。我在做高频策略时,最怕的就是价差突然拉大——那往往意味着有大行情要来了。

1.3 深度图:把订单簿「画」出来

光看数字不够直观,所以有了深度图。它把买单和卖单按价格累加,画成两条曲线。

怎么看深度图? 左边是买单累积量(红色),右边是卖单累积量(绿色)。曲线越陡,说明那个价格区间的挂单越密集。如果买单墙很厚,价格往往跌不下去——这就是支撑位。

我曾经用深度图抓过一次机会:某币在100元位置有个巨大的买单墙,而卖单稀稀拉拉。我判断价格很难跌破100,于是在100.5附近挂了一堆限价买单。结果价格果然在100附近震荡了半小时,然后反弹了5%。

1.4 订单簿数据结构:代码里长什么样

做量化,你得知道订单簿在程序里怎么存。我习惯用Python的字典或pandas DataFrame来管理。

# 一个简单的订单簿数据结构示例
order_book = {
    'bids': [  # 买单,按价格降序排列
        {'price': 100.05, 'size': 300},
        {'price': 100.00, 'size': 500},
        {'price': 99.95,  'size': 800},
    ],
    'asks': [  # 卖单,按价格升序排列
        {'price': 100.10, 'size': 600},
        {'price': 100.15, 'size': 900},
        {'price': 100.20, 'size': 400},
    ],
    'timestamp': 1695000000.123
}

实际生产中,交易所推送的订单簿更新是增量式的——每次只告诉你「哪个价格变了多少」。你需要维护一个本地的快照,然后不断应用增量更新。这里有个坑:如果漏掉一条更新,整个订单簿就废了。我建议用队列加校验机制来保证数据完整性。

注意:不同交易所的订单簿数据结构略有差异。比如币安的深度更新是每秒推送一次,而Coinbase是实时推送。对接时一定要仔细看API文档。

1.5 本章知识体系

下面这张图,是我梳理的订单簿核心知识脉络。你把它存下来,后面讲订单簿不平衡度时,会反复用到这些概念。

订单簿基础 限价单 vs 市价单 买卖盘口 (Bid/Ask) 深度图 订单簿数据结构 提供流动性 控制成交价格 消耗流动性 立即成交 买一卖一价差 多档位挂单 支撑位/阻力位 累积挂单量 快照+增量 价格-数量映射 核心:理解订单簿是「价格-时间-数量」的三维结构

你看,订单簿看似简单,但每个细节都藏着交易信号。比如买单墙突然撤单,那可能是主力在诱多。再比如卖单密集区被快速吃掉,说明买方力量很强。

我的一个小习惯:每天开盘前,我会先扫一眼主流币的深度图。如果发现某个价格区间挂单异常集中,我会在附近挂一些限价单,赌价格会在这个区间震荡。胜率大概六成吧,但配合止损,长期下来收益不错。

好了,订单簿的基础就讲到这里。你把这些概念吃透了,后面讲订单簿不平衡度时,就能理解为什么它能预测短期价格走势了。


公众号:蓝海资料掘金营,微信deep3321