2. 市场冲击模型:瞬时冲击、永久冲击、冲击成本估算公式
做量化交易,尤其是大单交易,最怕什么?
怕你一进场,价格就跑了。
你想想看,本来想买100万股,结果刚买了10万股,股价就窜上去了。后面的90万股,全买在高位。这就是市场冲击在作祟。
我个人习惯把市场冲击拆成两块来看:瞬时冲击和永久冲击。这两兄弟,一个像过路财神,一个像跟屁虫,处理不好,你的交易成本就失控了。
2.1 瞬时冲击:流动性提供者的“过路费”
瞬时冲击,说白了就是你的大单子吃掉了订单簿上的流动性,导致价格瞬间偏离。
举个例子。假设某股票当前买一价10.00元,卖一价10.01元。你想买10万股,但卖一到卖五总共才挂了5万股。你怎么办?只能把卖一到卖五全吃掉,然后还得往上扫卖六、卖七……
价格就这样被你推高了。这个推高的部分,就是瞬时冲击。
我在项目中遇到过一种情况:某次我们执行一个ETF套利策略,需要快速买入一篮子股票。其中有一只小盘股,流动性极差。我们一进场,价格直接跳了三个档位。当时我就意识到,瞬时冲击的估算,直接决定了你的策略能不能赚钱。
核心公式(简化版):
瞬时冲击成本 ≈ 订单量 × 价格弹性系数
其中,价格弹性系数 = (价格变化百分比) / (订单量占日均成交量的百分比)
嗯,这里要注意:这个公式是理想化的。实际交易中,订单簿的形状、对手盘的挂单深度,都会影响瞬时冲击的大小。
2.2 永久冲击:信息泄露的“后遗症”
永久冲击就更有意思了。它指的是你的交易行为,被市场解读为“有内幕消息”或者“有大资金在布局”,从而导致价格永久性地改变了。
为什么会这样?
因为市场是聪明的。你一个大单子砸下去,做市商和算法交易系统会立刻警觉:“有人在大规模买入,是不是有什么利好?”于是他们开始跟风,把价格推到一个新的均衡位置。
我曾经吃过这个亏。有一次我们执行一个建仓计划,分三天完成。第一天买完,第二天股价就涨了2%。我当时还以为是市场行情好,后来复盘才发现,是我们的交易行为被高频交易者捕捉到了,他们提前抢跑了。
避坑指南:
我曾经以为只要把大单拆成小单,就能避免永久冲击。后来发现,如果拆单的节奏太有规律,比如每5分钟固定买1000股,算法交易系统照样能识别出来。所以,拆单不仅要拆量,还要拆时间,甚至要加入随机性。
2.3 冲击成本估算公式:实战中的“三板斧”
好了,理论讲完了,咱们来点实在的。冲击成本到底怎么算?我一般用三个模型,分别对应不同的场景。
2.3.1 线性冲击模型(最常用)
这个模型假设冲击成本与订单量成正比。简单粗暴,但够用。
冲击成本 = α × (订单量 / 日均成交量) × 波动率 × 价格
其中,α是一个经验系数,一般在0.5到2之间。波动率越高,α取值越大。
我个人习惯用这个模型做快速估算。比如,某股票日均成交1亿,波动率20%,价格100元。你想买1000万,那么:
冲击成本 ≈ 1.0 × (1000万 / 1亿) × 20% × 100 = 2元/股
也就是说,你的买入均价会比当前价格高2元左右。这个估算,能帮你快速判断这笔交易划不划算。
2.3.2 平方根冲击模型(更精确)
这个模型考虑了市场深度和订单簿的形状。它认为冲击成本与订单量的平方根成正比。
冲击成本 = β × √(订单量 / 市场深度) × 波动率 × 价格
β也是一个经验系数,通常在0.1到0.5之间。市场深度越浅,β取值越大。
我的经验:
对于流动性好的股票(比如沪深300成分股),用线性模型就够了。但对于小盘股、ST股,我建议用平方根模型。因为小盘股的订单簿很薄,你的单子一进去,价格跳得特别厉害。平方根模型能更好地捕捉这种非线性效应。
2.3.3 Almgren-Chriss模型(机构级)
这个模型是量化交易界的经典。它把冲击成本拆成了瞬时和永久两部分,并且考虑了时间因素。
总冲击成本 = 瞬时冲击 + 永久冲击
瞬时冲击 = γ × 交易速率 × 波动率
永久冲击 = η × 累计成交量 × 波动率
其中,γ和η是模型参数,需要通过历史数据拟合得到。
我记得有一次,我们团队用这个模型优化了一个大单执行策略。通过调整交易速率,我们把冲击成本降低了15%。嗯,效果还是很明显的。
2.4 知识体系图:冲击模型的核心逻辑
下面这张图,是我自己总结的。它把冲击模型的三个层次、两个维度,以及它们之间的关系,都画出来了。
2.5 实战中的选择建议
说了这么多,到底用哪个模型?我给大家一个简单的决策树:
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 流动性好的大盘股 | 线性冲击模型 | 计算简单,误差可接受 |
| 流动性差的小盘股 | 平方根冲击模型 | 能捕捉非线性冲击效应 |
| 机构级大单执行 | Almgren-Chriss模型 | 考虑时间维度,更精确 |
| 日内高频交易 | 瞬时冲击模型为主 | 永久冲击影响较小 |
一个小技巧:
如果你不确定用哪个模型,可以先用线性模型算一个粗略值,然后用平方根模型算一个精细值。如果两者差距在10%以内,用哪个都行。如果差距超过20%,说明这只股票的流动性有问题,建议谨慎交易。
好了,关于市场冲击模型,我就讲这么多。记住一句话:冲击成本不是算出来的,是管出来的。模型只是给你一个参考,真正的功夫,在于如何根据实时市场情况,动态调整你的交易策略。
公众号:蓝海资料掘金营,微信deep3321