You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TradingView Pine Script:调用5M Renko高阶时间框架致警报延迟1K线?

问题:1S Renko策略调用5M Renko后警报延迟发送

我正在开发一款基于1S Renko图表的Pine Script交易策略,需要获取5M Renko图表的方向。当前代码功能上可行,但存在异常:图表上交易信号显示在正确K线,警报时间也匹配该K线,但实际警报要等到触发K线之后再形成一根Renko K线才会发送。移除这段5M Renko调用代码后,脚本运行正常,警报会在触发K线完成后立即发送,仅添加这段代码后出现此问题。请问哪里操作有误?

原代码:

// ────────────────
// HTF FILTER
// ────────────────
htfOpen  = request.security(syminfo.tickerid, 5, open[1], lookahead=barmerge.lookahead_off)
htfClose = request.security(syminfo.tickerid, 5, close[1], lookahead=barmerge.lookahead_off)
htfConfirmed = request.security(syminfo.tickerid, 5, barstate.isconfirmed)

var bool htfBull = false
var bool htfBear = false

if htfConfirmed
    htfBull := htfClose > htfOpen
    htfBear := htfClose < htfOpen

htfGreen = htfBull
htfRed   = htfBear

问题原因与修正方案

核心问题

  1. [1]偏移导致数据滞后:你用open[1]close[1]获取的是上一根5M Renko砖的数据,方向判断晚了一个周期。
  2. Renko的barstate.isconfirmed逻辑不适用:Renko图表中,只有正在形成的新砖是未确认状态,已成型的砖都是确认状态。用htfConfirmed作为更新条件,会导致方向更新滞后于实际砖的形成时间。
  3. var变量缓存加剧延迟var声明的变量只会初始化一次,后续更新依赖htfConfirmed,进一步拖慢了信号同步的节奏。

修正后的代码

// ────────────────
// HTF FILTER
// ────────────────
// 获取当前5M Renko砖的开盘/收盘价,无偏移
htfOpen  = request.security(syminfo.tickerid, "5", open, lookahead=barmerge.lookahead_off)
htfClose = request.security(syminfo.tickerid, "5", close, lookahead=barmerge.lookahead_off)

// 实时计算5M Renko方向,无需等待确认
htfGreen = htfClose > htfOpen
htfRed   = htfClose < htfOpen

修正说明

  • 移除[1]偏移:直接获取当前5M Renko砖的最新数据,确保方向判断与实际同步。
  • 删除barstate.isconfirmed判断:Renko砖一旦成型就是确认状态,无需额外等待,实时计算方向即可。
  • 去掉var缓存变量:直接实时计算htfGreenhtfRed,避免缓存导致的信号延迟,确保每根1S Renko砖都能拿到最新的5M方向数据。

内容的提问来源于stack exchange,提问作者Remix919

火山引擎 最新活动