交易执行:算法拆单与冲击成本建模
黄金段位讲过交易成本的种类,这一篇讲它在执行层面怎么被管理。研究做得再好,执行做不好,收益会在最后一步漏掉。
为什么需要算法拆单
如果你想买入某只股票当天成交额的百分之二十,直接下一笔市价单会发生什么?你会一路把卖单吃光,价格被自己推高,最终的平均成交价明显高于下单时看到的价格。这就是冲击成本。
解决办法是把大单拆成许多小单,分散在一段时间内慢慢成交,让市场有时间恢复。执行这个拆分逻辑的程序,就是算法交易。
几种常见算法
按成交量加权(VWAP):让成交节奏跟随市场成交量的分布——市场活跃时段多买,清淡时段少买。目标是让平均成交价接近全天的成交量加权均价。它的好处是不容易被察觉,代价是放弃了择时:如果股价全天单边上涨,跟着买就是一路买高。
时间加权(TWAP):把订单均匀分布在时间段内。比 VWAP 更机械,也更难被从成交量异常中识别出来。
跟价/被动算法:挂单等待成交,而不是主动吃单。能拿到更好的价格(甚至赚到价差),代价是可能买不到量——如果股价一路走高,挂单永远不成交。
实现落差算法:以"下单时刻的价格"为基准,主动在"快速成交(冲击成本高)"和"慢慢等(时机成本高)"之间做权衡。它需要估计这两类成本,是更完整的一类做法。
冲击成本怎么建模
实务中常用的模型有两层。
临时冲击:你的买单把价格推高,这部分在交易结束后会部分回落。它与订单规模相对日均成交额的比值相关,通常是非线性的一一量越大,单位冲击递增。
永久冲击:你的交易向市场传递了信息,或者确实改变了供需,这部分价格变动不会回落。它通常与交易本身的方向和信息含量相关。
区分两者有实际意义:临时冲击可以通过拆单减缓,永久冲击不能——它是你把价格真的买上去了。
一个简单的经验是:单只股票的单日成交量,控制在日均成交额的百分之十以内,冲击通常可控;超过这个比例,成本会明显上升。
执行与策略是一体的
这一点常被忽略:换手率不是外生于策略的,而是策略的一部分。如果一个策略要求每天换仓百分之二十,那么它的可容量天然就受执行约束。
所以更合理的做法是:在组合构建阶段就把执行约束放进去(限制单只股票的权重、限制相对成交量的比例、限制单次调仓的换手),而不是先算出理想组合、再交给交易部门去想办法。
怎么衡量执行好坏
用实现落差:下单时的决策价格,与最终平均成交价之间的差。持续跟踪这个指标,能看出执行环节在漏多少钱,也能比较不同算法、不同交易时段的优劣。
一句人话:执行是在"买得到"和"买得好"之间找平衡。买得太急要付冲击成本,等得太久要付时机成本,两头都在花钱。
写在最后
即便回测、执行都做到位,实盘仍可能和纸面差很远。下一篇系统地讲这个落差从哪来。
本文为投研学习参考资料,仅供研究参考,不作为投资决策依据。市场有风险,投资需谨慎。
← 返回智远教投