修复Tradingview Pivots HL高低点枢轴指标 实现双条件触发价格警报
Tradingview Pivots HL指标警报修正方案
问题根因
你之前的代码未生效主要有3个核心问题:
- 原指标的枢轴点确认存在
len根K线的滞后性,绘图时通过offset=-len把圆点偏移到对应K线位置,直接取plotH[1]/plotL[1]无法匹配到你看到的前一根K线上的圆点信号 - 未缓存历史最近一次的有效枢轴点数值,直接用当前
plotH/plotL和收盘价对比,只能匹配到刚确认的枢轴点价格,无法和历史最近的枢轴点做比较 - 原代码中
sellCondition逻辑书写错误,重复调用了两次HHCondition1,漏掉了HHCondition2
修正后完整代码
//@version=4 study("(Pivot Points High Low)", shorttitle="Pivots HL", overlay=true) lenH = input(title="Length High", type=input.integer, defval=6, minval=1) lenL = input(title="Length Low", type=input.integer, defval=6, minval=1) fun(src, len, isHigh) => p = nz(src[len]) isFound = true for i = 0 to len - 1 if isHigh and src[i] > p isFound := false if not isHigh and src[i] < p isFound := false for i = len + 1 to 2 * len if isHigh and src[i] >= p isFound := false if not isHigh and src[i] <= p isFound := false if isFound p plotH = fun(high, lenH, true) plotL = fun(low, lenL, false) // 缓存最近一次确认的高低枢轴点价格 lastHH = valuewhen(not na(plotH), high[lenH], 0) lastLL = valuewhen(not na(plotL), low[lenL], 0) // 条件1:刚确认枢轴点后的第一根K线触发(对应圆点出现在前一根K线的场景) HHCondition1 = not na(plotH[1]) and na(plotH[2]) LLCondition1 = not na(plotL[1]) and na(plotL[2]) // 条件2:收盘价突破最近对应枢轴点价格触发 HHCondition2 = close > lastHH LLCondition2 = close < lastLL BuyCondition = LLCondition1 or LLCondition2 SellCondition = HHCondition1 or HHCondition2 // 测试信号标记,不需要可以注释 plotshape(BuyCondition, title="buy", style=shape.triangleup,location=location.belowbar, color=color.orange, transp=0, size=size.small) plotshape(SellCondition, title="sell", style=shape.triangledown,location=location.abovebar, color=color.green, transp=0, size=size.small) plot(plotH, color=color.lime, linewidth=3, style=plot.style_circles, offset=-lenH) plot(plotL, color=color.red, linewidth=3, style=plot.style_circles, offset=-lenL) alertcondition(BuyCondition, title="buy",message="buy") alertcondition(SellCondition, title="sell",message="sell")
逻辑说明
- 条件1触发时机:当前K线是枢轴圆点刚确认完成后的第一根K线,刚好对应圆点出现在前一根K线的场景,符合你的需求
- 条件2触发时机:当前K线收盘价高于最近一次确认的绿色高点枢轴,或低于最近一次确认的红色低点枢轴时触发
- 两个条件满足任意一个就会触发对应方向的警报
内容的提问来源于stack exchange,提问作者LFranco
相关产品推荐
相关产品推荐

