请求修改BLACK GOLD指标:单趋势仅触发一次警报
修改BLACK GOLD Pine Script指标:趋势内仅触发一次警报
核心逻辑说明
通过添加状态标记变量,记录当前趋势下的警报是否已触发。当VWMA首次穿越水平偏移线时触发警报并标记状态,直到趋势反转(反向交叉)时重置状态,确保同趋势下仅触发一次警报。
具体修改步骤
你只需找到原代码中处理交叉和警报的部分,替换为以下逻辑即可(保留原指标其他所有代码):
1. 添加状态变量(放在代码开头indicator()之后)
// 初始化警报状态:默认未触发 var bool longAlertSent = false var bool shortAlertSent = false
2. 替换原警报触发逻辑
// 假设原代码中VWMA变量名为vwma,水平偏移线变量名为level,按需替换成你代码中的实际变量名 longCross = crossOver(vwma, level) shortCross = crossUnder(vwma, level) // 处理多单警报 if (longCross) if not longAlertSent alert("VWMA上穿水平偏移线 - 多单信号", alert.freq_once_per_bar_close) longAlertSent := true // 标记多单警报已触发 shortAlertSent := false // 趋势反转,重置空单警报状态 // 处理空单警报 if (shortCross) if not shortAlertSent alert("VWMA下穿水平偏移线 - 空单信号", alert.freq_once_per_bar_close) shortAlertSent := true // 标记空单警报已触发 longAlertSent := false // 趋势反转,重置多单警报状态
关键注意点
- 如果原代码中VWMA或水平偏移线的变量名不是
vwma/level,直接替换成你代码里对应的名称即可。 - 原指标的其他绘图、计算逻辑完全保留,只修改警报触发的这部分代码。
内容的提问来源于stack exchange,提问作者Bandit110
相关产品推荐
相关产品推荐

