冲击成本模型基础:市场微观结构简介
做量化交易这些年,我越来越觉得——不懂微观结构,就别谈冲击成本。你想想看,我们下的每一笔订单,本质上都是在跟市场里的其他参与者博弈。这个博弈的规则,就是市场微观结构。
市场微观结构是什么?
说白了,就是订单怎么进来、怎么匹配、怎么成交的那一套机制。我刚开始做高频策略时,总觉得这东西太底层了,跟我做中低频策略没关系。后来有一次回测跑得漂亮,实盘一上就亏钱——嗯,就是吃了微观结构的亏。
市场微观结构主要包含这几个要素:
- 订单类型:限价单、市价单、冰山订单等等
- 撮合规则:价格优先、时间优先,这是最基础的
- 信息披露:盘口能看到几档?挂单量是否透明?
- 交易机制:连续竞价还是集合竞价?有没有做市商?
我个人习惯把微观结构理解成「市场的骨架」。骨架长什么样,决定了你的交易策略能不能站稳。
买卖价差与市场深度
这两个概念,是冲击成本模型的基石。
买卖价差,就是买一价和卖一价之间的差值。你想想看,如果你现在想立刻买入,就得吃卖一的价格;想立刻卖出,就得吃买一的价格。这一来一回,价差就是你的成本。
我在项目中遇到过一只流动性很差的港股,价差能到 2% 以上。你做个套利策略,年化收益才 5%,光价差就吃掉一半——这还玩什么?
市场深度,指的是在某个价格水平上,有多少订单在等着。深度越厚,你吃掉的订单越多,价格滑动的幅度就越小。
举个例子:
| 价格 | 卖单量 | 累计量 |
|---|---|---|
| 10.01 | 1,000 | 1,000 |
| 10.02 | 2,000 | 3,000 |
| 10.03 | 5,000 | 8,000 |
| 10.04 | 10,000 | 18,000 |
如果你想买入 15,000 股,按市价单执行,你会吃掉 10.01 到 10.04 四个价位的订单。平均成交价是多少?算一下就知道,比当前卖一价高了不少。这个差价,就是冲击成本的一部分。
核心观点:价差是「第一口」的成本,深度决定了「吃多深」的成本。两者共同构成了冲击成本的基础。
冲击成本的定义与度量
冲击成本,就是你下单行为本身导致的价格变动。我经常跟团队说一句话:「你看到的行情,是你下单前的行情;你成交的价格,是你影响后的价格。」
度量冲击成本,业界常用的方法有两种:
- 实现价差法:用实际成交价与基准价(比如下单时的买一价)的差值来衡量
- 模型估计法:用 Almgren-Chriss 这类模型来估算
我个人更推荐第二种。为什么?因为实现价差法受市场波动影响太大。你刚下完单,价格自己就涨了 0.1%,这算不算冲击成本?说不清楚。模型估计法能把「市场自身波动」和「你的订单造成的冲击」分离开来。
避坑指南:我曾经用实现价差法做回测,结果策略表现特别好。一上实盘就崩了。后来才发现,回测时市场波动小,冲击成本被低估了。改用模型估计法后,回测结果才跟实盘对得上。
永久冲击与暂时冲击
这是冲击成本模型里最核心的区分。我建议你把这个概念刻在脑子里。
暂时冲击:你的订单吃掉了一部分流动性,价格暂时偏离了。但等你的订单执行完,市场流动性恢复,价格会回到原来的水平。就像你在平静的湖面扔了一块石头——水花溅起来,但很快又平了。
永久冲击:你的订单太大了,市场认为你的交易行为包含了信息(比如你知道什么内幕消息),于是价格永久性地移动了。还是那个湖——你扔的不是石头,而是一艘船,水位线都变了。
区分这两者有什么意义?
- 暂时冲击可以通过拆单、延时执行来降低
- 永久冲击是你无法避免的——只要你的订单规模大到暴露了信息
我记得有一次做大宗交易,一个客户要卖出 5% 的持仓。我们拆成 200 笔小单,用了一周时间执行。结果呢?价格还是跌了 3%。这就是永久冲击——市场已经嗅到了抛压。
注意:不要以为拆单就能解决所有冲击成本问题。拆单只能降低暂时冲击,对永久冲击基本无效。如果你的订单规模大到能影响市场预期,那就要考虑更复杂的执行策略了。
知识体系总览
下面这张图,是我自己整理的知识框架。每次带新人时,我都会先让他们看这个:
这张图把整个知识脉络串起来了。从微观结构出发,到价差和深度,再到冲击成本的两种类型,最后落到应对策略上。你每次做交易成本分析时,都可以拿这个框架来对照——看看自己忽略了哪个环节。
好了,这一章的内容就到这里。冲击成本模型的基础打牢了,后面我们才能聊怎么建模型、怎么优化执行策略。
公众号:蓝海资料掘金营,微信deep3321