第二章 市场微观结构基础:订单簿、价差与深度
做量化交易,你得先懂市场到底长什么样。
很多人一上来就研究各种策略,结果连订单簿都看不懂。我刚开始做高频交易那会儿,就吃过这个亏。今天咱们把市场微观结构的基础打牢,后面构建成本模型才不心虚。
2.1 订单簿结构:市场的“实时快照”
订单簿,说白了就是所有买卖挂单的集合。交易所维护着两个队列:买单队列和卖单队列。
买单按价格从高到低排,谁出价高谁排前面。卖单相反,谁卖得便宜谁优先。价格相同就看时间,先到先得。
我习惯把订单簿想象成一个“价格阶梯”。每一档价格上,都堆着一定数量的订单。
核心概念:
- 买一(Bid1):最高的买入价格
- 卖一(Ask1):最低的卖出价格
- 价差(Spread):卖一 - 买一
- 市场深度:每个价格档位上的挂单总量
举个例子,假设某股票当前订单簿长这样:
| 价格 | 卖单量(手) | 买单量(手) | 价格 |
|---|---|---|---|
| 10.05 | 200 | ||
| 10.04 | 150 | ||
| 10.03 | 100 | ||
| 10.02 | 80 | 10.02 | |
| 10.01 | 120 | 10.01 | |
| 10.00 | 300 | 10.00 |
这里买一是10.02,卖一是10.03,价差只有1分钱。市场深度方面,卖单在10.03到10.05之间总共450手,买单在10.00到10.02之间总共500手。
我的经验: 做回测时,千万别只看成交价。我见过太多人用收盘价做策略,实盘一跑就崩。为什么?因为订单簿里的深度和价差,才是真实流动性的体现。
2.2 买卖价差:交易成本的“第一道坎”
价差就是你买入和卖出之间的价格差。你想想看,如果你在买一价买入,立刻在卖一价卖出,你亏的就是这个价差。
价差越小,流动性越好。像茅台这种大盘股,价差经常只有1分钱。但一些小盘股,价差可能达到几毛甚至几块。
为什么会这样?
因为做市商和套利者不愿意承担风险。流动性差的股票,他们挂单的价差就大,作为风险补偿。
避坑指南: 我曾经在回测中忽略价差,结果策略年化收益看起来有30%。实盘一跑,扣除价差成本后只剩8%。嗯,从那以后我再也不敢忽略价差了。
计算价差有两种方式:
- 绝对价差:卖一价 - 买一价
- 相对价差:绝对价差 / 中间价 × 100%
我个人习惯用相对价差,因为不同价格的股票,绝对价差没有可比性。比如1分钱的价差,对10块的股票是0.1%,对100块的股票只有0.01%。
2.3 市场深度:你能吃下多少“货”
市场深度衡量的是,在某个价格附近,有多少订单等着成交。
深度越大,你越容易大额交易而不影响价格。反之,深度浅的市场,你稍微买多一点,价格就蹭蹭往上涨。
我常用“深度斜率”这个概念。把订单簿的价格和累计成交量画成曲线,斜率越陡,说明深度越差。
# 计算累计深度
def calc_depth(order_book, side='ask'):
"""
order_book: 订单簿数据,格式为 [(price, volume), ...]
side: 'ask' 表示卖单,'bid' 表示买单
"""
cum_vol = 0
depth_profile = []
for price, vol in order_book:
cum_vol += vol
depth_profile.append((price, cum_vol))
return depth_profile
# 示例:卖单深度
ask_book = [(10.03, 100), (10.04, 150), (10.05, 200)]
depth = calc_depth(ask_book, 'ask')
print(depth)
# 输出:[(10.03, 100), (10.04, 250), (10.05, 450)]
你看,在10.03只能吃100手,到10.05就能吃450手。这就是深度分布。
关键指标:
- 深度1%:价格变动1%时,能成交的总量
- 深度斜率:价格每变动一个最小变动单位,成交量的变化
- 订单簿不平衡:买单总深度 vs 卖单总深度
2.4 订单类型:你的“武器库”
做交易不能只会用市价单。我见过太多新手,上来就市价单猛干,结果滑点吃到吐。
2.4.1 市价单(Market Order)
市价单就是“不管价格,立即成交”。你下单时,系统会从最优价格开始,一路吃掉对手方的订单,直到你的数量全部成交。
优点:成交速度快。缺点:你无法控制成交价格。
我记得有一次,一个朋友用市价单买一只小盘股,本来想买1000手,结果买一只有200手,剩下的800手硬是把价格从10块推到了10.15。这就是典型的“滑点灾难”。
2.4.2 限价单(Limit Order)
限价单是“我只接受这个价格或更好的价格”。你挂一个买单,价格设10块,那只有价格≤10块时才会成交。
限价单的好处是你能控制成本。坏处是可能一直成交不了。
我个人的习惯是:
- 做短线、抢流动性:用市价单
- 做中长线、控制成本:用限价单
- 做高频、做市:限价单是主力
2.4.3 冰山订单(Iceberg Order)
冰山订单,顾名思义,只露出水面一小部分。你实际想买10000手,但只显示100手。成交完100手,再露出100手,直到全部成交。
为什么要用冰山订单?
你想想看,如果你直接挂10000手买单,市场一看,哇,这么大买盘,价格肯定要涨。做市商和套利者会立刻把价格推高,你就买贵了。
冰山订单就是为了隐藏真实意图。
实战技巧: 我曾经用冰山订单在港股市场建仓。当时要买50万股,分成了500个冰山子单,每个只显示1000股。花了整整一个下午才建完仓,但价格只推高了0.2%。如果用市价单,估计要推高2%以上。
2.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你看一遍,应该能对市场微观结构有个整体认识。
这张图把订单簿、价差、深度和订单类型串在了一起。你记住,这四个东西是互相影响的。价差影响你的交易成本,深度决定你能交易多大头寸,订单类型则是你控制成本的手段。
本章核心要点:
- 订单簿是市场的“骨架”,价差和深度是“血肉”
- 价差是交易成本的第一道坎,千万别忽略
- 深度决定了你的交易对市场的影响
- 选择合适的订单类型,能帮你省下不少钱
好了,市场微观结构的基础就讲到这里。这些概念看着简单,但真正用好它们,需要大量的实盘经验。下一章我们会把这些知识用到交易成本模型的构建中,到时候你就知道今天学的东西有多重要了。
公众号:蓝海资料掘金营,微信deep3321