#reverse_williamsperr
#https://usethinkscript.com/threads/convert-create-reverse-engineering-williams-r-for-upper-chart.19595/
#Convert/Create Reverse Engineering Williams %R for upper chart
#chewie76 9/6
#1
#ThinkorSwim already has a Reverse Engineering RSI and MACD for the upper chart. Is it possible to create/convert a Williams %R to display on the upper chart in similar fashion? Ideally I'd like to see bands displayed for the 0, -5, -95, -100 levels. Thanks!
# WilliamsPercentR
# Charles Schwab & Co. (c) 2007-2024
#declare lower;
input length = 10;
input overBought = -20;
input overSold = -80;
def hh = Highest(high, length);
def ll = Lowest(low, length);
def result = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);
#plot WR = if result > 0 then 0 else result;
plot WR = if result > 0 then 0 else result+100;
WR.SetDefaultColor(GetColor(1));
#plot Over_Sold = overSold;
#Over_Sold.SetDefaultColor(GetColor(8));
#plot Over_Bought = overBought;
#Over_Bought.SetDefaultColor(GetColor(8));
#----------------------------------
# number 0 to -100
input wpr2 = -50.0;
# def result = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);
# wpr = if hh == ll then -100 else (hh - close) / (hh - ll) * (-100);
# wpr = (hh - close) / (hh - ll) * (-100);
# wpr x (hh - ll) x (-100) = (hh - close)
# -100wpr x (hh - ll) = (hh - close)
# -100wpr*hh - ll*(-100wpr) = (hh - close)
# -100wpr*hh + 100wpr*ll = (hh - close)
# + 100wpr*ll = (hh - close) + 100wpr*hh
# ll = ((hh - close) + 100wpr*hh) / 100wpr
def hh2 = Highest(high, length);
def ll2 = ((hh2 - close) + (100 * wpr2 * hh2)) / (100 * wpr2);
plot z = ll2;
# how to invert these ?
#def hh = Highest(high, length);
#def ll = Lowest(low, length);
#def hh = Highest(high, length);
# length = 10 , many vars to 1
#def hh = max( high1, high2, high3,... high10 )
# rev would be 1 var to many...
#