微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我希望指标在 HullMA 改变颜色时发送买入/卖出信号

如何解决我希望指标在 HullMA 改变颜色时发送买入/卖出信号

代码如下:

study(title = "Hull MA",shorttitle="HMA",overlay = true,resolution="60")
length = input(48,minval=1)
price = input(close,title="Source")
hull = wma(2*wma(price,length/2)-wma(price,length),round(sqrt(length)))
plot(hull,title='Hull',color=change(hull) < 0 ? color.orange : color.purple,linewidth=2,transp=0)

所以,我希望能够做的是 Hull 变为紫色时发送买入信号, Hull 变为橙色时发送卖出信号。我想我可以通过添加这个来做到这一点:

plotshape(change(hull) < 0,color=color.orange,style=shape.circle,location=location.belowbar,text="sell",title='sell')
plotshape(change(hull) > 0,color=color.purple,location=location.abovebar,text="buy",title='buy')

但如果我这样做,我会在每个 hull > 0 的蜡烛上收到买入信号,在每个 hull 转从橙色到紫色时,我只想要1个买入信号,当情节从紫色到橙色时,我想要1个卖出信号。

有人有什么想法吗? 我将不胜感激! :)

解决方法

我想通了!答案在于历史引用运算符“[]”。使用 [] 时,您可以告诉脚本从 n 根蜡烛前查找指定值,在本例中为“(hull[1])”。 我只是告诉脚本,仅当 HullMA 的值大于 0 并且来自前一根蜡烛图的 HullMA 值小于 0 时才绘制买入信号。代码现在如下所示:

study(title = "Hull MA_TEST_v1.0",shorttitle="HMA_TESTv1.0",overlay = true,resolution="")
length = input(10,minval=1)
price = input(close,title="Source")
hull = wma(2*wma(price,length/2)-wma(price,length),round(sqrt(length)))
plot(hull,title='Hull',color=change(hull) < 0 ? color.blue : color.yellow,linewidth=2)

makeShape1 = if change(hull) > 0 and change(hull[1]) < 0
    true
else
    false

plotshape(series=makeShape1,style=shape.cross,color=color.yellow,transp=10,text="buy",title='buy')

makeShape2 = if change(hull) < 0 and change(hull[1]) > 0
    true
else
    false

plotshape(series=makeShape2,color=color.blue,text="sell",title='sell')

这可能不是最有效的编码方式,但它有效,我很高兴!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。