回测赚 20%,加入真实滑点后还剩多少?
同样的滑点,对低频策略可能只是少赚一点,对高换手策略却可能吃掉整段回测利润。用敏感性测试算清盈亏平衡滑点。
先说答案:在下面这组例子里,回测赚 20%,单边滑点到 0.05% 后只剩 10%;到 0.10%,利润直接归零。
回测里的市场特别有礼貌:信号一来,立刻按你看见的价格成交。真实市场没这么讲武德。你看见 100,点下买入,成交可能已经是 100.05;卖出时再来一下。
一次差一点,看着没啥。来回 100 轮以后,那个“小数点误差”能把整段利润啃干净。
滑点和手续费不是一回事
手续费是平台按规则收取的显性费用;滑点是预期成交价与实际成交价之间的差异。点差则是同一时刻最佳买价和最佳卖价之间的距离。
Coinbase 的官方解释指出,滑点是订单实际执行价格与预期价格出现偏差;流动性较低或交易活动较少时,滑点可能更高。Understanding slippage and spread
对买入而言,实际成交价高于预期是不利滑点;对卖出而言,实际成交价低于预期是不利滑点。
说人话:你眼睛看见一个价,手点下去,真正成交又是另一个价。中间差的那一点,就是市场趁你眨眼时顺走的。

简化估算就是:一笔滑点损失,大约等于成交金额乘以不利滑点率;把每次“就差一点”全加起来,就是总滑点损失。
这个公式适合做第一轮压力测试,但不能完整替代订单簿、部分成交和市场冲击模型。
单边只滑 0.05%,为什么可能毁掉策略?
假设一个教学场景:
- 初始资金 10,000 USDT;
- 每次完整买卖的名义金额为 10,000 USDT;
- 一年完成 100 轮买卖,共 200 次单边成交;
- 手续费暂时设为 0,只单独观察滑点;
- 回测毛利润为 2,000 USDT,即初始资金的 20%;
- 每次成交金额固定,不做复利。
| 单边滑点 | 100 轮成本 | 最后剩下 |
|---|---|---|
| 0.01% | 200 USDT | 1,800 USDT |
| 0.05% | 1,000 USDT | 1,000 USDT |
| 0.10% | 2,000 USDT | 0 USDT |
| 0.20% | 4,000 USDT | 倒亏 2,000 USDT |
看到没有:单边滑点到 0.05%,利润先砍一半;到 0.10%,回测里那 20% 的收益,实盘还没来得及发朋友圈就没了。
20% 回测利润,滑几次就没了?
单边只滑 0.05%,来回 100 轮,就能吃掉一半毛利润。

