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

如何在Pine Script中通过Absolute ZigZag Lib获取最新及前序高低点

获取Absolute ZigZag Lib的最后及倒数第二个高低点

你之前的代码问题出在函数参数传递错误——不需要把库本身(pivotLib)传给getLastHigh/getHigh等函数,而是要先初始化一个包含ZigZag配置的Pivot对象,再把这个对象作为参数传入。

以下是修正后的可用代码:

//@version=5
indicator("ZigZag Pivot Example", overlay=true)

// 导入Absolute ZigZag库
import niquedegraaff/Absolute_ZigZag_Lib/10 as pivotLib

// 初始化Pivot配置:设置偏差值(这里用2%,可自行调整),启用高低价计算
zigzagPivot = pivotLib.Pivot(deviation=2.0, useHighLow=true)

// 获取最后一个高点(索引1)和倒数第二个高点(索引2)
latestHigh = pivotLib.getLastHigh(zigzagPivot)
prevHigh = pivotLib.getHigh(zigzagPivot, 2)

// 获取最后一个低点(索引1)和倒数第二个低点(索引2)
latestLow = pivotLib.getLastLow(zigzagPivot)
prevLow = pivotLib.getLow(zigzagPivot, 2)

// 可选:在图表上标记高低点方便验证
if not na(latestHigh)
    label.new(bar_index, latestHigh, "Latest High: " + str.tostring(latestHigh), color=color.new(color.green, 0), textcolor=color.white)
if not na(prevHigh)
    label.new(bar_index - 5, prevHigh, "Prev High: " + str.tostring(prevHigh), color=color.new(color.blue, 0), textcolor=color.white)
if not na(latestLow)
    label.new(bar_index, latestLow, "Latest Low: " + str.tostring(latestLow), color=color.new(color.red, 0), textcolor=color.white)
if not na(prevLow)
    label.new(bar_index - 5, prevLow, "Prev Low: " + str.tostring(prevLow), color=color.new(color.orange, 0), textcolor=color.white)

关键说明:

  • pivotLib.Pivot()是创建ZigZag计算规则的核心,deviation参数控制反转的阈值(比如2%表示价格变动超过2%才生成新的高低点),useHighLow设为true表示用K线的高低价计算,而非收盘价。
  • getHigh(zigzagPivot, N)中的N是高点的索引:1对应最后一个生成的高点,2对应倒数第二个,以此类推;getLastHigh等价于getHigh(zigzagPivot, 1),是简化写法。
  • 如果返回值为na,说明还没有足够的K线生成对应数量的高低点,可通过not na()判断后再使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:37:41