5、Almgren-Chriss模型详解:永久冲击与临时冲击、线性冲击函数、最优执行策略

说到冲击成本建模,Almgren-Chriss模型是我个人最常用的基准模型。为什么?因为它把复杂的问题拆成了两块:永久冲击和临时冲击。说白了,一个影响的是你还没卖完的仓位,另一个影响的是你正在卖的这一单。

5.1 永久冲击 vs 临时冲击

先说说永久冲击。你想想看,当你大单卖出时,市场会记住你的交易行为。这个影响会持续存在,直到你的订单全部执行完毕。我习惯把它理解成「市场记忆」——你卖得越多,市场价格就下降得越厉害,而且这个下降不会因为你停止交易就恢复。

临时冲击就不同了。它只影响你当前这一笔交易。比如你急着要卖1000股,市场深度不够,你只能吃单,价格就会暂时偏离。但等你这单做完,价格很快会回到原来的水平。嗯,这里要注意:临时冲击的恢复速度取决于市场的流动性。

核心区别:

  • 永久冲击:影响未执行部分的仓位,不可逆
  • 临时冲击:只影响当前交易,可恢复

5.2 线性冲击函数

Almgren-Chriss模型假设冲击函数是线性的。为什么用线性?说白了,数学上好处理,而且在实际项目中,我发现线性近似在中等规模订单上表现还不错。

永久冲击函数:

I(v) = γ * v

其中v是交易速度,γ是永久冲击系数。

临时冲击函数:

J(v) = η * v

η是临时冲击系数。

我记得有一次做回测,发现用线性模型预测的冲击成本,在订单量小于日均成交量10%时,误差基本在5%以内。但超过这个阈值,非线性效应就开始显现了。

实战经验:我建议你在使用线性模型前,先做个小测试。拿历史数据跑一遍,看看你的订单规模是否落在线性区间内。如果偏差太大,可能需要考虑非线性模型。

5.3 最优执行策略

有了冲击模型,下一步就是找最优执行策略。Almgren-Chriss模型的目标很简单:在给定时间内,以最小的总成本完成交易。

总成本 = 市场冲击成本 + 时间风险成本

这里有个权衡:你卖得越快,冲击成本越高;卖得越慢,价格波动的风险越大。我刚开始做这个时,总觉得慢点卖能省钱,结果有一次遇到市场暴跌,亏得我肉疼。

最优策略的数学形式:

x(t) = X * (1 - t/T) + (η/γ) * (1 - e^(-γ(T-t)))

其中X是总订单量,T是执行时间。

这个公式看着复杂,其实逻辑很简单:一开始卖得快一点,后面逐渐放慢。为什么?因为前期仓位重,价格风险大,宁可多付点冲击成本也要尽快减仓。

避坑指南:我曾经在实盘中直接套用这个公式,结果发现市场条件变了,最优策略也跟着变。记住,模型给出的只是参考,你需要根据实时市场数据动态调整。

5.4 知识体系结构图

下面这张图是我自己整理的,把Almgren-Chriss模型的核心逻辑串起来了:

Almgren-Chriss模型知识体系 输入参数 Almgren-Chriss模型 线性冲击函数 + 最优执行策略 永久冲击 临时冲击 最优执行策略 I(v) = γ * v J(v) = η * v x(t) = X*(1-t/T) + ... 最小化总执行成本

5.5 实战中的注意事项

用Almgren-Chriss模型时,有几个坑我踩过,分享给你:

  1. 参数估计要谨慎:γ和η不是固定的,它们会随市场状态变化。我习惯每天重新估计一次。
  2. 流动性假设:模型假设市场深度是无限的,但实际中不是。遇到流动性枯竭,模型会失效。
  3. 执行时间T:这个参数很关键。T设得太短,冲击成本高;设得太长,价格风险大。我一般用波动率来反推T。

总结一下:Almgren-Chriss模型是个好工具,但它不是万能的。用它做基准,结合你自己的交易经验,才能找到真正的最优策略。