首页 功能特性 性能表现 交易记录 指南 学院 免费指标 信号 QuantumBot 定价 关于我们 联系我们
EN DE ES FR PT ZH AR
登录 注册

前视偏差

作者 ILY · 审核 Quant · 发布于

◆ 简短回答

前视偏差是指某项计算使用了在当时尚不可得的信息。常见来源是在更高时间周期的 K线收盘之前就请求了其数值。它会产生无法在实盘中复现的信号和回测结果。在 Pine Script 中,带 lookahead_on 的 request.security 会泄露未来数据;lookahead_off 只返回最后一根已完成的更高时间周期 K线。

又称:前瞻偏差、未来数据泄露、lookahead_on
不要混淆:重绘
Quantum Algo 前视偏差示意图:前视偏差是指某项计算使用了在当时尚不可得的信息,最常见的是在该时间周期 K线收盘之前就请求的更高时间周期数值,由此产生的信号和回测结果无法在实盘中复现。
Quantum Algo 前视偏差示意图:前视偏差是指某项计算使用了在当时尚不可得的信息,最常见的是在该时间周期 K线收盘之前就请求的更高时间周期数值,由此产生的信号和回测结果无法在实盘中复现。

含义

前视偏差是回测者的“原罪”:让过去看到了未来。在图表分析中,它主要通过更高时间周期的数据请求出现。如果 15 分钟图表请求日线收盘价,而在当天仍在交易时就拿到了当天的日线收盘价,那么每一根 15 分钟 K线都“知道”当天会在哪里收盘。基于此构建的信号在历史上看似料事如神,在实时行情中却会失效。

在 Pine Script 中,这一开关是明确的:`request.security(..., lookahead=barmerge.lookahead_on)` 会泄露未来数据;`lookahead_off` 只返回最后一根已完成的更高时间周期 K线。其他来源还包括:以 K线的最高价或最低价作为入场价(在 K线收盘前您不可能知道最高价),以及把枢轴点画在枢轴 K线上而非确认时的位置。

前视是相当大一部分重绘现象背后的机制,也是那些收益高得离谱的回测背后的原因。在相信任何策略结果的数字之前,都应先检查它是否存在前视偏差。

如何在图表上识别

  1. 在代码中,搜索 `lookahead_on`,以及在信号 K线的 `high`/`low` 处成交的逻辑。
  2. 在回测中,留意那些远超市场实际所能提供的胜率或夏普比率。
  3. 在 K线回放中,检查图表上的更高时间周期数值是否会在该周期收盘时发生变化。

实战示例

某策略在 4 小时 K线为阳线时于 5 分钟收盘价买入,但读取 4 小时数据时开启了前视。在历史数据中,它会在每根 4 小时阳线的开端买入;而在实盘中,它要等到 K线收盘才能知道这是阳线。这样的回测毫无价值。

在图表上查看,深入阅读

免费指标 · 在您的图表上自动绘制Smart Money Concepts Engine →免费指标 · 在您的图表上自动绘制MACD Matrix →阅读完整指南交易策略回测:完整指南 →阅读完整指南TradingView 回测:完整指南 →

常见问题

前视和重绘是一回事吗?

前视是重绘的原因之一;重绘是可见的结果。即使没有前视,使用未收盘的 K线同样会导致重绘。

前视是否有合理的用途?

仅在为显示而对齐历史数据、并明确修正偏移量时才可使用;绝不能用于信号或入场。

Quantum Algo 的脚本如何避免前视偏差?

每个更高时间周期请求都关闭前视,并读取上一根已完成的 K线。

如何检查回测是否存在前视偏差?

逐根 K线回放;如果历史信号在当时不可能被知道,那么该测试就存在前视偏差。

相关术语

重绘 →已确认 K线(K线收盘) →不重绘指标 →收缩估计量 →枢轴点(左/右回溯) →Pine Script v6:入门指南 →

在您的 TradingView 图表上查看前视偏差

Zeno 跨时间周期解读聪明钱结构,并给出入场、止损和目标位——每笔已发布的交易都有公开记录。免费指标会绘制本页所定义的概念。

获取 Zeno →所有免费指标