1. 市场微观结构基础:订单簿原理、买卖盘口、限价单与市价单、市场深度定义与度量

大家好,欢迎来到我们量化交易课程的第一章。今天咱们聊聊市场微观结构——说白了,就是市场到底是怎么运作的。很多人做量化只盯着K线图,却忽略了最底层的订单簿。我个人觉得,不理解订单簿,就像开车不看仪表盘,迟早要翻车。

核心观点:市场微观结构是量化交易的底层逻辑。订单簿就是市场的“心跳”,读懂它,你才能知道价格是怎么来的。

1.1 订单簿原理:市场的“记账本”

订单簿是什么?你可以把它想象成一个巨大的记账本。所有交易者的买卖意愿,都记录在这里。每一笔挂单,都代表了一个人对价格的看法。

我记得刚入行时,有个老交易员跟我说:“小伙子,别整天盯着K线,去看看订单簿里的挂单变化,那才是真金白银的博弈。” 我当时半信半疑,后来自己做回测才发现,很多大资金进场前,订单簿上会有明显的“挂单堆积”现象。嗯,这就是信号。

订单簿的核心结构其实很简单:

  • 买盘(Bid): 大家愿意出的最高买入价,以及对应的数量。
  • 卖盘(Ask): 大家愿意卖出的最低卖出价,以及对应的数量。
  • 价差(Spread): 卖一价减去买一价,就是市场的“过路费”。

你想想看,如果买一和卖一之间的价差特别大,说明市场流动性差,交易成本高。反之,价差小,说明市场活跃,进出容易。

1.2 买卖盘口:谁在“挂单”等你?

盘口数据,就是订单簿的“快照”。我们常说的“买一、买二、买三”和“卖一、卖二、卖三”,就是盘口的核心。

举个例子,假设某股票当前盘口如下:

档位 买价 买量 卖价 卖量
1 10.00 1000 10.01 800
2 9.99 2000 10.02 1500
3 9.98 3000 10.03 2500

这里有个小技巧:如果买一的数量突然暴增,而价格没怎么动,说明有大资金在“托底”。我在项目中遇到过好几次,这种挂单往往是机构在吸筹,后续大概率会拉升。当然,也可能是陷阱,但至少值得你多看一眼。

个人经验: 我习惯把盘口数据做成“逐笔成交”的时序图。单纯看静态盘口容易误判,但结合成交量的变化,能更早发现主力意图。

1.3 限价单与市价单:两种“下单”哲学

下单方式就两种:限价单和市价单。但背后的逻辑,天差地别。

  • 限价单(Limit Order): 你指定一个价格,只有市场达到这个价格才成交。说白了,就是“我只接受这个价,爱卖不卖”。
  • 市价单(Market Order): 你不管价格,直接按当前最优价成交。说白了,就是“我要立刻成交,价格无所谓”。

为什么会这样?因为限价单提供流动性,市价单消耗流动性。做市商赚的就是这个差价。

我曾经犯过一个低级错误:在流动性极差的小币种上,用市价单下了个大单。结果呢?直接把价格打穿了两个档位,多亏了好几个点。从那以后,我给自己定了个规矩:流动性不足时,坚决不用市价单。

避坑指南: 我曾经在回测中忽略了一个细节——限价单的“未成交部分”。很多新手以为挂单就一定能成交,其实不然。如果价格没到,你的单子就一直挂在那里,占用资金。所以,做策略时一定要考虑“撤单重挂”的逻辑。

1.4 市场深度定义与度量:到底能“吃”多少?

市场深度,简单说就是“在某个价格附近,你能成交多少而不影响价格”。深度越深,市场越“厚”,大资金进出越容易。

度量市场深度,常用的指标有:

  1. 订单簿斜率: 计算买盘或卖盘在不同价格上的累计挂单量。斜率越陡,说明深度越差。
  2. 价差宽度: 买一和卖一之间的价格差。价差越小,深度越好。
  3. 深度百分比: 比如“吃掉10%的订单簿需要多少资金”。这个指标很直观。

我一般用Python这样计算简单的市场深度:

import pandas as pd

def market_depth(bids, asks, levels=5):
    """
    bids: 买盘数据,格式 [[price, volume], ...]
    asks: 卖盘数据,格式 [[price, volume], ...]
    """
    bid_depth = sum([b[1] for b in bids[:levels]])
    ask_depth = sum([a[1] for a in asks[:levels]])
    spread = asks[0][0] - bids[0][0]
    
    return {
        'bid_depth': bid_depth,
        'ask_depth': ask_depth,
        'spread': spread,
        'depth_ratio': bid_depth / ask_depth if ask_depth > 0 else None
    }

# 示例数据
bids = [[10.00, 1000], [9.99, 2000], [9.98, 3000]]
asks = [[10.01, 800], [10.02, 1500], [10.03, 2500]]
print(market_depth(bids, asks))

这段代码很简单,但实际应用中,我会把深度数据做成滚动窗口,观察它的变化趋势。如果深度突然变浅,往往意味着有大行情要来了。

核心度量: 我个人最看重的是“深度斜率”和“价差宽度”的组合。斜率陡+价差宽 = 流动性差,别碰。斜率缓+价差窄 = 流动性好,可以放心交易。

1.5 知识体系总览

为了让你更直观地理解本章内容,我画了一张结构图。它展示了订单簿、盘口、订单类型和市场深度之间的关系。

市场微观结构 订单簿原理 买卖盘口 限价单 vs 市价单 买盘/卖盘 价差(Spread) 买一/卖一 挂单堆积 限价单(流动性) 市价单(消耗) 市场深度:斜率、价差、深度百分比

这张图把本章的核心知识点串起来了。你从“市场微观结构”出发,往下分支出订单簿、盘口、订单类型,最后汇聚到市场深度。说白了,所有东西都是为了回答一个问题:这个市场到底有多“深”?

我的习惯: 每次分析一个新品种,我都会先跑一遍市场深度指标。如果深度不够,我宁愿不做,也不去赌。记住,流动性是量化交易的命根子。


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