这不是市场平均,也不是对任何策略的预测。它只说明:成本看的是累计成交额,回测标题看的却常常是初始资金收益率,两者不在一个口径上。
为什么低周期策略特别脆?
因为它们通常同时具备三件事:
- 单笔预期优势薄;
- 交易次数多;
- 更依赖及时成交。
假设策略每轮预期毛优势只有 0.15%,但买入和卖出分别承受 0.05% 不利滑点,滑点已经消耗 0.10%。如果再加入双边手续费,剩余优势可能非常有限。
反过来,低频策略每笔目标幅度更大,滑点占比可能较低。但这不是说低频一定更好;持仓风险、跳空、资金占用和错过机会都可能更高。
回测应该填一个固定滑点吗?
固定滑点比完全不填好,但只填一个数字仍然很容易自欺欺人。
滑点可能受以下因素影响:
- 交易对流动性;
- 下单金额相对于盘口深度的大小;
- 市价单或限价单;
- 波动率和新闻时段;
- 信号到订单、订单到成交的延迟;
- 部分成交与撤单重下;
- 多个用户或策略是否同时执行相同信号。
一个 Reddit 用户描述过典型落差:回测假设按最后成交价立即成交,实盘却受到买卖价差、延迟和高波动期 API 变慢影响;在其个人案例中,加入更高滑点假设后,回测结果显著下降。这只能作为用户痛点样本,不能代表普遍幅度。Reddit discussion
更诚实的做法:跑一条滑点压力曲线
与其争论“滑点应该填多少”,不如同时测试 0、0.01%、0.03%、0.05%、0.10% 和 0.20% 多档情景。
然后观察:
- 净收益何时降到零;
- 最大回撤何时超过容忍范围;
- 哪类交易贡献了最多滑点损失;
- 减少交易频率后,收益和成本分别下降多少;
- 策略是否只在“几乎零滑点”时才成立。
最后一条尤其重要。如果一个策略只有在完美成交条件下才赚钱,它未必是策略,可能只是回测软件给你发的一张体验券。
最强反对意见:滑点也可能对你有利
是的,实际成交有时可能优于预期价格,尤其是使用限价单或市场朝有利方向变化时。因此把每笔成交都设置为同样的不利滑点可能过于悲观。
但另一面是,简单平均也可能掩盖“坏时候滑得更多”:市场快速波动、流动性下降时,策略最需要执行,成交偏差却可能最大。
合理做法不是永远假设最坏,也不是默认零滑点,而是:
- 用实盘或模拟成交日志估计分布;
- 按市场状态、订单类型和交易规模分组;
- 同时报告中性与不利情景;
- 保留极端压力测试。

怎样计算自己的滑点?
至少记录:
- 信号时间;
- 下单时间;
- 预期价格;
- 实际平均成交价;
- 买卖方向;
- 成交数量;
- 首次成交和完全成交时间;
- 当时点差与可用盘口深度。
买入的不利滑点率,可以近似看成“实际成交价减去预期价格,再除以预期价格”。
卖出方向相反。之后按成交金额加权,而不是把一笔 50 USDT 小单和一笔 50,000 USDT 大单简单平均。
回测赚的钱,实盘还能剩多少?
真正危险的不是滑点高,而是你不知道它会吃掉多少利润。
EdgePilot 可以把回测结果与真实成交数据放在一起,直接算出:利润被吃掉了多少、损失集中在哪些交易,以及滑点升到多少时策略会开始亏钱。
如果回测赚 20%,实盘只剩 8%,你需要的不是一句“平均滑点 0.06%”,而是一个明确结论:
六成利润消失在低流动性时段和高频小单里。避开这些时段、减少无效交易,否则这套策略不适合直接上线。

再测试 0.02%、0.05% 和 0.10% 三档滑点,就能提前找到策略的盈亏临界点。别等实盘把答案算给你,那时交的是真钱。
以上为 EdgePilot 规划中的实盘差距诊断能力,具体以上线版本为准。
FAQ
滑点是不是交易所偷偷收费?
不是同一概念。手续费是明确收费规则;滑点是预期价格与实际成交价格的偏差,可能来自波动、流动性、订单规模和执行延迟。
限价单可以完全避免滑点吗?
限价单可以限制最差成交价格,但可能不成交、部分成交或错过行情,不能免费解决所有执行问题。
回测里应该设置多少滑点?
没有适用于所有策略的固定答案。应根据交易对、订单规模、订单类型和真实成交记录设置多档情景。
手续费和滑点能不能直接加在一起?
可以在统一成本模型中分别计算后汇总,但要确认点差、成交价和平台费用没有被重复计算。
最后一句
别再问“回测赚了多少”,先问:滑点填到多少,这条曲线会死?
今天就跑 0、0.01%、0.05%、0.10% 四档。要是加到 0.05% 就腰斩,这个策略下一步不是上线,而是继续审。
本文由 EdgePilot 内容团队制作,用于研究与教育,不构成投资建议。示例为静态情景,不代表真实账户、市场平均或未来表现。
来源
- Coinbase:滑点、点差与流动性的解释
- Reddit:回测与实盘滑点落差案例,仅作为痛点和个案来源。

