1. AC模型概述:市场冲击成本与Almgren-Chriss模型的起源
做量化交易这些年,我见过太多人一上来就研究各种复杂的策略模型,却忽略了最基础也最致命的问题——你的订单是怎么成交的?
说白了,你策略再牛,信号再准,如果执行环节出了问题,一切都是白搭。我刚开始做算法交易时,就吃过这个亏。策略回测年化收益30%+,实盘一跑,直接腰斩。后来才发现,问题出在市场冲击成本上。
1.1 市场冲击成本:被忽视的利润杀手
什么是市场冲击成本?
想象一下这个场景:你看好某只股票,准备买入10万股。但盘口上卖一只有2000股,卖二3000股...你这一单下去,股价直接被推高了。这就是市场冲击。
用专业点的话说:市场冲击成本是指由于大额交易导致价格向不利方向变动所产生的额外成本。
我做过一个统计:对于流动性一般的股票,一笔市价单的冲击成本可能占到交易金额的0.5%-1%。你想想看,如果年化收益才10%,光冲击成本就吃掉5%-10%,这还玩什么?
市场冲击成本有几个特点:
- 非线性增长:交易量越大,冲击成本增长得越快。不是线性关系,而是近似平方根关系
- 永久性与暂时性并存:一部分冲击是永久的(信息效应),一部分是暂时的(流动性效应)
- 与市场环境相关:波动率越高、流动性越差,冲击成本越大
核心认知:市场冲击成本是算法交易需要解决的首要问题。忽略它,你的策略就是纸上谈兵。
1.2 Almgren-Chriss模型的诞生
2000年左右,两位学者Robert Almgren和Neil Chriss发表了一篇论文,提出了一个优雅的数学模型。这个模型后来成了算法交易领域的基石。
我记得第一次读到这篇论文时,心里想的是:终于有人把这个问题讲清楚了。
Almgren-Chriss模型要解决的核心问题是:给定一个需要执行的大额订单,如何设计交易计划,使得冲击成本和等待风险的总和最小?
这里有个权衡:
- 如果快速交易(比如一次性全部成交),冲击成本很高
- 如果慢慢交易(拆成很多小单),虽然冲击成本低,但价格波动的风险增加了
Almgren和Chriss把这个权衡用数学公式表达了出来,并且给出了最优解。
1.3 模型核心假设与数学框架
嗯,这里要注意,任何模型都有假设。AC模型也不例外。
核心假设:
- 价格服从算术布朗运动:价格变化由漂移项和随机项组成。说白了,价格在趋势中波动
- 冲击成本分为两部分:
- 永久性冲击:与累计交易量成正比,影响后续所有交易
- 暂时性冲击:与当前交易速率有关,只影响当前交易
- 交易速率可控:我们可以决定每个时间点交易多少
- 风险厌恶系数恒定:交易者对风险的偏好是稳定的
数学框架:
模型的核心公式是这样的:
价格动态:
S(t) = S(0) + ∫₀ᵗ μ ds + ∫₀ᵗ σ dW(s) - ∫₀ᵗ g(v(s)) ds - h(x(t))
其中:
- S(t):t时刻的资产价格
- μ:漂移率(预期收益)
- σ:波动率
- W(s):标准布朗运动
- g(v(s)):暂时性冲击函数,v是交易速率
- h(x(t)):永久性冲击函数,x是累计交易量
这个公式看着复杂,其实逻辑很清晰:
- 前两项是正常的市场价格变动(趋势+随机波动)
- 第三项是暂时性冲击(你交易越快,冲击越大)
- 第四项是永久性冲击(你买得越多,价格被推得越高)
个人经验:我在实盘中发现,永久性冲击函数通常取线性形式 g(v) = η·v,暂时性冲击取 h(x) = γ·x。但不同市场、不同品种的参数差异很大。我曾经在港股市场做过测试,同样的参数在A股完全不能用。
1.4 模型在算法交易中的定位
AC模型在算法交易生态中处于什么位置?
我习惯把算法交易分成三个层次:
| 层次 | 内容 | 典型算法 |
|---|---|---|
| 策略层 | 决定买卖什么、何时买卖 | 趋势跟踪、均值回归 |
| 执行层 | 决定如何买卖 | TWAP、VWAP、AC模型 |
| 微观层 | 决定订单簿上的具体操作 | 做市、冰山订单 |
AC模型属于执行层的核心模型。它不告诉你买什么,也不告诉你什么时候买,而是告诉你:既然决定要买了,怎么买最划算?
你想想看,一个完整的交易流程应该是这样的:
- 策略层发出信号:「买入100万股某股票」
- 执行层(AC模型)规划:「分10分钟完成,前5分钟交易40%,后5分钟交易60%」
- 微观层执行:「在订单簿上寻找最佳挂单,逐步成交」
AC模型的价值就在于,它给出了一个可量化、可优化的执行方案。而不是凭感觉说「慢慢买」或者「快点买」。
避坑指南:我曾经犯过一个错误——直接拿AC模型的标准参数去跑实盘。结果发现,模型给出的交易计划过于激进,导致冲击成本远超预期。后来才意识到,参数校准才是AC模型落地的关键。这个我们后面会详细讲。
1.5 本章知识体系
为了让你更直观地理解AC模型的整体框架,我画了一张图:
这张图把AC模型的逻辑链条讲清楚了:从核心问题出发,到两个权衡因素,再到模型的核心思想,最后落实到三个关键要素和输出结果。
我个人觉得,理解AC模型的关键不在于记住那些复杂的数学公式,而在于理解这个权衡的思想。冲击成本和等待风险,就像跷跷板的两端,你要找到那个平衡点。
好了,这一章我们先把AC模型的背景和框架搭起来。下一章开始,我们会深入数学细节,看看这个模型到底是怎么推导出来的。
本章要点回顾:
- 市场冲击成本是大额交易的主要成本,不可忽视
- AC模型解决的是「如何最优执行大额订单」的问题
- 模型核心是冲击成本与等待风险的权衡
- AC模型属于算法交易的执行层,与策略层、微观层协同工作
公众号:蓝海资料掘金营,微信deep3321