前视偏差:我们故意注入它,量出它值多少

作者 chwoo · 加密货币交易7年。自2026年春起运行自动交易机器人。 · · 更新

前视偏差是指回测用上了那一刻还不存在的信息。这是一份回测所能带有的最危险的缺陷,因为它不会报错, 它会给出一条漂亮的资金曲线。

我们没有去罗列它发生的各种方式,而是把它注入了进去。本站的引擎在信号出现的那根K线 之后 的那根上按开盘价成交,这是诚实的做法。为了这篇文章,我们故意改写了K线数据,让引擎按它不可能知道的价格 成交,然后量出每一个谎言值多少钱。

每一种作弊值多少

BTC一小时线上的三个策略,计入现实成本(单边手续费0.06%与滑点0.02%),杠杆1倍,仓位90%,数据截至 2026年9月21日。唯一变化的是假设的成交价。

策略与成交假设交易数胜率收益最大回撤
RSI 30 — 下一根开盘(诚实)69938.3%-79.2%85.2%
RSI 30 — 信号K线收盘69938.3%-79.2%85.2%
RSI 30 — 信号K线最低62860.8%+13,596.4%15.9%
布林带 — 下一根开盘(诚实)1,17840.1%-82.6%88.5%
布林带 — 信号K线收盘1,17840.1%-82.6%88.5%
布林带 — 信号K线最低1,13949.8%+2,526.2%26.9%
MACD — 下一根开盘(诚实)2,57332.4%-70.2%92.3%
MACD — 信号K线收盘2,57332.4%-70.3%92.3%
MACD — 信号K线最低2,57343.0%+657,482.9%26.3%
同样的规则、同样的数据、三种成交假设。诚实地亏钱的策略,在乐观成交下全都变得辉煌。

在回测器里打开本文测量的那个策略 →

一旦把成交挪到信号K线的最低价,三个策略全部从亏损翻成盈利,MACD那个给出657,482.9%——这个数字该当成错误信息来读,而不是结果。没人会真信着把它发出去。要紧的是 跟着它一起出现的那些东西。

看回撤那一列。诚实的MACD回撤是92.3%,作弊版本是 26.3%。胜率也从32.4%涨到43.0%。前视偏差不只是把收益吹大,它还让其他每一项统计同时显得健康。 所以它能通过审阅:一条回撤26%、胜率43%的曲线,看起来根本不像有bug。

人人都在警告的那个错误,在这里几乎无害

接下来是出人意料的部分。每一组中间那一行就是那个经典错误:用K线的收盘价算出指标,然后假设自己就在那个 收盘价上买入。每一篇回测入门都在警告它。在我们的测量里,它在三个策略上最多只把结果改变了 0.1个百分点。

原因是结构性的。加密市场一天24小时不间断,没有休市,所以一根K线的收盘价和下一根的开盘价几乎是同一个 数字,偏差没有可以栖身的跳空。而在收盘价与次日开盘价可能相差几个百分点的股票市场上,同样的错误是真的 危险。

之所以要把这一点说清楚,是因为流传的建议是从股票那边搬过来的,在加密市场里被反复重复却没人去核对。收盘价还是下一根开盘价,不是你的加密回测在撒谎的地方。 在下一根K线成交依然是正确的做法,本站也是这么做的,但只修这一处并不会让回测变诚实。

伤害真正放大的地方

把乐观成交再次用在同一条RSI规则上,只改周期。

周期诚实信号K线收盘信号K线最低虚增
15分钟-91.9%-92.1%+172,130.8%172,222.7个点
1小时-79.2%-79.2%+13,596.4%13,675.6个点
4小时-41.9%-41.9%+1,988.3%2,030.2个点
1天-13.1%-13.1%+78.0%91.1个点
15分钟K线的振幅最小,虚增却在最小的周期上最大。

方向和直觉相反。日线的振幅比15分钟线宽得多,你会以为在日线上作弊更值钱。实际上是 91.1个点对172,222.7个点。

解释不是K线大小,而是复利。每笔交易上一点点虚假的优势,在15分钟策略多得多的交易数上不断重复,就被乘成 一个荒唐的总数。前视偏差恰恰在策略交易最频繁的地方最危险,而那也正是新手起步的地方。

测量消不掉的那点含糊

有一种情况没有干净的答案。如果一根K线的最高价碰到了你的止盈,最低价碰到了你的止损,OHLC数据说不出哪个 先发生。回测必须做出选择,而选那个有利的,就是换了个名字的前视偏差。

本引擎总是把这样的K线判为 止损,也就是悲观的读法。它会让结果平均而言比现实略差一点,而我们宁愿误差偏向这一边。反过来判的工具,恰恰会 在真实成交最糟糕的高波动K线上显示出更好的数字。

怎样在回测里核查这件事

  • 对「高胜率配低回撤」保持怀疑。 在第一张表里,作弊把MACD的回撤从92.3%降到26.3%,同时抬高了胜率。这个组合就是特征。
  • 问清楚在哪一根K线上成交。 答案应该是信号之后的那一根。在加密市场里这没有你被告知的那么要紧,但一个答不上这个问题的工具,还会 有别的问题。
  • 问清楚同一根K线上止盈与止损相撞时怎么处理。 如果答案是有利的那一边,或者根本没有答案,那么结果就乐观了一个未知的幅度。
  • 最怀疑高频的结果。 周期那张表显示,交易越多的地方,偏差的复利效应越猛。
  • 确认指标只用已收盘的K线。 一个会重绘自己历史数值的指标,能通过这张清单上其他所有的检查。

本站的引擎与一份独立编写的Python实现逐笔交易对照验证过,所以我们才知道上表里那一列「诚实」是真的诚实。 那套交叉验证写在方法论页面上。

一份收益看起来不可能的回测,通常真的就是不可能,而原因通常就是这个。第一张表里的策略,正确跑出来是亏 70%到83%。同样的规则,只换一个价格假设,就能做出几千个百分点的收益,回撤只剩四分之一,胜率还更好。 除此之外,什么都没变。

参考资料

阅读很好,实测更好。用币安7年数据免费运行一次真实回测。

试用回测器