MultiCharts Easter Sale has jumped in! Up to 50% off Explore offers
+1 888 340 6572 GET STARTED

Miscellaneous > Williams Accumulation - Distribution

Article/Author: Omega Research Inc., 1997

Download: WILLIAMS_AD.ELA

Category: Indicator > Miscellaneous

Description:

The Williams Acc-Dis indicator was developed by Larry Williams and is based on Accumulation Distribution. It is similar to the classic Accumulation Distribution indicator except that the Williams Acc-Dis does not include volume in its calculation. Accumulation occurs when the Close of the current bar is greater than the Close of the previous bar and its value is calculated based on the difference between the Close of the current bar and the True Low. Distribution occurs when the Close of the current bar is less than the Close of previous bar and its value is calculated based on the difference between the Close of the current bar and the True High.

The value of Williams Acc-Dis is cumulative. Accumulation (positive values) are added to the previous Williams Acc-Dis value, while Distribution (negative values) are subtracted from the previous value. If the current close equals the previous bar’s close, the Acc-Dis value is unchanged.

Usage:

Typically, the Williams Acc-Dis indicator is used to identify divergences between price activity and the indicator itself. As with other divergences, if the market reaches new highs while the indicator is stagnant or falling, the current trend may be weakening suggesting a possible reversal. Conversely, if the market reaches new lows while the indicator is stagnant or rising, the trend may be weakening perhaps signaling a reversal.

The inputs, Lterm and Sterm, determine long and short term price ranges and are used for the purpose of triggering alerts. The current high and low are compared with the highest highs and lowest lows of the Lterm and Sterm respectively. The results are then used to check for divergences between current price ranges and current values of Williams Acc-Dis. When divergences are identified alerts are triggered if enabled.




Inputs:

LTerm - Number of bars used to calculate a new long-term high or low
STerm - Number of bars used to calculate a new short-term high or low

EasyLanguage Code:
INPUTS: LTERM(45), STERM(9); 


PLOT1(LWACCDIS, "LWAD");

{ALERT CRITERIA}
CONDITION1 = HIGH > HIGHEST(HIGH, STERM)[1] AND PLOT1 < HIGHEST(PLOT1, STERM);
CONDITION2 = HIGH > HIGHEST(HIGH, LTERM)[1] AND PLOT1 < HIGHEST(PLOT1, LTERM);
CONDITION3 = LOW < LOWEST(LOW, STERM)[1] AND PLOT1 > LOWEST(PLOT1, STERM);
CONDITION4 = LOW < LOWEST(LOW, LTERM)[1] AND PLOT1 > LOWEST(PLOT1, LTERM);
IF CONDITION1 OR CONDITION2 THEN BEGIN
IF CONDITION1 AND CONDITION2 THEN
ALERT("A BEARISH DIVERGENCE HAS OCCURRED FOR BOTH THE LONG AND SHORT TERM.")
ELSE
IF CONDITION1 THEN
ALERT("A SHORT TERM BEARISH DIVERGENCE HAS OCCURRED.")
ELSE
ALERT("A LONG TERM BEARISH DIVERGENCE HAS OCCURRED.");
END;
IF CONDITION3 OR CONDITION4 THEN BEGIN
IF CONDITION3 AND CONDITION4 THEN
ALERT("A BULLISH DIVERGENCE HAS OCCURRED FOR BOTH THE LONG AND SHORT TERM.")
ELSE
IF CONDITION3 THEN
ALERT("A SHORT TERM BULLISH DIVERGENCE HAS OCCURRED.")
ELSE
ALERT("A LONG TERM BULLISH DIVERGENCE HAS OCCURRED.");
END;