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

如何设置HMA指标仅在颜色切换时触发买卖警报?

解决HMA指标仅在颜色切换时触发警报的问题

需求:HMA指标从红色切换为绿色时触发买入警报,从绿色切换为红色时触发卖出警报。当前代码会在每根红绿K线都触发警报,需要修改为仅在颜色变化时触发。

原代码

//@version=2

study(title="HMA Colored", overlay=true)

func_hma(style, length)=>

    return = wma((2 * wma(style, length / 2)) - wma(style, length), round(sqrt(length)))

shortPeriod = input(100, title="HMA")

shortHMA = func_hma(close, shortPeriod)
current = shortHMA[0]
prev = shortHMA[1]

long= current > prev
short= current < prev

plotshape(long, style=shape.triangleup, location=location.belowbar, size=size.tiny, title="buy" )
plotshape(short, style=shape.triangledown, location=location.abovebar, size=size.tiny, title="sell")
plot(shortHMA, color=current > prev ? green : red, linewidth=2, title="HMA")
alertcondition(long, title="Buy",  message="green buy")
alertcondition(sell, title="Sell", message="red sell")

修改后的代码

//@version=2

study(title="HMA Colored", overlay=true)

func_hma(style, length)=>
    return = wma((2 * wma(style, length / 2)) - wma(style, length), round(sqrt(length)))

shortPeriod = input(100, title="HMA")

shortHMA = func_hma(close, shortPeriod)
current = shortHMA[0]
prev = shortHMA[1]
prev_prev = shortHMA[2] // 取前前一根K线的HMA值,用于判断状态变化

// 判断从下跌转为上涨(红转绿)
long_switch = current > prev and prev <= prev_prev
// 判断从上涨转为下跌(绿转红)
short_switch = current < prev and prev >= prev_prev

// 仅在切换时显示信号形状
plotshape(long_switch, style=shape.triangleup, location=location.belowbar, size=size.tiny, title="buy" )
plotshape(short_switch, style=shape.triangledown, location=location.abovebar, size=size.tiny, title="sell")

plot(shortHMA, color=current > prev ? green : red, linewidth=2, title="HMA")

// 仅在状态切换时触发警报
alertcondition(long_switch, title="Buy",  message="HMA从红转绿,触发买入")
alertcondition(short_switch, title="Sell", message="HMA从绿转红,触发卖出")

核心修改点

  • 新增prev_prev变量,获取前前一根K线的HMA值,用来对比前一根的趋势状态,确认是否发生趋势切换
  • 重新定义触发条件:
    • long_switch:当前HMA向上,且前一根HMA处于下跌/走平状态,即完成红到绿的切换
    • short_switch:当前HMA向下,且前一根HMA处于上涨/走平状态,即完成绿到红的切换
  • 将信号形状和警报的触发逻辑,从原有的「当前趋势状态」改为「趋势切换状态」,确保仅在颜色变化时触发
  • 修正原代码中alertcondition里的变量错误(原代码误写为sell,实际定义的是short)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:10:44