magnetar513
New member
Attempting to build a divergence indicator, but the OK button won't go active to allow the script to be saved, although the "Save As New Script" option is available. No errors are appearing on or below the script text, but the script name goes red when saved in the list.
declare upper;
input price = close;
input rsiAvgTyp = AverageType.WILDERS;
input macdAvgTyp = AverageType.EXPONENTIAL;
input scanLength = 14;
def longScanLength = 2 * scanLength;
def fastEMAlength = 12;
def slowEMAlenght = 26;
def signalLength = ((slowEMAlenght - fastEMAlength) / 2) + Round((fastEMAlength * 0.47), 0);
def macdLine = ExpAverage(price, fastEMAlength) - ExpAverage(price, slowEMAlenght);
def signalLine = MovingAverage(AverageType.EXPONENTIAL, macdLine, signalLength);
def rsiLine = RSI(scanLength, 80, 15, price, AverageType.WILDERS);
def macdHistogram = macdLine - signalLine;
def moneyFlwIndx = MoneyFlowIndex(20, 80, scanLength, signalLength);
def stochRsiLine = StochRSI(close, close, close, 14, 3, 20, 80);
def priceTopUp = Highest(price, scanLength) == Highest(price, longScanLength);
def priceTopDown = Highest(price, scanLength) != Highest(price, longScanLength);
def priceBottomUp = Lowest(price, scanLength) != Lowest(price, longScanLength);
def priceBottomDown = Lowest(price, scanLength) == Lowest(price, longScanLength);
def macdHistoTopUp = Highest(macdHistogram, scanLength) == Highest(macdHistogram, longScanLength);
def macdHistoTopDown = Highest(macdHistogram, scanLength) != Highest(macdHistogram, longScanLength);
def macdHistoBottomUp = Lowest(macdHistogram, scanLength) != Lowest(macdHistogram, longScanLength);
def macdHistoBottomDown = Lowest(macdHistogram, scanLength) == Lowest(macdHistogram, longScanLength);
def rsiTopUp = Highest(rsiLine, scanLength) == Highest(rsiLine, longScanLength);
def rsiTopDown = Highest(rsiLine, scanLength) != Highest(rsiLine, longScanLength);
def rsiBottomUp = Lowest(rsiLine, scanLength) != Lowest(rsiLine, longScanLength);
def rsiBottomDown = Lowest(rsiLine, scanLength) == Lowest(rsiLine, longScanLength);
def stochRsiTopUp = Highest(stochRsiLine, scanLength) == Highest(stochRsiLine, longScanLength);
def stochRsiTopDown = Highest(stochRsiLine, scanLength) != Highest(stochRsiLine, longScanLength);
def stochRsiBottomUp = Lowest(stochRsiLine, scanLength) != Lowest(stochRsiLine, longScanLength);
def stochRsiBottomDown = Lowest(stochRsiLine, scanLength) == Lowest(stochRsiLine, longScanLength);
def moneyFlwIndxTopUp = Highest(moneyFlwIndx, scanLength) == Highest(moneyFlwIndx, longScanLength);
def moneyFlwIndxTopDown = Highest(moneyFlwIndx, scanLength) != Highest(moneyFlwIndx, longScanLength);
def moneyFlwIndxBottomUp = Lowest(moneyFlwIndx, scanLength) != Lowest(moneyFlwIndx, longScanLength);
def moneyFlwIndxBottomDown = Lowest(stochRsiLine, scanLength) == Lowest(stochRsiLine, longScanLength);
def bearMacdDiv = (priceTopUp and macdHistoTopDown) or (priceTopDown and macdHistoTopUp);
def bearRsiDiv = (priceTopUp and rsiTopDown) or (priceTopDown and rsiTopUp);
def bearStochRsiDiv = (priceTopUp and stochRsiTopDown) or (priceTopDown and stochRsiTopUp);
def bearMoneyFlwIndxDiv = (priceTopUp and moneyFlwIndxTopDown) or (priceTopDown and moneyFlwIndxTopUp);
def bullMacdDiv = (priceBottomUp and macdHistoBottomDown) or (priceBottomDown and macdHistoBottomUp);
def bullRsiDiv = (priceBottomUp and rsiBottomDown) or (priceBottomDown and rsiBottomUp);
def bullstochRsiDiv = (priceBottomUp and stochRsiBottomDown) or (priceBottomDown and stochRsiBottomUp);
def bullmoneyFlwIndxDiv = (priceBottomUp and moneyFlwIndxBottomDown) or (priceBottomDown and moneyFlwIndxBottomUp);
AddChartBubble(bearMacdDiv, close, "MACD Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearRsiDiv, close, "RSI Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearStochRsiDiv, close, "Stochastic Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearMoneyFlwIndxDiv, close, "MFI Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bullMacdDiv, close, "MACD Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullRsiDiv, close, "RSI Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullstochRsiDiv, close, "Stochastic Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullmoneyFlwIndxDiv, close, "MFI Bullish Divergence", Color.GREEN, yes);
Any assistance would be greatly appreciated. Thanks in advance.
declare upper;
input price = close;
input rsiAvgTyp = AverageType.WILDERS;
input macdAvgTyp = AverageType.EXPONENTIAL;
input scanLength = 14;
def longScanLength = 2 * scanLength;
def fastEMAlength = 12;
def slowEMAlenght = 26;
def signalLength = ((slowEMAlenght - fastEMAlength) / 2) + Round((fastEMAlength * 0.47), 0);
def macdLine = ExpAverage(price, fastEMAlength) - ExpAverage(price, slowEMAlenght);
def signalLine = MovingAverage(AverageType.EXPONENTIAL, macdLine, signalLength);
def rsiLine = RSI(scanLength, 80, 15, price, AverageType.WILDERS);
def macdHistogram = macdLine - signalLine;
def moneyFlwIndx = MoneyFlowIndex(20, 80, scanLength, signalLength);
def stochRsiLine = StochRSI(close, close, close, 14, 3, 20, 80);
def priceTopUp = Highest(price, scanLength) == Highest(price, longScanLength);
def priceTopDown = Highest(price, scanLength) != Highest(price, longScanLength);
def priceBottomUp = Lowest(price, scanLength) != Lowest(price, longScanLength);
def priceBottomDown = Lowest(price, scanLength) == Lowest(price, longScanLength);
def macdHistoTopUp = Highest(macdHistogram, scanLength) == Highest(macdHistogram, longScanLength);
def macdHistoTopDown = Highest(macdHistogram, scanLength) != Highest(macdHistogram, longScanLength);
def macdHistoBottomUp = Lowest(macdHistogram, scanLength) != Lowest(macdHistogram, longScanLength);
def macdHistoBottomDown = Lowest(macdHistogram, scanLength) == Lowest(macdHistogram, longScanLength);
def rsiTopUp = Highest(rsiLine, scanLength) == Highest(rsiLine, longScanLength);
def rsiTopDown = Highest(rsiLine, scanLength) != Highest(rsiLine, longScanLength);
def rsiBottomUp = Lowest(rsiLine, scanLength) != Lowest(rsiLine, longScanLength);
def rsiBottomDown = Lowest(rsiLine, scanLength) == Lowest(rsiLine, longScanLength);
def stochRsiTopUp = Highest(stochRsiLine, scanLength) == Highest(stochRsiLine, longScanLength);
def stochRsiTopDown = Highest(stochRsiLine, scanLength) != Highest(stochRsiLine, longScanLength);
def stochRsiBottomUp = Lowest(stochRsiLine, scanLength) != Lowest(stochRsiLine, longScanLength);
def stochRsiBottomDown = Lowest(stochRsiLine, scanLength) == Lowest(stochRsiLine, longScanLength);
def moneyFlwIndxTopUp = Highest(moneyFlwIndx, scanLength) == Highest(moneyFlwIndx, longScanLength);
def moneyFlwIndxTopDown = Highest(moneyFlwIndx, scanLength) != Highest(moneyFlwIndx, longScanLength);
def moneyFlwIndxBottomUp = Lowest(moneyFlwIndx, scanLength) != Lowest(moneyFlwIndx, longScanLength);
def moneyFlwIndxBottomDown = Lowest(stochRsiLine, scanLength) == Lowest(stochRsiLine, longScanLength);
def bearMacdDiv = (priceTopUp and macdHistoTopDown) or (priceTopDown and macdHistoTopUp);
def bearRsiDiv = (priceTopUp and rsiTopDown) or (priceTopDown and rsiTopUp);
def bearStochRsiDiv = (priceTopUp and stochRsiTopDown) or (priceTopDown and stochRsiTopUp);
def bearMoneyFlwIndxDiv = (priceTopUp and moneyFlwIndxTopDown) or (priceTopDown and moneyFlwIndxTopUp);
def bullMacdDiv = (priceBottomUp and macdHistoBottomDown) or (priceBottomDown and macdHistoBottomUp);
def bullRsiDiv = (priceBottomUp and rsiBottomDown) or (priceBottomDown and rsiBottomUp);
def bullstochRsiDiv = (priceBottomUp and stochRsiBottomDown) or (priceBottomDown and stochRsiBottomUp);
def bullmoneyFlwIndxDiv = (priceBottomUp and moneyFlwIndxBottomDown) or (priceBottomDown and moneyFlwIndxBottomUp);
AddChartBubble(bearMacdDiv, close, "MACD Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearRsiDiv, close, "RSI Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearStochRsiDiv, close, "Stochastic Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bearMoneyFlwIndxDiv, close, "MFI Bearish Divergence", CreateColor(255,170,170), yes);
AddChartBubble(bullMacdDiv, close, "MACD Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullRsiDiv, close, "RSI Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullstochRsiDiv, close, "Stochastic Bullish Divergence", Color.GREEN, yes);
AddChartBubble(bullmoneyFlwIndxDiv, close, "MFI Bullish Divergence", Color.GREEN, yes);
Any assistance would be greatly appreciated. Thanks in advance.