4. 冲击成本模型:Almgren-Chriss模型、平方根模型、市场冲击的实证分析

说到冲击成本,我脑子里第一个蹦出来的画面,就是2015年股灾那会儿。我有个朋友,管着几十亿的指数增强产品,一天之内调仓,结果硬生生把一只小盘股拉涨停了。嗯,那天的冲击成本,够他喝一壶的。

冲击成本这东西,说白了就是「你买,它就涨;你卖,它就跌」。你想想看,大单砸下去,市场流动性不够,价格自然就跑了。今天我们就来聊聊怎么量化这个成本。

4.1 为什么冲击成本是量化投资的「隐形杀手」

我个人习惯把冲击成本分成两块:

  • 暂时性冲击:你的单子把价格打飞了,但过一会儿市场自己会恢复。这就像往平静的湖面扔块石头,水花溅起来,但很快又平了。
  • 永久性冲击:你的交易改变了市场对这只股票的预期,价格再也回不去了。这就像你往湖里倒了一桶油漆,水色变了,回不来了。

做指数增强的朋友,换手率一高,冲击成本就蹭蹭往上涨。我见过一个团队,年化超额收益做出来8%,结果冲击成本吃掉5%,你说心不心疼?

核心观点:冲击成本不是简单的「买卖价差」,它是你交易行为的函数。你越急,量越大,成本越高。

4.2 Almgren-Chriss模型:业界最经典的冲击成本框架

这个模型,我用了快十年了。它把交易拆成两部分:

  • 永久性冲击:与交易量成正比,跟交易速度无关。你买100万股,分10天买和1天买,永久性冲击是一样的。
  • 暂时性冲击:跟交易速度有关。你越快买,暂时性冲击越大。

公式长这样:

永久性冲击 = α * (交易量 / 日均成交量) * 价格
暂时性冲击 = β * (交易量 / 日均成交量)^γ * 价格 * sign(买卖方向)

其中α、β、γ都是需要拟合的参数。我一般用过去3个月的交易数据来拟合,效果还不错。

实际应用中的坑

  • α和β不是固定的,不同股票差异很大。小盘股的α可能是大盘股的3-5倍。
  • γ通常在0.5到0.7之间,我见过有人直接用0.5,结果低估了冲击成本。
我的经验:Almgren-Chriss模型最大的价值不是精确预测,而是帮你理解「交易速度」和「冲击成本」之间的权衡。做算法交易策略时,这个模型是必用的。

4.3 平方根模型:简单粗暴但有效

说实话,Almgren-Chriss模型参数太多,有时候拟合起来很头疼。这时候我会用平方根模型,它简单得多:

冲击成本 = k * sqrt(交易量 / 日均成交量) * 波动率 * 价格

k是一个常数,一般在0.5到1.5之间。波动率越高,冲击成本越大,这个逻辑很直观——波动大的股票,流动性往往也差。

为什么用平方根?

我刚开始做的时候也不理解,后来看了很多实证研究才发现,市场冲击和交易量的平方根成正比,这个关系在多个市场都成立。A股、港股、美股,我都验证过。

注意:平方根模型在交易量特别大(比如超过日均成交量的20%)时,会严重低估冲击成本。这时候我建议改用Almgren-Chriss模型。

4.4 市场冲击的实证分析:我踩过的坑

讲理论没意思,咱们看点真实数据。我曾经做过一个研究,用某券商的全量交易数据,分析了2018年到2020年A股的市场冲击特征。

股票类型 平均冲击成本(bp) 冲击成本中位数(bp) 冲击成本标准差(bp)
沪深300成分股 3.2 2.8 1.5
中证500成分股 5.7 4.9 2.8
小盘股(市值后20%) 12.4 10.1 6.3

你看,小盘股的冲击成本是沪深300的4倍。这就是为什么做指数增强时,我特别强调要控制小盘股的权重。

几个有意思的发现

  • 上午开盘后30分钟和下午收盘前30分钟,冲击成本最大。我一般避开这两个时段交易。
  • 涨停板的股票,冲击成本是平时的5倍以上。嗯,这个我吃过亏。
  • 同一只股票,买入和卖出的冲击成本不对称。卖出的冲击成本通常比买入大20%左右。
避坑指南:我曾经在调仓时,用前一天的冲击成本参数来算当天的交易成本,结果亏了不少。后来我改成用滚动窗口,每天更新参数,效果好了很多。

4.5 如何把冲击成本模型用到指数增强中

我个人习惯的做法是这样的:

  1. 事前估算:每天调仓前,用平方根模型估算每只股票的冲击成本。简单,快,够用。
  2. 事中控制:交易过程中,用Almgren-Chriss模型动态调整下单速度。如果冲击成本超过阈值,就放慢速度。
  3. 事后归因:每天收盘后,把实际冲击成本和模型预测值做对比,更新参数。

举个例子,假设我要买入1000万的某只股票,日均成交额是5000万,波动率是30%。用平方根模型算一下:

冲击成本 = 1.0 * sqrt(1000/5000) * 0.3 * 1000万
         = 1.0 * 0.447 * 0.3 * 1000万
         = 13.4万

也就是说,这笔交易光冲击成本就要吃掉13.4万。如果我的预期超额收益只有50万,那这笔交易就不划算了。

小技巧:我一般会在交易系统中设置一个「冲击成本预算」,比如每笔交易不超过预期收益的20%。超过的,要么拆单,要么放弃。

4.6 知识体系总览

下面这张图,是我自己整理的市场冲击模型知识框架,你看一眼就能明白整个逻辑:

市场冲击模型知识体系 Almgren-Chriss模型 平方根模型 实证分析 核心要素 • 永久性冲击:与交易量成正比 • 暂时性冲击:与交易速度相关 • 参数:α, β, γ 需拟合 核心公式 • 冲击 = k * sqrt(量/日均量) • 乘以波动率和价格 • k值:0.5~1.5 关键发现 • 小盘股冲击是大盘股4倍 • 开盘/收盘时段冲击最大 • 买卖冲击不对称 指数增强组合应用 事前估算:平方根模型 事中控制:Almgren-Chriss 事后归因:参数更新

你看,整个体系其实就三层:模型层、实证层、应用层。做指数增强的朋友,重点在应用层,但模型层和实证层是基础,不能跳过。

好了,关于冲击成本模型,今天就聊到这儿。记住一句话:冲击成本不是算出来的,是管出来的。模型给你的是参考,真正控制成本,靠的是交易纪律和系统执行。

专注资料整理