3. 交易成本分析:显性成本与隐性成本,执行缺口模型
交易成本这东西,说白了就是你在市场上「买路钱」。我刚开始做量化那会儿,总觉得策略赚了就是赚了,亏了就是亏了。后来才发现,很多时候策略本身没问题,钱全被交易成本吃掉了。嗯,今天我们就来拆解一下,这笔钱到底花在了哪里。
3.1 显性成本:看得见的「硬开销」
显性成本,就是那些明明白白写在账单上的费用。你跑完一笔交易,券商给你发个结算单,上面列得清清楚楚。
- 佣金:给券商的手续费。现在国内很多券商都卷到万分之一甚至更低,但别小看,高频交易下来也是一笔不小的数目。
- 印花税:国家收的,卖出时交。A股目前是千分之一,这个没法省。
- 过户费:中国结算收的,金额不大,但每笔都有。
- 交易所规费:包括证管费和经手费,通常包含在佣金里,但你要心里有数。
我个人习惯:在回测系统里,我会把显性成本设成一个固定参数。比如A股,我一般按「万分之三佣金 + 千分之一印花税」来算。这样至少保证回测结果不会太乐观。
3.2 隐性成本:看不见的「隐形杀手」
隐性成本就麻烦多了。它不会出现在账单上,但实实在在地影响你的收益。我见过太多新手,只看显性成本,结果实盘一跑,收益直接腰斩。
隐性成本主要包括这几类:
- 买卖价差:你买的时候按卖一价成交,卖的时候按买一价成交。这一来一回,就是价差成本。流动性差的股票,价差可能有好几个tick。
- 市场冲击:你的订单太大,直接把价格打上去了。这是最头疼的,也是我们这门课的核心。
- 延迟成本:信号出来了,但订单没及时成交,价格已经变了。高频交易里,延迟1毫秒可能就亏钱。
- 机会成本:你想买但没买到,结果价格涨上去了。或者你想卖但没卖掉,价格跌下来了。
避坑指南:我曾经在回测里只算了显性成本,结果实盘跑一个中频策略,收益直接少了40%。后来一查,全是市场冲击和延迟成本。从那以后,我回测必加隐性成本模型。
3.3 执行缺口模型:把成本算清楚
执行缺口(Implementation Shortfall)是Almgren和Chriss在2000年左右提出的。说白了,就是「你实际成交的价格」和「你决策时的价格」之间的差距。这个差距,就是你的总交易成本。
公式很简单:
执行缺口 = (实际成交均价 - 决策价格) / 决策价格 × 100%
但拆开来看,它包含了:
- 固定成本:佣金、印花税等显性成本
- 瞬时成本:买卖价差
- 时间成本:等待成交期间的价格波动
- 市场冲击成本:订单对价格的直接影响
举个例子:你决定在10.00元买入100万股某股票。结果实际成交均价是10.05元。那执行缺口就是0.5%。这0.5%里,可能有0.05%是佣金,0.1%是价差,剩下的0.35%全是市场冲击和时间成本。
我建议:实盘交易后,一定要算执行缺口。如果连续几笔都超过预期,说明你的算法或者执行方式有问题,需要调整。
3.4 知识体系框架
下面这张图,是我自己整理的交易成本分析框架。你看一眼,基本就明白整个逻辑了。
3.5 实战中的成本控制
讲完理论,说点实际的。我在实盘交易中,一般会这样控制成本:
- 大单拆小单:100万股的订单,拆成1000股一笔,慢慢吃。虽然时间拉长了,但市场冲击小很多。
- 选流动性好的时段:开盘和收盘前半小时,流动性最好,价差最小。我一般避开中午休盘前后。
- 用算法交易:TWAP、VWAP这些算法,本质就是在时间成本和市场冲击之间找平衡。
- 实时监控执行缺口:如果发现执行缺口突然变大,我会暂停交易,重新评估市场状况。
注意:不要为了省显性成本而忽略隐性成本。比如为了省佣金,把订单集中到一笔大单,结果市场冲击成本远高于省下的佣金。这种「捡了芝麻丢了西瓜」的事,我见过太多次了。
好了,交易成本分析就讲到这里。记住一句话:成本控制是量化交易的基石,执行缺口是你最好的度量工具。下次实盘前,先算算你的执行缺口,你会发现很多问题。