Update to the zigzag , now it ignores the second top/bottom untill it finds a inversed top/bottom. TBTBTBTBTBTBTB instead of TBBTTBTBBTBTTB.
Updated to V8, link bellow in the related ideas.
Updated to V8, link bellow in the related ideas.
study(title="[RS]Fractals V5", overlay=true) // ||--- V1: Added filtering option // ||--- V4: diferentiated Bill Williams fractals and regular fractals as a choice // ||--- added zigzag option // ||--- V5: modified zigzag // ||--- Fractal Recognition: filterBW = input(false, title="filter Bill Williams Fractals:") filterFractals = input(false, title="Filter fractals using extreme method:") length = input(24, title="Extreme Window:") regulartopfractal = high[4] < high[3] and high[3] < high[2] and high[2] > high[1] and high[1] > high[0] regularbotfractal = low[4] > low[3] and low[3] > low[2] and low[2] < low[1] and low[1] < low[0] billwtopfractal = filterBW ? false : (high[4] < high[2] and high[3] < high[2] and high[2] > high[1] and high[2] > high[0] ? true : false) billwbotfractal = filterBW ? false : (low[4] > low[2] and low[3] > low[2] and low[2] < low[1] and low[2] < low[0] ? true : false) ftop = filterBW ? regulartopfractal : regulartopfractal or billwtopfractal fbot = filterBW ? regularbotfractal : regularbotfractal or billwbotfractal topf = ftop ? high[2] >= highest(high, length) ? true : false : false botf = fbot ? low[2] <= lowest(low, length) ? true : false : false filteredtopf = filterFractals ? topf : ftop filteredbotf = filterFractals ? botf : fbot // ||------------------------------------------------------------------------------------------------------ plotshape(filteredtopf, style=shape.triangledown, location=location.abovebar, color=red, text="•", offset=-2) plotshape(filteredbotf, style=shape.triangleup, location=location.belowbar, color=lime, text="•", offset=-2) // ||--- V1 : Added Swing High/Low Option ShowSwingsHL = input(true) highswings = filteredtopf == false ? na : valuewhen(filteredtopf == true, high[2], 2) < valuewhen(filteredtopf == true, high[2], 1) and valuewhen(filteredtopf == true, high[2], 1) > valuewhen(filteredtopf == true, high[2], 0) lowswings = filteredbotf == false ? na : valuewhen(filteredbotf == true, low[2], 2) > valuewhen(filteredbotf == true, low[2], 1) and valuewhen(filteredbotf == true, low[2], 1) < valuewhen(filteredbotf == true, low[2], 0) //--------------------------------------------------------------------------------------------------------- // ||--- Offset calculation: // ||--- unable to use, plots cant use series for offset value... //hsoffset = n-valuewhen(ftop == true, n[2], 1) //lsoffset = n-valuewhen(fbot == true, n[2], 1) //--------------------------------------------------------------------------------------------------------- plotshape(ShowSwingsHL ? highswings : na, style=shape.triangledown, location=location.abovebar, color=maroon, text="H", offset=-2) plotshape(ShowSwingsHL ? lowswings : na, style=shape.triangleup, location=location.belowbar, color=green, text="L", offset=-2) // ||--- V2 : Plot Lines based on the fractals. showchannel = input(true) plot(showchannel ? (filteredtopf ? high[2] : na) : na, color=black, offset=-2) plot(showchannel ? (filteredbotf ? low[2] : na) : na, color=black, offset=-2) //--------------------------------------------------------------------------------------------------------- // ||--- HLswings channel: unable to offset values //plot(showchannel ? (highswings ? high[2] : na) : na, color=black, offset=-2) //plot(showchannel ? (lowswings ? low[2] : na) : na, color=black, offset=-2) //---------------------------------------------------------------------------------------------------------- // ||--- ZigZag: showZigZag = input(true) istop = filteredtopf ? true : false isbot = filteredbotf ? true : false topcount = barssince(istop) botcount = barssince(isbot) zigzag = not showZigZag ? na : ( istop and topcount[1] > botcount[1] ? high[2] : isbot and topcount[1] < botcount[1] ? low[2] : na ) //zigzag = not showZigZag ? na : ( filteredtopf == true ? high[2] : filteredbotf == true ? low[2] : na ) plot(zigzag, color=black, offset=-2)