一、市场微观结构:订单簿深度解析
做量化交易这些年,我越来越觉得一个道理:不懂订单簿,就别谈交易执行。你想想看,我们所有的策略信号,最终都要通过订单簿这个「战场」去落地。今天我就带你把这个战场彻底看透。
核心认知:订单簿就是市场的「实时供需地图」。每一笔挂单,都是交易者用真金白银投票的结果。
1.1 买卖盘口与价差
先看最基础的东西。订单簿的左右两侧,一边是买单(Bid),一边是卖单(Ask)。
- 买一(Best Bid):当前愿意出的最高买入价
- 卖一(Best Ask):当前愿意卖的最低卖出价
- 价差(Spread):卖一 - 买一,就是市场的「过路费」
我记得刚入行时,有个老交易员跟我说:「看价差就能知道市场情绪。」当时不太理解,后来自己做策略回测才发现——价差窄,说明流动性好,市场活跃;价差宽,说明要么流动性枯竭,要么有大波动要来了。
我的经验:做高频策略时,我习惯把价差作为「入场过滤器」。价差超过平均值的1.5倍,我基本不会开仓——那是在给做市商送钱。
1.2 市场深度与流动性
市场深度,说白了就是「你能吃掉多少单子而不把价格打飞」。
举个例子:
# 一个简化的订单簿深度示例
order_book = {
'bids': [ # 买单堆
(100.00, 500), # 价格100,挂单500股
(99.95, 1000), # 价格99.95,挂单1000股
(99.90, 2000), # 价格99.90,挂单2000股
],
'asks': [ # 卖单堆
(100.05, 300), # 价格100.05,挂单300股
(100.10, 800), # 价格100.10,挂单800股
(100.15, 1500), # 价格100.15,挂单1500股
]
}
你看这个结构。如果你想买入1000股,直接吃卖一300股,价格100.05;剩下的700股得吃卖二,价格100.10。实际成交均价是(300×100.05 + 700×100.10) / 1000 ≈ 100.085。比卖一贵了0.035美元。
这0.035就是冲击成本。我做过一个统计:在流动性一般的股票上,一次大单交易,冲击成本可能占到总成本的30%以上。嗯,这可不是小数目。
避坑指南:我曾经在回测时忽略了冲击成本,结果实盘跑出来收益直接腰斩。后来我学乖了——任何策略回测,必须把订单簿深度纳入模型。
1.3 订单类型详解
订单类型这块,我见过太多人搞混了。其实核心就几种,我一个个说。
市价单(Market Order)
「我要买,立刻,不管什么价。」——这就是市价单。成交快,但价格不可控。我一般只在两种情况下用:一是流动性极好的品种(比如沪深300成分股),二是策略对时间要求极高(比如抢涨停)。
限价单(Limit Order)
「我只愿意出这个价,多了我不买。」——限价单给你价格控制权,但可能成交不了。我个人习惯是:做趋势跟踪用市价单,做均值回归用限价单。为什么?趋势跟踪要的是「上车」,均值回归要的是「好价格」。
冰山订单(Iceberg Order)
这个有意思。大资金不想暴露自己的真实意图,就把一个大单拆成小单,只露出「冰山一角」。
# 冰山订单的简单模拟
class IcebergOrder:
def __init__(self, total_qty, display_qty, price):
self.total_qty = total_qty # 总数量:10000股
self.display_qty = display_qty # 显示数量:1000股
self.price = price
self.remaining = total_qty
def get_visible_qty(self):
# 每次只露出冰山一角
return min(self.display_qty, self.remaining)
def fill(self, qty):
self.remaining -= qty
# 如果剩余量还够,重新露出下一层
if self.remaining > 0:
return self.get_visible_qty()
return 0
我在做市商策略时,经常用冰山订单来隐藏自己的真实意图。你想想看,如果你直接挂10000股卖单,市场一眼就看穿你要出货,价格立马被打压。但用冰山订单,每次只露1000股,别人以为只是个小散户在卖。
关键洞察:冰山订单的「隐藏深度」是市场微观结构分析的重要指标。如果你发现某个价位频繁出现「补单」现象——刚被吃掉又出现同样数量的挂单——那大概率是冰山订单在运作。
1.4 订单簿的动态演化
订单簿不是静止的。它每时每刻都在变化。我习惯用「三看」来分析:
- 看价差变化:价差突然扩大,往往意味着有大事要发生
- 看挂单撤单:频繁的挂单又撤单,可能是大资金在「试盘」
- 看深度分布:买单堆厚还是卖单堆厚,能判断短期多空力量
举个例子。有一次我在监控某只股票的订单簿,发现卖二到卖五突然出现大量挂单,但卖一却空空如也。这明显不对劲——正常情况应该是层层递进的。后来果然,一个大户在卖一挂了巨量卖单,把价格砸下去3%。这就是典型的「订单簿操纵」。
实用技巧:我写了一个监控脚本,实时计算订单簿的「不平衡度」——(买单总深度 - 卖单总深度) / (买单总深度 + 卖单总深度)。这个值超过0.6或低于-0.6时,系统会自动报警。效果还不错。
1.5 知识体系总览
说了这么多,我画了一张图帮你理清思路:
这张图把整个知识体系串起来了。从买卖盘口出发,到价差、深度、订单类型,最后到动态演化——每一步都是下一层的基础。
一句话总结:订单簿不是冷冰冰的数字,它是市场参与者博弈的实时记录。读懂它,你就能看到别人看不到的交易机会。
公众号:蓝海资料掘金营,微信deep3321