The Williams PercentR is a forward-looking indicator.
ToS provides the following description:
Advantages of Williams %R
Simple to use
Disadvantages of Williams %R
While profitable in trending markets, this study and all oscillators perform poorly in non-trends.
There are three important confluences to observe when analyzing oscillator charts:
https://usethinkscript.com/threads/how-to-read-an-oscillator-in-thinkorswim.11497/
This code has been updated to accommodate the suggestions from the posts below.
ToS provides the following description:
The Williams Percent R is a lower study. It is a momentum indicator that is designed to identify overbought and oversold areas in a non-trending market. The Williams Percent R can be interpreted similarly to the Stochastic oscillators but the Williams Percent R is simply plotted upside-down. Readings in the range of -80 to -100% may indicate that the security is oversold while readings in the 0 to -20% range suggest that it is overbought.
Advantages of Williams %R
Simple to use
- This is a forward-looking indicator with no lag!
- The formula is straightforward, making it accessible for new traders.
- Precise levels
- Provides clear overbought and oversold levels, making it easy to interpret.
- Can be used for trend identification, divergence, and convergence analysis.
- Volatile price sensitivity
- Useful for determining if prices are maintaining bullish or bearish momentum.
Disadvantages of Williams %R
While profitable in trending markets, this study and all oscillators perform poorly in non-trends.
- False signals: Can generate false signals, especially in volatile or choppy markets.
- Ranging markets: May provide less reliable signals in ranging markets.
- when using on shorter timeframes: Use volume, chart patterns, breakouts and other price action indicators to confirm or refute signals.
- A 3-day SMA has been added as a signal line.
- Overbought readings can actually help confirm an uptrend.
There are three important confluences to observe when analyzing oscillator charts:
https://usethinkscript.com/threads/how-to-read-an-oscillator-in-thinkorswim.11497/
This code has been updated to accommodate the suggestions from the posts below.
Ruby:
## #######################################################
# Williams PercentR
## #######################################################
# TD Ameritrade IP Company, Inc. (c) 2007-2024
#
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);
def WR = if result > 0 then 0 else result;
def WRavg = average(WR,3);
## #######################################################
# Charting & Formatting
declare lower ;
declare real_size;
plot pWR = if result > 0 then 0 else result;
pWR.SetDefaultColor(GetColor(1));
plot pWRavg = WRavg;
pWRavg.SetLineWeight(3);
pWRavg.AssignValueColor(
if WR > -20 then color.green else
if WR>WRavg then color.green else color.red);
AddCloud(WR, WRavg, color.green, color.red);
plot Over_Sold = overSold;
Over_Sold.SetDefaultColor(GetColor(8));
plot Over_Bought = overBought;
Over_Bought.SetDefaultColor(GetColor(8));
AddCloud(wr,overbought, color.green, color.gray);
AddCloud(wr, oversold, color.gray, color.red);
plot midline = -50 ;
AddLabel(yes,
if WR >= 50 then "Will%>50" else "Will%<50",
if WR > 50 then color.green else color.red);
Last edited by a moderator: