1. 交易成本概览:为什么交易成本是策略的隐形杀手?
做量化交易这些年,我见过太多人把精力全花在找alpha上。
回测曲线漂亮得不行,年化50%,夏普3.0。一上实盘,直接变成年化5%,还亏手续费。
问题出在哪?
说白了,就是没把交易成本当回事。
1.1 交易成本到底是什么?
交易成本不只是你付给券商的那点佣金。
它是个组合拳,包含好几层。我习惯把它们分成三类:
- 显性成本:佣金、印花税、过户费。这些是明码标价的,回测里最容易算。
- 隐性成本:滑点、市场冲击、延迟成本。这些才是真正的隐形杀手。
- 机会成本:没成交的订单、错过的行情。嗯,这个最难量化。
你想想看,一个高频策略,每天交易几百次。每次滑点一个tick,累积下来就是天文数字。
我在项目中遇到过一位朋友,他的策略回测年化40%,实盘只有8%。一查,光滑点就吃掉了30%的收益。
核心观点:交易成本不是小数目,它是策略收益的最大敌人。忽略它,你的回测就是自欺欺人。
1.2 为什么说它是隐形杀手?
原因很简单——它不会直接告诉你亏了。
你看到的是成交价,但没看到的是「本可以更好的成交价」。
举个例子:
- 你挂单买入,成交价10.00元。你觉得挺好。
- 但如果你用限价单,可能9.98元就能买到。
- 这0.02元的差价,就是你的隐性成本。
一次两次无所谓。但一年交易10万次呢?
0.02元 × 10万次 = 2000元。对于小资金来说,这已经是一笔不小的开销了。
我曾经帮一个团队做策略优化。他们的策略逻辑没问题,但回测时没算滑点。实盘一个月,亏了5%。
我让他们加上0.1%的滑点成本重新回测,结果策略直接变成亏损。
你说,这成本是不是隐形杀手?
1.3 交易成本的构成详解
咱们来拆开看看,每一块到底长什么样。
| 成本类型 | 具体项目 | 典型范围 | 影响程度 |
|---|---|---|---|
| 显性成本 | 佣金、印花税、过户费 | 0.01% - 0.1% | 低(但稳定) |
| 隐性成本 | 滑点、市场冲击 | 0.05% - 0.5% | 高(波动大) |
| 机会成本 | 未成交、延迟 | 难以量化 | 极高(取决于策略) |
你看,隐性成本的范围比显性成本大得多。而且它不稳定,行情好的时候可能很小,行情差的时候能吃掉你全部利润。
我的建议:做回测时,至少按0.1%的滑点来算。如果你做的是高频策略,建议按0.2% - 0.3%来算。别怕高估,低估才是灾难。
1.4 一个简单的成本计算示例
咱们用Python来算一笔账。
# 假设你有一个策略,每天交易10次
# 每次交易100股,股价100元
# 佣金万2.5,印花税千1,滑点0.1%
commission_rate = 0.00025 # 万2.5
stamp_tax_rate = 0.001 # 千1
slippage_rate = 0.001 # 0.1%
price = 100
shares = 100
trades_per_day = 10
trading_days = 252
# 单次交易成本
commission = price * shares * commission_rate * 2 # 买卖都收
stamp_tax = price * shares * stamp_tax_rate # 只卖时收
slippage = price * shares * slippage_rate * 2 # 买卖都有滑点
total_cost_per_trade = commission + stamp_tax + slippage
annual_cost = total_cost_per_trade * trades_per_day * trading_days
print(f"单次交易成本: {total_cost_per_trade:.2f}元")
print(f"年化交易成本: {annual_cost:.2f}元")
print(f"年化成本占比: {annual_cost / (price * shares * trades_per_day * trading_days) * 100:.2f}%")
跑一下这个代码,你会发现年化成本占比可能高达5% - 10%。
如果你的策略年化收益只有15%,那交易成本就吃掉了你三分之一到三分之二的利润。
这还不算机会成本。
注意:上面的计算假设每次交易都能按预期价格成交。实际上,大单交易时市场冲击会更大。我曾经见过一个策略,因为单笔交易量太大,滑点直接到了0.5%。那年的收益,全给市场冲击买单了。
1.5 交易成本对策略的影响
不同类型的策略,对交易成本的敏感度完全不同。
- 高频策略:交易次数多,单笔利润薄。交易成本是生死线。0.01%的差异就能决定策略是否盈利。
- 中频策略:每天交易几次到几十次。交易成本影响显著,但还有优化空间。
- 低频策略:每月交易几次。交易成本占比低,但也不能忽视。
我个人的经验是:
如果你做高频,交易成本建模就是你的核心工作。没有它,你的策略就是空中楼阁。
如果你做中低频,至少要把滑点和佣金算进去。别偷懒。
1.6 知识体系总览
下面这张图,是我对交易成本建模的整体理解。你可以把它当作本章的思维导图。
这张图把交易成本拆成了三大块。每一块都有它的特点和处理方式。
在后面的章节里,我会逐一深入讲解每一块的成本建模方法。
1.7 小结
交易成本不是小事。它是策略从回测到实盘的最大鸿沟。
我见过太多人,回测时收益翻倍,实盘时亏得底裤都不剩。原因只有一个——没算交易成本。
所以,从今天开始,请把交易成本当作策略的一部分来对待。
它不是你策略的敌人,而是你必须尊重的规则。
一句话总结:交易成本建模,是量化交易中最容易被忽视,但最重要的环节。没有之一。