# Bill Williams Fractal Indicator from TOS

I see there have been several conversions done from TOS thinkscripts, was wondering if someone could help with converting this excellent fractal indicator based on Bill Williams work. Here is the TOS thinkscript. Thank you in advance!

# Bill Williams Fractal Template
# Coded By: Rigel May 2018

#Define ānā as the number of periods and keep a minimum value of 2 for error handling.
input n=2;

# Williams Fractals are a 5 point lagging indicator that will draw 2 candles behind.
# The purpose of the indicator is to plot points of trend reversals.
# Often these are paired with trailing stop indicators such as Parabolic SAR, Volatility Stop, and SuperTrend.

# Down pointing fractals occur over candles when:
# High(n-2) < High(n)
# High(n-1) < High(n)
# High(n + 1) < High(n)
# High(n + 2) < High(n)
#dnFractal = (high[n-2] < high[n]) and (high[n-1] < high[n]) and (high[n+1] < high[n]) and (high[n+2] < high[n])

def isupfractal = if low < low[1] and low < low[2] and low < low[-1] and low < low[-2] then low else double.nan;
# Up pointing fractals occur under candles when:
# Low(n-2) > Low(n)
# Low(n-1) > Low(n)
# Low(n + 1) > Low(n)
# Low(n + 2) > Low(n)
#upFractal = (low[n-2] > low[n]) and (low[n-1] > low[n]) and (low[n+1] > low[n]) and (low[n+2] > low[n])
def isdownfractal = if high > high[1] and high > high[2] and high > high[-1] and high > high[-2] then high else double.nan;
# Plot the fractals as shapes on the chart.

plot upfractal = if( isupfractal, isupfractal+ (1 * tickSize()) , double.nan);
upfractal.SetPaintingStrategy(paintingStrategy.ARROW_UP);
plot downfractal = if( isdownfractal, isdownfractal - (1 * tickSize()), double.nan);
downfractal.SetPaintingStrategy(paintingStrategy.ARROW_DOWN);plot Data = close;

Aloha Dennis, as far as I know we can not add an indicator to bars in the past, which would be required to get this indicator working. @Victor_Vins1 am I correct in this assumption and do you have a sense for if this might be possible at some point?

1 Like