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

Pine Script:如何通过存储的barindex值获取对应K线高低点?

解决Pine Script中通过Barindex获取对应K线高低点的问题

你遇到的问题核心是对Pine Script的数组引用语法理解有误:high[n]的作用是获取当前K线向前数n根的K线高点,而非直接获取barindex等于n的K线高点。比如当前barindex是1500,high[1002]会取1500-1002=498号K线的数值,这和你想要的1002号K线完全不符。

解决方案

使用Pine Script内置的ta.valuewhen()函数,该函数可以根据指定条件定位到目标K线,并获取对应位置的指标数值。

修正后的代码

//@version=5
indicator("获取指定Barindex的高低点", overlay=true)

indexarray = array.new_int(4, 1002, 1004, 1005, 1010)

for i = 0 to array.size(indexarray) - 1
    val = array.get(indexarray, i)
    // 获取对应barindex的高点和低点
    highvalue = ta.valuewhen(barindex == val, high, 0)
    lowvalue = ta.valuewhen(barindex == val, low, 0)
    // 在目标K线位置绘制标签
    label.new(val, highvalue, str.tostring(val) + " 高点: " + str.tostring(highvalue), color=color.green, style=label.style_label_down)
    label.new(val, lowvalue, str.tostring(val) + " 低点: " + str.tostring(lowvalue), color=color.red, style=label.style_label_up)

关键说明

  • ta.valuewhen(barindex == val, high, 0):第一个参数是定位条件(找到barindex等于目标值的K线),第二个参数是要获取的指标(high/low),第三个参数0表示取最近一次满足条件的数值(由于每个barindex唯一,这就是目标K线的对应数值)。
  • 确保目标barindex在当前图表的加载范围内,否则函数会返回na。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:43:18