Skip to content

【干货】滑点是什么,到底如何控制? ​

很多人在搭建策略时,都会遇到一个疑惑的问题,滑点是啥,该设置多少值合适?这篇文章用大白话讲清楚:滑点为什么要设置、平台是怎么模拟滑点的、为什么设置了滑点实盘也还有差距、实盘滑点到底受什么影响、策略怎么设计能少吃这个亏,以及怎么用平台的「流动性检查」工具在建池阶段就避开高滑点的标的。

一、为什么回测必须设置滑点 ​

先说一个反直觉的事实:如果回测不算滑点,你看到的收益基本都是虚高的。

原因很简单。回测程序假设你能精确地在某个价格(比如当天收盘价)成交,买多少股都行,一分钱都不多花。但现实里,你按下买入键的那一刻,市场上未必刚好有人愿意以这个价格卖给你——你大概率要多付一点、少收一点,这个“多付少收”的差价就是滑点。

打个比方:你在菜市场看西红柿标价 5 元/斤,等你真去买的时候,老板说“这批卖完了,现在只有 5.2 元的”。这多出来的 0.2 元,就是滑点。

滑点不算,就相当于假设菜市场永远有无限量的 5 元西红柿随便你买——这在真实交易里是不存在的。所以一个负责任的回测系统,必须把滑点算进去,否则算出来的收益率只是一个“理论上限”,会严重误导你对策略真实盈利能力的判断。

零滑点回测与真实成交的差异

二、平台里滑点是怎么模拟的 ​

次方量化的回测引擎里,滑点是按百分比方式模拟的,逻辑很朴素:永远往对你不利的方向调整价格。

  • 买入时:实际成交价 = 信号价 ×(1 + 滑点率),价格被抬高
  • 卖出时:实际成交价 = 信号价 ×(1 − 滑点率),价格被压低

举个例子,某 ETF 收盘价 3.500 元,滑点率设为 0.1%(即 0.001):

  • 买入成交价 = 3.500 × 1.001 ≈ 3.504 元(多花钱)
  • 卖出成交价 = 3.500 × 0.999 ≈ 3.497 元(少收钱)

买卖各吃一次亏,这才是更接近真实交易的样子。

为了让模拟更保守、更贴近“最差情况”,系统在细节上还做了一个小设计:

价格取整方向也不让你占便宜:买入价向上取整到 3 位小数,卖出价向下取整到 3 位小数——哪怕是取整这种小数点后的事,也一律往不利于你的方向靠。

滑点率本身是策略参数里可以自定义的一项,你没手动设置时,系统会给一个默认值(0.1%)兜底,避免“忘了设滑点”导致回测结果虚高。

平台按不利方向计算买卖滑点

三、为什么设置了滑点,实盘还是对不上 ​

这是很多人最困惑的地方:明明回测已经扣了滑点,为什么实盘表现还是和回测有出入?

答案是:回测里的滑点模型,本质上是一个“简化的固定比例假设”,而真实市场里的滑点是动态的、因时因单而异的。 具体差在哪:

  • 回测假设滑点是个固定数字,现实里它每天都在变。 今天可能只有 0.05%,明天市场剧烈波动时可能飙到 1% 甚至更高,回测用的是一个“平均预期”,不是“当天实况”。
  • 回测假设订单永远能全部成交,现实里不一定。 遇到涨停、跌停、停牌,你想买买不到、想卖卖不掉,这在固定比例的滑点模型里是体现不出来的。
  • 回测不知道“有多少人和你抢同一笔单子”。 如果某个策略被很多人同时复制、同时在同一时间点对同一只 ETF 下单,实际的市场冲击会比单个人交易时大得多,这是回测环境里模拟不出来的“拥挤交易”效应。
  • 回测没有“人”的延迟,实盘有。 回测里信号一出立刻按设定价格成交;实盘中,从策略生成信号、你收到提醒、到你真正点下单,中间有时间差,这段时间价格可能已经变了。

所以滑点模拟解决的是“从零滑点的幻觉,回到一个大致合理的估计”,而不是“精确预测每一笔交易的真实成交价”。它能帮你判断策略“经不经打”,但没法替你消灭和实盘之间的所有误差。

