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

如何在Pine Language中识别K线结束并绘制带价格标签的高低水平线

Pine Script v5 实现新K线启动时绘制高低点水平线并显示价格标签

核心问题解决:新K线启动的判断条件

在Pine Script v5中,直接使用内置状态变量 barstate.isnew 即可判断当前是否为新K线启动的时机,该变量在新K线生成时会返回true,完全匹配你的需求。

完整实现代码

//@version=5
indicator(title="高低点水平线", overlay=true)

var line pressure = na
var line support = na

// 新K线启动时执行逻辑
if barstate.isnew
    // 删除历史线条(可选,避免画面线条堆积)
    line.delete(pressure)
    line.delete(support)
    
    // 绘制基于上一根K线高低点的水平线,设置为无限延伸到右侧(用na代替固定bar数)
    pressure = line.new(bar_index-1, high[1], na, high[1], color=color.red, width=1)
    support = line.new(bar_index-1, low[1], na, low[1], color=color.green, width=1)
    
    // 添加价格标签,模拟斐波那契回撤线的显示效果
    line.set_label_right(pressure, str.tostring(high[1], format.mintick), color=color.red, textcolor=color.white)
    line.set_label_right(support, str.tostring(low[1], format.mintick), color=color.green, textcolor=color.white)

关键代码说明

  • barstate.isnew:触发新K线逻辑的核心条件,精准捕捉新K线启动的时刻。
  • line.delete:可选操作,若希望画面仅保留最新的高低点水平线,删除旧线可避免视觉混乱;若需要保留所有历史线条,可删除这两行。
  • line.new 参数中的na:将水平线设置为无限延伸至图表右侧,和TradingView内置斐波那契线的显示逻辑一致;如果需要固定延伸到后续N根K线,替换为bar_index + (N-1)即可(比如原代码的bar_index+9对应延伸10根K线)。
  • line.set_label_right:给水平线添加右侧价格标签,format.mintick确保价格显示符合当前品种的最小变动单位,标签样式和内置工具对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:31:13