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

如何修改Pine Script代码,在TradingView显示绝对枢轴高低点?

修改Pine Script代码实现绝对枢轴高低点标记

原代码使用highestbars()和lowestbars()函数判断枢轴点,但当存在相等的高低点时,这两个函数会因返回最近的极值点位置而误标记非绝对的枢轴。要实现仅显示绝对枢轴高低点(即枢轴点的高低严格大于/小于指定范围内所有其他K线的高低),可以通过直接比较候选点与左右区间内所有K线的高低值来实现。

修改后的代码

//@version=4
study("Absolute Pivot High Low Points", overlay =true)
lb = input(defval = 1, title="Left Bars")
rb = input(defval = 1, title="Right Bars")

// 定义绝对枢轴高点条件:候选点严格大于左边lb个bar和右边rb个bar的所有高点
isPivotHigh = high[lb] > highest(high, lb) and high[lb] > highest(high[1:rb+1])
// 定义绝对枢轴低点条件:候选点严格小于左边lb个bar和右边rb个bar的所有低点
isPivotLow = low[lb] < lowest(low, lb) and low[lb] < lowest(low[1:rb+1])

// 绘制绝对枢轴高点标记
plotshape(isPivotHigh, style = shape.triangledown, location = location.abovebar, 
          color = color.lime, size = size.tiny, offset = -lb)
// 绘制绝对枢轴低点标记
plotshape(isPivotLow, style = shape.triangleup, location = location.belowbar, 
          color = color.red, size = size.tiny, offset = -lb)

关键改动说明

  • 替换判断逻辑:舍弃highestbars()/lowestbars(),改用highest()/lowest()配合严格比较运算符(>/<),确保候选点是指定区间内唯一的绝对最高/最低点。
    • highest(high, lb):获取当前候选点左侧lb个K线的最高值
    • highest(high[1:rb+1]):获取当前候选点右侧rb个K线的最高值(high[1:rb+1]表示从下一个K线开始往后rb个的区间)
  • 代码可读性优化:将判断条件封装为变量isPivotHigh和isPivotLow,逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:51:10