固定比例滑点模型与真实市场的差异

四、实盘中的滑点,到底受哪些因素影响 ​

想把回测参数设得更贴近实盘,得先搞清楚真实滑点由什么决定:

  1. 标的的流动性:沪深300、中证500这类主流宽基 ETF,买卖盘挂单密集,滑点通常很小;冷门主题 ETF、LOF、小众品种等,买一卖一之间的价差本身就大,滑点自然更高。
  2. 委托单类型:市价单图快,但成交价不可控,滑点偏大;限价单能锁定价格上限,但有“挂着不成交”的风险。
  3. 单笔交易的金额相对市场成交量的占比:你的买入金额如果占当天成交量比例很小,基本不会影响价格;但如果占比较大,会把盘口上更差的价位也“吃掉”,也就是常说的市场冲击成本。
  4. 交易时段:开盘集合竞价、临近收盘、盘中价格剧烈波动的时段,滑点通常比平稳时段大得多。
  5. 市场整体波动率:大跌大涨的行情里,买卖价差会被拉大,平时很小的滑点在这种时候可能翻几倍。

五、策略怎么设计,能降低实盘滑点的影响 ​

滑点没法完全消除,但可以通过策略设计把它的影响压到最低:

  • 优先选流动性好的标的构建基金池:沪深300、中证500这类主流宽基 ETF 的滑点天然比冷门品种低一个量级,池子里少放几个交易清淡的标的,实盘吃亏就少一分。哪些标的算“交易清淡”,不用凭感觉猜,可以用下一节介绍的「流动性检查」工具一键筛出来。
  • 降低调仓频率:滑点是每笔交易都要交的“过路费”,换手越频繁,滑点侵蚀越明显。如果两个策略收益接近,换手率更低的那个通常在实盘里更抗造。
  • 避开开盘和收盘的极端时段下单:集合竞价和临近收盘时波动大、价差宽,尽量选交易相对平稳的时间段执行信号。
  • 用大盘择时和备选 ETF 机制规避极端行情:市场普跌、个股普遍跑输大盘时,与其硬追一个“矮子里拔将军”的标的吃更大的滑点,不如换成防御性的备选资产,等行情企稳再回来。
  • 回测参数里的滑点设置得比默认值更保守一些:与其等实盘打脸,不如提前用更高的滑点假设(比如把默认的 0.1% 调到 0.3%~0.5%)压力测试一遍策略,看它在更差的成交条件下是不是还能站得住。一个只有在零滑点假设下才盈利的策略,本质上是不适合实盘的。
  • 关注单笔交易金额,避免下单量对该 ETF 而言过大:资金规模大的时候,同一个策略如果集中在少数几个标的上,容易吃到更大的市场冲击成本,适当分散或分批建仓能缓解这个问题。

实盘滑点影响因素与策略应对

六、用「流动性检查」工具,把高滑点标的挡在产品池外 ​

前面反复提到,流动性是影响实盘滑点的头号因素。但一只 ETF 的流动性到底好不好,光看名字很难判断:同样叫“XX主题ETF”,有的每天成交几个亿,有的一天只成交几万块。为此,次方量化在创建策略的流程里提供了 「流动性检查」 工具,帮你在建池阶段就把“买不动、卖不掉”的标的找出来。

功能入口在哪里? ​

在创建动量轮动策略的页面,有两个地方可以打开流动性检查(产品池里至少选 1 只 ETF):

  1. 第一步「选择ETF产品」:产品池区域的 「分析相关性」 按钮旁边,点击 「流动性检查」。
  2. 第二步「配置策略参数」:「ETF产品池」板块右上角同样有 「分析相关性」 和 「流动性检查」 两个按钮,调参数的时候也能随时回头复查池子。

流动性检查工具

检查结果里能看到什么? ​

打开后,平台会列出产品池里每一只 ETF 的以下信息:

