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

如何消除Pine Script自定义K线图中的空白间隙?

解决TradingView Pine Script v5指标空白间隙问题

我编写了TradingView的Pine Script v5指标,逻辑是仅当K线突破前一根关键K线的高点或低点时才显示该K线,核心需求已实现,但图表出现空白间隙。尝试使用plothandle但无法在if结构内生效,求助消除这些空白间隙的方法。原代码如下:

//@version=5
indicator("True Movement Price")

CandleColor     = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)
WickcolorColor  = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)
BorderColor     = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)

var key = false

var PLow = low
var PHigh = high
var PClose = close
var POpen = open

if high > PHigh or low < PLow
    key := true
    PLow := low
    PHigh := high
    PClose := close
    POpen := open
else
    key := false

plotcandle(key ? POpen : na, key ? PHigh : na, key ? PLow : na, key ? PClose : na, color = CandleColor, bordercolor = BorderColor, wickcolor = WickcolorColor)

问题原因

原代码用na隐藏不满足条件的K线,这会导致对应位置没有绘制内容,自然出现空白间隙。要解决这个问题,不能用na,而是让不满足条件的K线继承上一根有效K线的价格数据,保持图表连续。

修改后的代码

//@version=5
indicator("True Movement Price", overlay=true)

// 颜色设置(原代码alpha为0是全透明,如需显示颜色可调整最后一个参数)
CandleColor     = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)
WickcolorColor  = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)
BorderColor     = close >= open ? color.rgb(0, 188, 212, 0) : color.rgb(0, 96, 100, 0)

// 初始化关键K线价格变量
var float PLow = low
var float PHigh = high
var float PClose = close
var float POpen = open

// 仅当当前K线突破前高/前低时更新关键价格
if high > PHigh or low < PLow
    PLow := low
    PHigh := high
    PClose := close
    POpen := open

// 直接绘制维护的关键价格,每根K线都有数据,无空白间隙
plotcandle(POpen, PHigh, PLow, PClose, color=CandleColor, bordercolor=BorderColor, wickcolor=WickcolorColor)

关键改动说明

  • 移除了key变量和na判断:不再隐藏K线,而是让每根K线都使用上一次更新的关键价格数据,确保图表连续
  • 保留核心逻辑:只有当K线突破前高/前低时,才更新关键价格变量,保证显示的K线符合需求
  • 添加overlay=true:让指标叠加在主图上,更符合常规使用习惯(可根据需求移除)

内容的提问来源于stack exchange,提问作者Death's Head

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:25:18