munsifk

strategy MACD and RSI alert

2421
This is a script I created by combining parts of other scripts I looked at. It uses RSI and MACD to give entrance signals for longs or shorts. When the color changes from red to green it signifies a buy, from green to red signifies a short.

The problem that I am having is that I cannot set up the alert script properly, Using the code :
alert1 = (xRSI > Overbought and signal < macd) ? 1: 0

gives repeat signals every time the criteria reasserts itself, and I only want it to show an alert at the same time the bar color changes.
If I could get some advice on how to set up the alert so it only alerts me at the same time that the bars change color, it would be much appreciated.
Thankyou
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
////////////////////////////////////////////////////////////
study(title="Strategy MACD and RSI alert", shorttitle="Strategy MACD and RSI alert", overlay = false )
fastLength = input(8, minval=1)
slowLength = input(16,minval=1)
signalLength=input(11,minval=1)
hline(0, color=purple, linestyle=dashed)
fastMA = ema(close, fastLength)
slowMA = ema(close, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)

Length = input(10, minval=1)
Oversold = input(49, minval=1)
Overbought = input(51, minval=1)
xRSI = rsi(close, Length)



pos = iff(xRSI > Overbought and signal < macd, 1,
        iff(xRSI < Oversold and signal > macd, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue)


plot(pos, title="pos", style=line, linewidth=1, color=red )