一、交易成本模型概述
1.1 交易成本的定义与重要性
交易成本,说白了就是你在市场里做一笔买卖,实际付出的钱和理想状态下付出的钱之间的差额。
我刚开始做量化那会儿,总觉得策略回测跑得漂亮就行。直到有一次,一个年化收益30%的策略,实盘跑下来只剩8%。我当时就懵了——问题出在哪?后来一查,全是交易成本吃掉的。
你想想看,一个策略如果年化收益只有10%,交易成本却占了5%,那实际收益就只剩一半了。这可不是小数目。
交易成本的重要性,我总结了三句话:
- 决定策略生死——高频策略对成本极度敏感,差一个bp可能就从盈利变亏损
- 影响参数优化——成本估计不准,回测里的最优参数到了实盘就是次优甚至劣质
- 制约资金容量——资金越大,冲击成本越高,很多小策略根本跑不了大资金
核心观点:交易成本不是策略的附属品,它是策略设计的一部分。忽略成本,等于闭着眼睛开车。
1.2 交易成本的构成要素
交易成本不是单一的东西。它由四个主要部分构成,我一个个说。
佣金
佣金是最直观的成本。你每下一单,券商就收一笔钱。以前佣金高的时候,万三、万五都很常见。现在竞争激烈,很多券商能给到万一点五甚至更低。
但要注意,佣金不是越低越好。我见过有人为了省佣金,选了个交易系统经常卡顿的券商——结果滑点损失比省下的佣金多十倍。嗯,这里要提醒一下:佣金只是成本的一部分,别因小失大。
滑点
滑点,就是你下单时的预期成交价和实际成交价之间的差距。
举个例子:你看到买一价是10.00元,你下单买入。结果成交价是10.02元。这0.02元就是滑点。
为什么会滑点?因为市场在动。你下单的那一瞬间,可能有人抢在你前面成交了,或者行情突然跳了一下。
我个人习惯在回测里至少加一个tick的滑点。别太乐观,市场不会照顾你。
冲击成本
冲击成本是个有意思的东西。你下单的量越大,对市场价格的冲击就越大。
想象一下:你是个大户,要买100万股。你刚开始买,价格还稳。买到一半,市场发现有人在吃货,价格就开始往上走。等你买完,价格已经涨了不少。这部分额外付出的成本,就是冲击成本。
我在项目中遇到过最夸张的一次,一个策略在回测里表现完美,实盘一跑,冲击成本直接吃掉了一半收益。后来我学乖了,大单必须拆成小单,用算法交易慢慢吃。
延迟成本
延迟成本是最容易被忽视的。你的交易指令从发出到成交,中间有延迟。这期间价格可能已经变了。
尤其是高频交易,延迟就是命。我记得有个朋友做期货高频,为了减少1毫秒的延迟,把服务器搬到了交易所机房隔壁。一个月租金十几万,但他说值——因为那1毫秒能让他多赚几十万。
当然,普通量化交易不用这么夸张。但延迟成本确实存在,而且会随着策略频率的提高而急剧放大。
| 成本类型 | 定义 | 典型范围 | 影响因素 |
|---|---|---|---|
| 佣金 | 券商收取的手续费 | 万1 ~ 万3 | 券商、资金量、品种 |
| 滑点 | 预期价与成交价的差 | 0.5 ~ 2个tick | 流动性、波动率、订单类型 |
| 冲击成本 | 大单对价格的推动 | 0.1% ~ 1%+ | 订单规模、市场深度、时间 |
| 延迟成本 | 指令传输期间的价变 | 0 ~ 多个tick | 网络速度、系统架构、距离 |
1.3 交易成本模型在量化交易中的角色
交易成本模型,就是把上面那些成本量化、公式化,然后塞进你的策略里。
它的角色,我可以用一句话概括:它是连接回测和实盘的桥梁。
没有成本模型,你的回测就是空中楼阁。有了它,你才能知道策略在真实市场里到底能不能赚钱。
具体来说,交易成本模型在量化交易中扮演三个角色:
- 回测校准器——在回测中加入成本模型,让历史表现更接近真实
- 策略筛选器——同样的策略,成本模型不同,结果天差地别。它能帮你筛出真正稳健的策略
- 执行优化器——告诉你什么时候该拆单,什么时候该用市价单,什么时候该用限价单
我的建议:刚开始做量化的人,最容易犯的错误就是成本估计太乐观。我建议你一开始就把成本往高了估。宁可少赚,别亏。
下面这张图,是我自己整理的交易成本模型在量化交易中的整体框架。你看一眼,心里就有数了。
这张图把交易成本模型分成了四个层次:成本构成 → 模型构建 → 模型验证 → 应用场景。我们这门课,就是按照这个框架一步步往下走的。
注意:很多人在构建成本模型时,只关注佣金和滑点,忽略了冲击成本和延迟成本。我曾经也犯过这个错,结果策略在实盘里表现远不如预期。记住,忽略的成本,最终都会变成你的亏损。
好了,第一章就到这里。交易成本模型这个概念,说白了就是让你对市场保持敬畏。别以为回测跑得好就万事大吉,真实市场里的每一分钱,都得算清楚。
公众号:蓝海资料掘金营,微信deep3321