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

5分钟K线超40点时,如何将plotchar绘制的HL2线改为line.new实现?

修改后的Pine Script代码(用line.new绘制连续HL2线)

以下是调整后的代码,替换了原有的plotchar实现,改用line.new绘制连续的HL2线,同时保留原有逻辑的核心判断:

//@version=5
indicator('Dax Patronnes ATR ', shorttitle='Patronne ATR', overlay=true, precision=6)

////////////////////// MIDDLE BOUGIE
MaxBodySize = input.float(defval=1000, title='Minimal Body Size (%)')
MidCandleBody = (high + low) / 2
LowHighRange = (high - low) / 100 * MaxBodySize
CandleBodySize = close >= open ? close - open : open - close
DrawPoint = CandleBodySize <= LowHighRange ? MidCandleBody : na
plotchar(DrawPoint, char='.', color=color.new(color.white, 0), location=location.absolute, size=size.tiny)

///////////////////////////////////////////////// BOUGIE PATRONNE 5min ///////////////////////////////
diffp = math.abs(close - open)
plot(diffp, color=color.new(color.white, 100))

isdiff2p = diffp > 40
is_five_min = (timeframe.isminutes) and (timeframe.multiplier == 5)

plotshape(is_five_min ? isdiff2p : na, style=shape.square, color=color.new(color.white, 0), location=location.abovebar, size=size.tiny, textcolor=color.white, text="★P★")

// --- 新增线条管理逻辑 ---
// 持久化变量:保存线条数组、上一个有效点的索引和HL2值
var line[] line_array = array.new_line()
var float last_valid_hl2 = na
var int last_bar_idx = na

// 仅在5分钟周期且满足波动条件时处理线条绘制
if is_five_min and isdiff2p
    current_hl2 = DrawPoint
    // 如果当前HL2有效,且存在上一个有效点,则绘制连接线
    if not na(current_hl2) and not na(last_valid_hl2) and last_bar_idx != bar_index
        new_line = line.new(x1=last_bar_idx, y1=last_valid_hl2, x2=bar_index, y2=current_hl2, color=color.white, width=1)
        array.push(line_array, new_line)
    
    // 更新上一个有效点的记录
    last_valid_hl2 := current_hl2
    last_bar_idx := bar_index

// 可选:清理超出显示范围的旧线条(避免内存占用过高)
if bar_index - last_bar_idx > 50
    while array.size(line_array) > 0
        old_line = array.shift(line_array)
        line.delete(old_line)

关键修改说明:

  • 使用var关键字定义持久化变量,确保在K线迭代过程中保留线条数组、上一个有效点的索引和HL2值
  • 当当前5分钟K线满足波动条件且HL2值有效时,自动连接到上一个有效点,形成连续线条
  • 添加了可选的旧线条清理逻辑,当线条超出指定范围(示例为50根K线)时自动删除,避免内存占用过高
  • 移除了原代码中重复的plotchar调用,改用动态创建的线条实现连续绘制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:06:42