前置条件
- 你已有一个通过回测验证、收益曲线"好看"的策略源码或参数记录。
- 你已用该策略跑过至少一周的实盘或模拟盘,且发现收益差距明显。
回测收益很好、实盘失效——问题通常不在策略本身,而在回测时默认的"完美假设"在实盘中根本不存在。
回测是在模拟一个"理想世界"里的交易,而实盘是在真实世界里执行。两者的差距,是量化交易中最核心的痛点。以下5个偏差,按从"数据"到"执行"的顺序逐一排查,比对着曲线找原因更有效率。
偏差1:数据里藏着"未来信息"
[做什么]:检查回测中是否使用了当时根本不可得的价格或事件信息。
[怎么做]:查看策略中是否使用当根K线的最高价、最低价或收盘价作为触发条件。
情况 A:策略用整根K线的最高/最低价判断突破 → 在回测中,价格已完整呈现,信号看起来完美触发。但在实盘中,最高价只有K线走完后才知道,交易者在当时根本看不到。
情况 B:策略用前复权价格做回测 → 前复权价格用未来的分红、送转信息调整了历史数据,会在除权日产生虚假缺口,导致技术指标发出错误信号。正确做法是使用后复权价格或原始价格加事件标记。
完成标准:逐条核对你策略中所有用到"价格"的地方,确认每个数据点在触发时确实"已经存在"。
高危风险:决策时点泄露(Decision-Time Leakage)是最隐蔽的数据偏差——即信号构建时用了决策时刻之后的信息,但回测系统不会主动提醒你。研究表明,即使训练集和测试集严格按时间划分,执行时点偏差(如用当日收盘信息生成信号却在当日开盘执行)仍会显著高估收益。你的回测收益,可能一部分来自"本该不知道的事"。
偏差2:成交价格"太完美"
[做什么]:检查回测是否假设"只要价格触及就能成交"。
[怎么做]:查看回测报告中每一笔交易的"成交价"与当根K线的"开盘价"、"收盘价"的关系。
情况 A:成交价 = K线收盘价或最高/最低价 → 回测假定了你在最优价格成交。实盘中,限价单可能因为挂单排队不成交,市价单会吃掉盘口产生滑点。
情况 B:订单规模较大 → 回测没有模拟市场冲击(Market Impact),默认盘口有无限深度。实盘中,大额订单会推高买入价或压低卖出价。
完成标准:在回测设置中开启"滑点"和"手续费"模型,将单笔滑点至少设为0.05%-0.1%后再跑一次,看收益是否还成立。
偏差3:时间颗粒度不对齐
[做什么]:检查回测和实盘的数据推送频率是否一致。
[怎么做]:查看回测中数据推送的时间精度(秒级/毫秒级)与实盘接收数据的实际精度。
情况 A:策略依赖"特定时间点"触发(如"时间等于09:30:15则开仓") → 回测中时间点完美命中。实盘中,数据到达可能有微秒级偏差,条件可能永远不成立。
情况 B:回测用的是日线或小时线,但实盘接收的是tick级别数据 → 回测中每根K线的"收盘"是确定的。实盘中,K线何时结束、是否有延迟,都会影响指标计算和信号触发。
完成标准:检查策略中所有与时间相关的条件,将"等于"改为"区间",或使用平台提供的"计划事件"功能替代即时判断。
偏差4:参数过拟合——"参数山峰"而非"参数平原"
[做什么]:测试策略参数是否只在某个"尖峰"有效。
[怎么做]:选取策略核心参数(如均线周期、止损距离),在小范围内(±30%)逐一调整后回测,观察收益曲线的变化。
情况 A:参数稍微偏移,收益大幅下降 → 属于"参数山峰",说明策略捕捉的是数据噪声而非真实市场规律,是过拟合的典型表现。
情况 B:参数在较宽范围内(≥30%跨度)收益表现稳定 → 属于"参数平原",说明策略逻辑对市场变化具有鲁棒性,更适合实盘运行。
完成标准:绘制参数-收益热力图,确认你的策略存在"参数平原"而非"参数尖峰"。
偏差5:执行端差异——限价单的"触及不等于成交"
[做什么]:检查策略是否过度依赖限价单在"触及价格"时成交。
[怎么做]:查看策略中所有限价单成交记录,是否出现"价格触及后立即成交"的情况。
情况 A:限价单在价格触及后100%成交 → 回测假设盘口总有对手盘。实盘中,限价单进入订单簿排队,价格触及不代表你的单子排在最前面。
情况 B:策略频繁使用限价单且以最小价差交易 → 实盘中极小的价差交易对手不足,成交概率极低。回测中看起来完美的进出场,实盘中可能一单都成交不了。
完成标准:在回测中开启"限价单滑点"模型,确保价格至少要穿透限价0.01%以上才视为成交,模拟真实排队情况。
操作完成的校验方式
用修正后的回测设置重新跑一次完整历史数据。如果新的收益曲线仍为正,但比原来的"漂亮曲线"低了20%-30%,说明你找到了真实的策略收益水平。如果修正后收益直接归零或转负,说明原来的策略本身不成立。
下一步的衔接动作
将修正后的策略用小资金(不超过总资金的5%)实盘运行2-4周,记录每一笔实际成交价与回测模拟价的差距,形成"滑点记录表"。这个差值可以作为后续回测的固定滑点参数,让回测越来越接近实盘。核验渠道:交易所订单历史中的"成交均价"与回测报告中的"模拟成交价"逐笔对比。