指标说明
成立日期成立时间太短的标的,历史成交数据参考价值有限
流通份额基金规模的直观体现,规模太小的 ETF 往往成交也清淡
今日成交量 / 成交额当天开盘以来的累计值,成交量以“手”为单位(1 手 = 100 份)
近 20 日日均成交额最近 20 个交易日平均每天成交多少钱,判定流动性的核心指标
买卖价差实时的(卖一价 − 买一价)÷ 中间价,反映每笔交易的最低滑点成本
流动性等级平台综合判定的结果:良好 / 一般 / 流动性差

结果按风险从高到低排序,流动性差的标的排在最前面;数值偏低的指标会标成红色或黄色,一眼就能看到问题出在哪。在手机上查看时,每只 ETF 会显示成一张卡片,判定原因直接写在卡片底部。

流动性检查结果

平台是怎么判断流动性好坏的? ​

平台看两个指标:

1. 近 20 日日均成交额:衡量“池子有多深”

日均成交额越大,说明每天愿意买卖这只 ETF 的资金越多,你的订单越容易按接近预期的价格成交。统计截止到上一个交易日,避免当天盘中还没交易完的数据把平均值拉低。

2. 买卖价差:每次成交都要交的“最低过路费”

这个指标和滑点的关系最直接。按市价买入时,你是按卖一价成交的,比中间价多付了半个价差;卖出时按买一价成交,又比中间价少收了半个价差。一买一卖,正好付掉一个完整的价差,而且哪怕你只买 1 手也躲不掉。

举个例子:某 ETF 买一价 1.000 元、卖一价 1.003 元,价差约 0.3%。那么在这只 ETF 上完成一次买卖,光价差就要付出约 0.3% 的成本——已经超过了平台默认的单边 0.1% 滑点假设(一买一卖合计 0.2%)。

判定标准如下:

等级近 20 日日均成交额买卖价差
🟢 良好高于 5000 万元低于 0.1%
🟡 一般1000 万 ~ 5000 万元0.1% ~ 0.3%
🔴 流动性差低于 1000 万元高于 0.3%

两项指标取较差的一档作为最终等级。比如某只 ETF 日均成交额有 8000 万,但价差达到 0.35%,依然会被判为“流动性差”。

查出流动性差的标的,该怎么处理? ​

  • 直接移出产品池:检查结果顶部会汇总所有“流动性差”的标的和原因。你可以逐只点击 「移出」,也可以点击 「一键移出」 把它们一次性剔除。移出后,产品池会同步更新。
  • “一般”的标的,保留就要调高滑点:流动性一般的 ETF 不一定要移出,但如果留在池子里,回测时的滑点应该设得更保守。一个简单的参考:单边滑点至少要覆盖价差的一半,再留出一些余量。比如池子里有价差 0.2% 的标的,单边滑点就不应低于 0.1%,稳妥起见可以设到 0.2% 左右,再看策略表现是否站得住。
  • 相关性分析与流动性检查搭配使用:相关性分析回答的是“池子够不够分散”,流动性检查回答的是“池子里的标的买不买得动”。如果相关性分析提示两只 ETF 高度相关、需要二选一,优先保留流动性更好的那一只,走势差不多,实盘成本却能省下不少。
  • 资金量大时,还要看自己的单笔金额:流动性检查只根据标的本身的成交情况判断,没有考虑你的资金规模。如果你单只 ETF 的买入金额比较大,可以自己估算一下它占该 ETF 日均成交额的比例。按经验,占比超过 1% 时就要开始警惕冲击成本,可以考虑换成流动性更好的同类标的,或者分批建仓。
  • 定期复查:ETF 的流动性不是一成不变的。基金规模缩水、题材热度退潮,都会让一只原本活跃的 ETF 变得冷清。策略运行一段时间后,建议回到创建页面重新检查一遍产品池。

结语 ​

滑点这件事,说到底是在提醒你:回测是理想世界的推演,实盘是真实世界的博弈。 把滑点模拟进回测,是为了让这个推演更接近真实;理解实盘滑点的成因,是为了让策略设计更经得起真实世界的检验。一个策略如果只在“完美成交”的假设下才好看,那它离能不能真正赚钱,还差着一层滑点的距离。

蜀ICP备20013273号-1 | 返回主站