3. 滑点本质与来源

在交易成本建模中,佣金是“明码标价”的显性成本,而滑点则是“藏在成交价里”的隐性成本。很多策略回测时用收盘价或信号价成交,实盘却总是差那么一点,这一点往往就是滑点。要把它建模准确,先得弄清它到底是什么、从哪里来。

滑点的本质:预期成交价与实际成交价之差

滑点(Slippage)定义为订单预期成交价格与实际成交价格之间的差额。这里必须先约定方向参照系,否则正负号会混乱。本课程统一采用“对交易者不利为正成本”的约定:

  • 买入:实际成交价高于预期价,差额为正滑点成本;低于预期价则为负成本(有利)。
  • 卖出:实际成交价低于预期价,差额为正滑点成本;高于预期价则为负成本(有利)。

用公式表达,以每股计:买入滑点成本 = 实际成交价 − 预期价;卖出滑点成本 = 预期价 − 实际成交价。再乘以成交数量,就得到该笔交易的滑点金额。例如预期以 10.00 元买入 1000 股,实际均价 10.03 元,则滑点成本为 0.03 × 1000 = 30 元。这个 30 元会直接侵蚀策略毛利,且不体现在佣金账单上,容易被忽略。

滑点的三大来源

滑点不是单一原因造成的,工程上通常拆成三个来源,它们可以叠加,也可以相互抵消。

第一,买卖价差(Bid-Ask Spread)。这是最基础的来源。市场上买一价永远低于卖一价,你用市价单买入时,天然要“跨过”价差,从卖一价成交。价差越大、流动性越差,这部分成本越刚性。对于流动性好的大盘股,价差可能只有 1 个最小变动价位;对于小盘股或冷门品种,价差可能是好几个价位。

第二,市场冲击(Market Impact)。当你的订单量相对于盘口挂单量较大时,吃穿一档后继续吃下一档,成交均价被自己“推高”(买入)或“压低”(卖出)。冲击成本与订单规模、盘口深度、下单速度强相关。同样买 10 万元,分 100 笔小单和 1 笔大单,冲击成本差异巨大。

第三,延迟(Latency)。从策略产生信号、发出订单、到达交易所、撮合成交,中间存在毫秒到秒级的时间差。这段时间里价格可能已经变化,尤其在高波动时段,延迟会让成交价偏离信号价。延迟滑点对高频策略影响显著,对低频策略相对次要,但在跳空或新闻事件时同样致命。

滑点来源与买入成交价偏移示意 价格 预期价 10.00 卖一价 10.01 冲击后均价 10.03 延迟后成交 10.05 价差成本 +0.01 冲击成本 +0.02 延迟成本 +0.02 总滑点成本 10.05 − 10.00 = 0.05

上图以一笔买入为例,把三个来源叠加到同一条价格轴上:预期价 10.00,跨价差到 10.01,冲击把均价推到 10.03,延迟又让最终成交落在 10.05,总滑点 0.05 元/股。实际中三者未必同向叠加,也可能部分抵消,但建模时应分别估计再合成,而不是笼统给一个“滑点率”。

正滑点与负滑点:不要只假设成本

按上面的参照约定,正滑点是成交价对交易者不利,构成成本;负滑点是成交价反而优于预期,形成收益。负滑点常见于限价单被动成交、市场短暂回撤、或大单拆分后部分成交价更优的情形。回测中如果一律只扣正滑点,会低估策略在震荡市中的实际表现;但若把负滑点当成稳定收益来源,又会高估策略。稳妥做法是:成本模型以正滑点为主,负滑点作为波动项处理,在敏感性分析中观察其对收益的影响区间。

滑点对交易策略的影响

滑点对不同策略的杀伤力差异很大。高换手策略每笔都要跨价差、承受冲击,滑点会按交易频次线性放大;低频策略单笔滑点占比小,但在大资金建仓时冲击成本可能成为主要成本。更隐蔽的影响是改变策略的有效性判断:一个回测年化 15%、换手率很高的策略,若每笔滑点从 0.02% 上升到 0.08%,收益可能被完全吃掉甚至转负。因此滑点建模不是“加个系数”,而是决定策略是否值得上线的关键变量。

建模建议:把滑点拆成“固定价差项 + 规模冲击项 + 波动延迟项”三部分分别估计。价差项可用历史盘口买卖价差均值;冲击项可用订单量占日均成交量的比例做分段映射;延迟项可用信号价与成交价的滚动偏差估计。三者相加后再做多档敏感性测试。