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

如何在Pine Script v5中绘制随当前高低价实时变动的动态水平线?

Pine Script v5 绘制实时跟随当前高低点的动态水平线

以下是实现需求的代码,线条会随着当前K线的价格变动实时更新,精准贴合最新的高点与低点:

//@version=5
indicator("实时高低点动态水平线", overlay=true)

// 初始化用于绘制高低点的线条变量
var line high_line = na
var line low_line = na

// 仅在最新K线(实时价格更新阶段)执行线条更新逻辑
if barstate.islast
    // 获取当前未确认K线的实时高点/低点
    current_high = ta.highest(ta.barssince(barstate.isconfirmed) + 1)
    current_low = ta.lowest(ta.barssince(barstate.isconfirmed) + 1)
    
    // 创建覆盖图表可见范围的高点水平线
    high_line := line.new(bar_index - 100, current_high, bar_index + 100, current_high, 
                         color=color.green, style=line.style_dashed, width=2)
    // 创建覆盖图表可见范围的低点水平线
    low_line := line.new(bar_index - 100, current_low, bar_index + 100, current_low, 
                        color=color.red, style=line.style_dashed, width=2)
    
    // 删除上一次绘制的旧线条,避免画面重叠
    line.delete(high_line[1])
    line.delete(low_line[1])

代码说明

  • overlay=true:让指标直接叠加在主图上,无需切换面板查看。
  • barstate.islast:确保只在最新的实时K线阶段执行更新,避免无效计算。
  • ta.barssince(barstate.isconfirmed):获取距离上一根已确认K线的周期数,结合ta.highest()/ta.lowest()可以精准捕捉当前正在形成的K线的实时高低点,价格变动时数值会自动更新。
  • line.new():创建覆盖前后100根K线范围的水平线(可自行调整bar_index - 100和bar_index + 100的数值来改变线条长度),每次更新时删除旧线条,保证画面整洁。

可选扩展

如果需要保留历史K线的高低点标记,可以添加以下逻辑(放在barstate.isconfirmed条件下):

var line prev_high = na
var line prev_low = na

if barstate.isconfirmed
    // 在上一根K线位置绘制已确认的高低点线
    prev_high := line.new(bar_index[1], high[1], bar_index, high[1], color=color.new(color.green, 30), style=line.style_solid)
    prev_low := line.new(bar_index[1], low[1], bar_index, low[1], color=color.new(color.red, 30), style=line.style_solid)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:30:50