量化概念 10:交易成本(0.1% 怎么吃掉年化 20% 的"收益")
回测里年化 20% 的策略,实盘可能只剩一半。中间差的那块,就是交易成本。它小到每笔只有百分之零点几,却像沙漏一样,一笔一笔把你的收益漏光。

显性成本:账面上算得清的
- 佣金:买卖双向收,券商定的,万 1~万 3 常见(比如万 2.5),每笔最低 5 元
- 印花税:卖出单向收,万分之 5(0.05%),卖出才交
- 过户费:双向收,十万分之 1(0.001%),金额很小
以 10 万本金算一次完整来回(买 + 卖):
- 买入:佣金 25 元
- 卖出:佣金 25 元 + 印花税 50 元 + 过户费 1 元
- 合计约 101 元 ≈ 0.1%
这就是一次买卖的固定成本。看起来不多?往下看。
隐性成本:看不见的,往往更贵
- 买卖价差:你买要买在卖一价,卖要卖在买一价——一来一回先亏一个 spread。小票、冷门票的价差可能 1% 以上
- 滑点:预期价和实际成交价的差。T+1 开盘成交,跳空部分就是滑点——回测按 T+1 开盘价成交,等于已经算了一部分滑点进去
- 冲击成本:单子大了,买入把价格推上去,卖出把价格压下来。小资金几乎无感,大资金绕不开
隐性成本最难量化,也最容易被忽略:回测里"按开盘价成交"看似严谨,实盘的大单在开盘那一刻就把价格推走了。
换手率是放大器
成本是按次数收的,所以换手率决定成本总额:
- 年换手 50 次(大约一周全换一次):50 × 0.1% = 5% 年化成本
- 年换手 200 次:200 × 0.1% = 20% 年化成本
回测年化 20% 的策略:换手 50 次,扣完还剩约 15%;换手 200 次,成本正好等于收益——全白干。换手越高,成本越不是加法,是乘法。
还有一个容易踩的坑:最低 5 元佣金。只买 1000 元,佣金按 5 元收,占比 0.5%,一来回 1%+。小仓位、小资金用大票策略,光佣金就能做死——资金量小时,仓位拆得越碎越亏。
回测该怎么做
- 逐笔扣费:每笔成交扣除佣金、印花税、过户费,用精确计算(我系统里就为了一分钱的舍入误差,把浮点换成了 Decimal)
- 成交价用 T+1 开盘价:把跳空当滑点的一部分算进去
- 最低佣金别忽略:小额交易时 5 元门槛占比很大
- 大单要估冲击成本:策略容量——回测假设的价格,实盘的大单可能根本拿不到
小结
交易成本 = 显性(佣金/印花税/过户费)+ 隐性(价差/滑点/冲击)。单笔约 0.1%,看似不起眼,但换手率把它变成年化几个点到几十个点。回测不算成本的策略,收益是纸面的;逐笔扣费、把滑点算进去,曲线才是真的。
寒蝉 Hancic

