TradingView告警消息框如何获取通道突破时的最高与最低价

实现方法
默认内置的{{high}}、{{low}}占位符只能取到触发告警当根K线的最高/最低价,要取通道对应区间的阶段高低价,直接在指标逻辑里把值拼到告警消息里就行,不用找特殊占位符:
- 如果你用的是可编辑源码的自定义价格通道指标:
- 打开指标的Pine编辑器,找到通道上下轨的计算逻辑——绝大多数价格通道的上轨本身就是对应统计区间的最高价,下轨就是对应统计区间的最低价,比如20周期唐奇安通道上轨就是
ta.highest(high, 20),下轨就是ta.lowest(low, 20),把这两个值存成独立变量。 - 写告警条件的时候,直接把这两个变量的值转成字符串拼接到
alertcondition()的message参数里,示例代码:
// 通道参数和你原有配置保持一致即可 channelLength = input.int(20, title="通道统计周期") zoneHigh = ta.highest(high, channelLength) zoneLow = ta.lowest(low, channelLength) // 突破判断逻辑 breakUpSignal = ta.crossover(close, zoneHigh) breakDownSignal = ta.crossunder(close, zoneLow) // 配置告警消息,直接拼接区间高低价 alertcondition(breakUpSignal, title="收盘价上破通道上轨", message="上破触发,当期收盘价:{{close}},区间最高价:" + str.tostring(zoneHigh) + ",区间最低价:" + str.tostring(zoneLow)) alertcondition(breakDownSignal, title="收盘价下破通道下轨", message="下破触发,当期收盘价:{{close}},区间最高价:" + str.tostring(zoneHigh) + ",区间最低价:" + str.tostring(zoneLow))- 保存修改后的指标,新建告警时选择你自定义的这两个告警条件即可,触发时会自动把拼接好的区间高低价显示在告警消息里。
- 打开指标的Pine编辑器,找到通道上下轨的计算逻辑——绝大多数价格通道的上轨本身就是对应统计区间的最高价,下轨就是对应统计区间的最低价,比如20周期唐奇安通道上轨就是
- 如果你用的是平台加密、无法编辑源码的内置通道指标:
不用费劲找内置占位符,直接照着原指标的通道计算逻辑写一份同参数的简易指标,专门用来输出告警信号就行,计算出的区间高低价和原指标完全一致,不会有误差。
别用跨周期引用或者全局变量存值的方案,实时行情里容易出现K线重绘导致高低价取值不准,直接用和通道同源的高低值拼接消息是最稳定的方案。
内容的提问来源于stack exchange,提问作者Trading SouqExpress
相关产品推荐
相关产品推荐

