第16章:交易成本分析
做量化交易这么多年,我越来越觉得一个道理:交易成本才是真正的对手盘。你策略再牛,模型再准,如果成本控制不好,利润全给券商和市场吃了。今天我们就来拆解交易成本这个看似简单、实则深不见底的话题。
16.1 显性成本:看得见的“明枪”
显性成本,说白了就是你在交易软件上能直接看到的费用。这部分虽然透明,但很多人其实没算明白。
16.1.1 佣金
佣金是券商收的服务费。我见过不少新手,选券商只看佣金低不低。嗯,这没错,但别忽略一点——佣金有最低收费。比如某券商说“万1.5”,但每笔最低收5块。你算算,如果你只买1000块的股票,佣金就是5块,实际费率高达千分之五!
我个人习惯是:大资金看费率,小资金看最低收费。做高频交易的朋友更要小心,佣金累积起来能吃掉你一半的利润。
| 交易类型 | 佣金费率 | 最低收费 |
|---|---|---|
| A股 | 万1.5 - 万3 | 5元/笔 |
| 期货 | 按手数或比例 | 通常无 |
| 期权 | 按张数 | 1-5元/张 |
16.1.2 税费
税费这块,A股和美股差别很大。A股有印花税(卖出时收千分之一),美股没有。但美股有SEC费、交易活动费这些杂七杂八的。
我曾经在做一个A股日内策略时,发现回测收益不错,实盘却差一截。排查了半天,原来是印花税没算进去。你想想看,每天高频交易,千分之一的印花税累积下来有多可怕。
16.2 隐性成本:看不见的“暗箭”
隐性成本才是真正考验交易水平的地方。很多策略在回测里跑得漂亮,一到实盘就崩,问题往往出在这里。
16.2.1 冲击成本
冲击成本,就是你下单时对市场价格造成的影响。你买100股和买100万股,对市场的冲击完全不一样。
我记得有一次帮客户优化一个ETF套利策略。回测显示年化收益15%,实盘只有8%。后来发现,问题出在冲击成本上。回测用的是收盘价,但实盘时大单直接把价格推高了,买入成本比预期高出一大截。
冲击成本的计算公式:
冲击成本 = (实际成交均价 - 订单簿中间价) / 订单簿中间价 × 100%
为什么会这样?因为你的买单吃掉了卖单队列里的深度。市场深度越浅,冲击成本越大。
16.2.2 延迟成本
延迟成本,说白了就是“时间就是金钱”。从你决定交易到订单真正到达交易所,这中间的延迟会带来价格变化。
我做过一个统计:在A股市场,从策略信号发出到订单到达交易所,平均延迟在50-200毫秒。这200毫秒里,价格可能已经变了。对于高频策略来说,这简直是灾难。
延迟成本的构成:
- 网络延迟: 你的服务器到交易所的距离
- 处理延迟: 策略计算、风控检查的时间
- 排队延迟: 订单在交易所队列里等待的时间
我曾经帮一家私募做延迟优化。他们原来的系统延迟在300毫秒左右,我们通过托管机房、优化代码、用FPGA加速,硬生生压到了10微秒以内。效果立竿见影,套利策略的胜率从55%提到了68%。
16.3 交易成本模型
光知道成本有哪些还不够,你得能算出来。下面介绍几个我常用的模型。
16.3.1 Almgren-Chriss模型
这是业界最经典的交易成本模型。它把成本分成两部分:
- 永久性冲击: 你的交易改变了市场供需,价格回不去了
- 暂时性冲击: 你的交易只是暂时影响了流动性,价格会恢复
模型公式:
总成本 = 永久性冲击 + 暂时性冲击
= α × 交易量 + β × 交易量 / 市场深度
其中α和β是参数,需要通过历史数据拟合。我个人习惯用滚动窗口来估计这两个参数,因为市场状态是变化的。
16.3.2 实现差价模型
这个模型更简单粗暴:
实现差价 = 实际成交价格 - 决策时的基准价格
基准价格可以是:
- 订单簿中间价
- VWAP(成交量加权平均价)
- 上一笔成交价
我比较喜欢用VWAP作为基准。为什么呢?因为VWAP反映了市场整体的成交水平,用它来衡量你的执行质量比较公平。
16.3.3 实战中的成本估算
在实际项目中,我一般这样估算交易成本:
- 小单(< 1%日成交量): 显性成本为主,隐性成本忽略
- 中单(1%-5%日成交量): 显性成本 + 0.1%-0.3%的冲击成本
- 大单(> 5%日成交量): 必须用Almgren-Chriss模型精细计算
这里有个避坑指南:我曾经在回测中忽略了大单的冲击成本,结果实盘时策略收益直接腰斩。从那以后,我养成了一个习惯——任何策略上线前,先跑一遍成本压力测试。
16.4 知识体系总览
下面这张图是我自己整理的交易成本分析框架,你可以把它当作一个检查清单:
这张图把交易成本分析的核心逻辑串起来了。你从显性和隐性成本入手,选择合适的模型,最后落到实战应用上。每一步都有坑,但每一步也都有优化空间。
16.5 写在最后
交易成本分析,说白了就是算清楚你到底赚了多少钱。很多人只看策略收益,不看成本,结果白忙活一场。我见过太多这样的案例了。
记住一句话:控制成本,就是增加收益。下次你回测策略时,先把成本模型跑一遍,看看你的策略在真实市场里到底能不能赚钱。
- 显性成本:佣金、税费,必须精确计算
- 隐性成本:冲击成本、延迟成本,回测时一定要模拟
- 模型选择:小单用简单模型,大单用Almgren-Chriss
- 实战:成本压力测试是策略上线的最后一道关卡