本文观点仅供参考不构成任何投资建议。投资有风险入市需谨慎。最近比较忙发文比较少了今天补发一篇。这篇我们来聊聊交易中不可避免的一笔成本滑点。一、什么是滑点我相信很多做过量化实盘的人都会有这样的一种经历你写了一个策略回测跑出来年化30%夏普比2.5看着曲线心花怒放。结果一上实盘收益直接打了个七八折。你怀疑代码写错了但反复检查逻辑并没问题。那到底是哪个环节出问题了其实如果策略本身没有过拟合或有未来函数的话那么最大可能就是被滑点吃掉了。滑点说白了就是——你想成交的价格和实际成交的价格之间的差。你以为10块钱能买到结果成交价10.05你以为20块能卖掉结果卖在19.92。这中间差出来的几毛几分就是滑点。听起来不多但量化交易动辄一年几百笔甚至几千笔每笔差一点累积下来就是一笔不小的账。二、有哪些类型的滑点正向滑点 vs 负向滑点其实滑点不一定都是坏事因为有买贵的时候就有买便宜的时候。所以滑点也分为正向滑点和负向滑点。负向滑点成交价比你预期的差。你想10块买结果10.05成交多花了5分钱。这是最常见的、也是最让你头疼的。正向滑点成交价比你预期的还好。你想10块买结果下单瞬间有人砸盘你9.97就买到了。这种事有但别指望。大多数时候我们讨论滑点说的都是负向滑点。不同订单类型的滑点市价单滑点市价单就是不管什么价给我成交。流动性好的时候还好流动性差的时候你的大单可能一路吃掉好几个档位成交均价远差于你看到的价格。止损单滑点止损单触发后本质也是市价单。暴跌的时候你的止损挂在10块等轮到你成交可能已经是9.5了。外汇市场里这种情况特别常见俗称止损滑点有时候能滑出你想象不到的距离。限价单滑点限价单本身不会产生负向滑点——你挂10块买最差也就10块成交。但问题是价格到不了你的限价单子就不成交。该买没买到、该卖没卖掉错过行情这其实也是一种隐形成本。三、滑点是怎么产生的滑点的根源是从你决定交易到交易真正完成之间价格已经变了。这个变化由几个因素共同决定1. 市场波动价格在动你的订单却需要时间到达交易所。就算只有几十毫秒的延迟在剧烈波动的时候也够价格跑出一段距离了。开盘、收盘、突发新闻这些时段价格跳得最快滑点也最大。2. 流动性不足盘口上挂着买一到买五、卖一到卖五每个价位的量是有限的。你的单子如果比一档的量大就得继续往下吃。比如卖一10.00挂了500股你要买2000股那剩下的1500股就得从10.01、10.02一路吃上去均价自然高于10.00。小盘股、冷门ETF、某些期货合约的远月合约都是流动性的重灾区。3. 执行延迟你的信号从策略服务器发出经过网络传输到达券商服务器再送到交易所撮合中间每一环节都有延迟。如果你用的是普通家庭网络、服务器离交易所又远延迟可能达到几百毫秒甚至更多。这个时间内价格已经不在原地了。4. 重大事件冲击非农数据、央行利率决议、突发地缘事件……这些时刻价格可能瞬间跳空几十个点你的订单根本来不及在原来的价位成交。做外汇和期货的人对这种新闻滑点一定不陌生。四、滑点对量化策略的影响有多大滑点对策略的实际影响这里要分两层说。回测里的隐形漏洞很多人回测的时候直接用收盘价当作成交价或者设一个固定的滑点比如0.1%。这太粗糙了。真实情况是滑点不是固定的——流动性好的时候可能只有1-2个基点流动性差的时候可能高达几十个基点。如果你回测不考虑这一点实盘的收益率大概率会低于回测这就是所谓的回测与实盘的鸿沟。根据上海证券交易所发布的《市场质量报告2023》在A股市场交易10万元股票价格冲击指数约15-16个基点交易25万元约23-24个基点交易90万元约50-52个基点注意这是冲击成本滑点包含其中。金额越大、流动性越差成本越高而且是非线性增长的。谁更怕滑点高频和短线策略最怕。一年换手100倍每次滑0.1%一年光滑点就能吃掉10%的收益。这类策略对执行质量极度敏感滑点控制就是命。比如日频的股票策略什么开盘买入之类的策略因为刚开盘波动很大所以一般滑点也很大。中低频策略相对好一些。一年换手10倍每次滑0.1%总影响1%还能接受。但也不能忽视——尤其是规模大了以后。五、滑点和冲击成本是一回事吗不是但很多人搞混了。滑点是你下单那一刻的价格和你实际成交价之间的差。它是即时发生的。冲击成本的范围更大。它包括短期冲击你的大单把价格推走了这部分和滑点有重叠长期冲击你买完之后市场价格被你的交易永久性地推高了一截过一段时间也不会完全回到原来的水平所以冲击成本包含滑点但比滑点更广。你做交易的时候损失的不只是当下那一点差价还有你把市场搅动之后留下的痕迹。六、怎么降低滑点如果你真正理解了什么是滑点就应该知道对于滑点是没法完全消除的但我们可以尝试降低滑点。比如从以下几个层面来考虑交易层面能用限价单就别用市价单。限价单至少保证你不以离谱的价格成交代价是可能错过一些机会但错过总比亏好。挑流动性好的时段交易。股票盘中比开盘收盘稳外汇在伦敦和纽约市场重叠时段流动性最好加密货币尽量在工作日交易。重大数据发布前后别下单。非农、CPI、利率决议……这些时刻的滑点能让你怀疑人生。要么提前平仓要么等尘埃落定再动手。执行层面拆单算法。大单拆成小单分批成交减少对盘口的冲击。常见的有VWAP按成交量加权拆单和TWAP按时间均匀拆单。很多券商的算法交易接口都支持。优化订单路由。选择支持DMA直接市场准入或ECN撮合的券商让订单直接对接流动性池减少中间环节。降低延迟。策略服务器用VPS或托管机房离交易所越近越好。对高频策略来说几毫秒的差距就是真金白银。策略层面回测里合理设置滑点。别偷懒设个固定0.1%就完事按标的流动性、订单大小、时段分别建模。保守一点比乐观一点好。换手率和规模要匹配。规模大了就得降换手这是行业共识。国内主流量化私募目前以中周期策略年换手30-50倍为主短周期策略占比在下降。规模越大持仓周期越长这不是保守是被滑点逼的。七、说到底滑点是量化交易的隐形税——你每做一笔交易它就抽一点。你无法让它消失但你可以认清它知道滑点从哪来、有多大量化它在回测和实盘中用数据衡量它控制它用对的订单类型、对的执行方式、对的策略频率来管理它最后一句大实话如果一个策略在考虑了合理滑点之后还能赚钱那它大概率是真的能赚钱。如果不考虑滑点才好看那这个策略就是给回测看的不是给账户看的。今天就讲到这里如果觉得这篇文章对你有启发想学习更多Python量化交易技巧欢迎点赞、转发关注