You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现跟随红线水平的多K线延迟?常规延迟无法满足需求

Pine Script 跨时间框架数据对齐问题解决

问题说明

常规延迟方法无法实现需求:需要绿线与红线保持同一水平位置,但普通延迟操作仅会让绿线向前移动一根K线。调整偏移量、切换时间框架均无效,期望绿线精准对齐到图中白线的位置。

问题根源

原代码中嵌套调用request.security(v5)或security(v2)会导致数据额外偏移。因为每次跨时间框架请求会自动对齐到当前图表K线的起始点,二次嵌套调用会叠加偏移,导致绿线位置错误。

修正后的代码

Pine Script v5 版本

//@version=5
indicator('MTF', overlay=true)
tim = input('5', title="目标时间框架")
// 直接获取目标时间框架的开盘价
out1 = request.security(syminfo.tickerid, tim, open)
// 延迟1根当前图表K线,数值为上一根的out1,位置与当前红线同
out2 = out1[1]

plot(out1, color=color.new(color.red, 0), linewidth=4, title="红线")
plot(out2, color=color.new(color.green, 0), linewidth=4, title="绿线")

Pine Script v2 版本

//@version=2 
study("MTF", overlay=true)
tim=input('5', title="目标时间框架")
out1 = security(tickerid, tim, open)
// 延迟1根当前图表K线
out2 = out1[1]

plot(out1,color=red,linewidth = 4, transp = 0, title="红线")
plot(out2,color=green, linewidth = 4, transp = 0, title="绿线")

代码解释

  • 移除嵌套的跨时间框架请求,避免二次偏移
  • 使用数组索引[n]实现延迟,n为需要延迟的当前图表K线数量。这种方式下,绿线会在当前K线位置显示前n根K线的红线数值,与红线保持同一水平位置,而非向前移动K线
  • 若需按目标时间框架的K线数量延迟,可结合ta.barssince函数计算目标时间框架的K线切换点,再获取对应数值

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:10:34