// Downloaded From https://www.WiseStockTrader.com // ******************************************** // INDICATOR : Ultimate Divergence Detector // DATE : 07-04-2014 // PROGRAMMER : Brad Konia // COPYRIGHTS : Public Domain // ******************************************** indName = "RSI"; // Specify the name of the indicator. This is cosmetic only. length = Param(indName + " Length", 14, 8, 100, 1); // Indicator length threshold = Param("Zig/Zag Threshold %", 10, 1, 50, 1); // Minimum % change in indicator value to be considered a zig/zag indVal = RSI(length); // Load the indVal array with the values from the indicator of your choice indZig = Zig(indVal, threshold); // Set the zig/zag values for the indicator indPeakVal1 = Peak(indVal, threshold, 1); // Most recent peak value indPeakBars1 = PeakBars(indVal, threshold, 1); // Bars since most recent peak indPeakVal2 = Peak(indVal, threshold, 2); // Second most recent peak value indPeakBars2 = PeakBars(indVal, threshold, 2); // Bars since second most recent peak indTroughVal1 = Trough(indVal, threshold, 1); // Most recent trough value indTroughBars1 = TroughBars(indVal, threshold, 1); // Bars since most recent trough indTroughVal2 = Trough(indVal, threshold, 2); // Second most recent trough value indTroughBars2 = TroughBars(indVal, threshold, 2); // Bars since second most recent trough // Determine if current bar is a peak or trough peakBar = indPeakBars1 == 0; troughBar = indTroughBars1 == 0; // Bearish divergence divergeBear = IIf(peakBar AND (indPeakVal1 < indPeakVal2) AND High > Ref(High, -indPeakBars2), True, False); Short = Ref(divergeBear, -1); // Enter short if the previous bar was a bearish divergence Cover = Ref(troughBar, -1); // Cover short if the previous bar was a trough // Bullish divergence divergeBull = IIf((indTroughBars1 == 0) AND (indTroughVal1 > indTroughVal2) AND Low < Ref(Low, -indTroughBars2), True, False); Buy = Ref(divergeBull, -1); // Enter long if the previous bar was a bullish divergence Sell = Ref(peakBar, -1); // Close long if the previous bar was a peak Plot(indVal, indName, colorGrey40); Plot(indZig, "", colorWhite); PlotShapes(IIf(peakBar OR troughBar, shapeCircle, shapeNone), colorGrey40, 0, indVal, 0); PlotShapes(IIf(divergeBear, shapeCircle, shapeNone), colorRed, 0, indVal, 0); PlotShapes(IIf(divergeBull, shapeCircle, shapeNone), colorBrightGreen, 0, indVal, 0);