【量化投资从入门到精通 #31】交易成本是回测杀手:手续费、滑点与换手率
2026/8/27 15:12:50 网站建设 项目流程

大多数人的回测代码里,交易是免费的。这一条假设,足以让一个亏钱策略在回测里看起来赚钱。

一、这个方法解决什么投资问题

A 股买卖一次的真实成本大约包括:

项目费率方向
券商佣金万 1.5 ~ 万 3(有最低 5 元)双向
印花税千 1仅卖出
过户费十万分之一双向
滑点万 2 ~ 万 10(视流动性)双向

合计单边万 3 ~ 万 10是合理估计。听起来很小——万 3 就是 0.03%。但如果你一年换手 100 次,就是3%被吃掉。对一个年化 8% 的策略,这是三分之一的利润。

二、核心思想:成本 = 单边费率 × 换手次数

这是全篇唯一的公式,但它决定了一件事:你的策略频率越高,对成本越敏感。

所以评价一个策略,光看收益不够,必须同时看换手次数。两个收益一样的策略,换手 10 次的那个远优于换手 100 次的。

三、实操演示

new=1ifmf[i]>ms[i]else0ifnew!=pos:turns+=1eq[-1]*=(1-cost_bp/10000.0)# 每次换仓扣一次单边成本pos=new

真实输出(2026-08-06,000001 平安银行,250 根 K 线):

参数组换手次数0 费率万 3(佣金+印花税)万 10(含滑点)
MA(3, 10)30−4.53%−5.38%−7.35%
MA(5, 20)21−10.46%−11.02%−12.32%
MA(10, 60)9−13.88%−14.11%−14.65%

四、结果解读

先看成本吃掉了多少

参数组换手万 10 下被吃掉平均每次换手成本
MA(3, 10)30 次2.82 个百分点0.094%
MA(5, 20)21 次1.86 个百分点0.089%
MA(10, 60)9 次0.77 个百分点0.086%

高频参数被吃掉的绝对损耗是低频的 3.7 倍,而且这个差距完全由换手次数决定——每次换手的边际成本几乎相同(0.086%~0.094%)。

这里有个更值得警惕的现象:在零费率下,MA(3,10) 是三组里表现最好的(−4.53%);加上万 10 成本后它仍是最好的(−7.35%),但优势从 9.35 个百分点缩窄到 7.30 个百分点。如果换手再高一档(比如日内策略换手 200 次),这个排名很可能直接翻转。

这就是"回测杀手"的含义:不是成本让你从赚变亏(虽然常常如此),而是成本改变了策略之间的排名。你在零成本回测里选出的"最优策略",在真实费率下可能根本不是最优的。

换算成年化视角:本例 250 根 K 线约等于一年。MA(3,10) 一年换手 30 次,万 10 费率下年损耗 2.82%。如果你追求"每周调仓"(一年约 50 次),损耗约 4.7%;“每日调仓”(一年约 240 次),损耗超过 20%——绝大多数策略的 alpha 撑不住这个量级。

五、常见陷阱

  • 回测不计成本:最常见也最致命,直接导致高频策略被系统性高估。
  • 只算佣金不算滑点:滑点通常比佣金大,尤其在小盘股和大资金上。
  • 忽略印花税只在卖出收:单边计费时容易漏。
  • 用最低 5 元佣金坑小资金:本金 1 万、单笔 5 元佣金 = 万 5,比费率表高一倍。
  • 忘了换手是策略属性:选参数时应把"换手次数"当作和收益同等重要的评价维度。

六、小结 + 下篇预告

成本 = 单边费率 × 换手次数。实测万 10 费率下,换手 30 次吃掉 2.82 个百分点,换手 9 次只吃 0.77 个。回测里必须加成本,并且必须打印换手次数。

下篇 #32:实盘与回测的鸿沟——除了成本,还有哪些东西在偷偷拿走你的收益,哪些其实只是噪声。

免责声明

本文为量化方法教学,标的为示例,费率为通用估算(以你的券商实际费率为准),不构成投资建议,不承诺收益。投资有风险,入市需谨慎。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询