I have tried to add a simple buy / sell alert to the following script in heiken ashi , the challenge is to get a buy alert when the trend (heiken) candles change from Red to green and sell alert when the candles change from green to red. I am getting alerts for all candles but I was expecting the alert on change in color . Here is the code...
//@version=2
study(title = "Smoothed Heiken Ashi Candles", shorttitle="Smoothed Ha Candles", overlay=true)
len=input(10)
o=ema(open,len)
c=ema(close,len)
h=ema(high,len)
l=ema(low,len)
haclose = (o+h+l+c)/4
haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2
hahigh = max (h, max(haopen,haclose))
halow = min (l, min(haopen,haclose))
len2=input(10)
o2=ema(haopen, len2)
c2=ema(haclose, len2)
h2=ema(hahigh, len2)
l2=ema(halow, len2)
col=o2>c2 ? red : lime
plotcandle(o2, h2, l2, c2, title="heikin smoothed", color=col)
alertcondition( c2 , title="Buy", message="green buy")
alertcondition( o2 , title="Sell", message="red sell")
I tried to get to solve the problem but have so far not able to , ay help welcome .
You set the color with the below statement.
col=o2>c2 ? red : lime
So, use it together with the history reference operator []
to see if there is a change in color.
is_red = o2 > c2
is_green = not is_red
is_new_red = not is_red[1] and is_red
is_new_green = not is_green[1] and is_green
plotshape(is_new_red, "Sell", shape.labeldown, location.abovebar, red, 0, 0, "Sell", white)
plotshape(is_new_green, "Buy", shape.labelup, location.belowbar, lime, 0, 0, "Buy", white)
alertcondition(is_new_red, "Sell", "green buy")
alertcondition(is_new_red, "Sell", "red sell")