The ADX is a combination of two other indicators developed by Wilder, the positive directional indicator (abbreviated +DI) and negative directional indicator (-DI).[2] The ADX combines them and smooths the result with an exponential
moving average.
To calculate +DI and −DI, one needs price data consisting of high, low, and closing prices each period (typically each day). One first calculates the directional movement (+DM and −DM):
UpMove = today's high − yesterday's high
DownMove = yesterday's low − today's low
if UpMove > DownMove and UpMove > 0, then +DM = UpMove, else +DM = 0
if DownMove > UpMove and DownMove > 0, then −DM = DownMove, else −DM = 0
After selecting the number of periods (Wilder used 14 days originally), +DI and −DI are:
+DI = 100 times exponential moving average of +DM divided by
average true range
−DI = 100 times exponential moving average of −DM divided by average true range
The exponential moving average is calculated over the number of periods selected, and the average true range is an exponential average of the true ranges. Then:
ADX = 100 times the exponential moving average of the absolute value of (+DI − −DI) divided by (+DI + −DI)
Variations of this calculation typically involve using different types of moving averages, such as a weighted moving average or an adaptive moving average.