Directional Movement Index (DMI)

Abbreviation: DMI
Category: Price Momentum Indicators

Input Parameters:

Name Range Default
High Price High
Low Price Low
Closing Price Close
ExpAvg Periods Int >= 1 10

 
Calculation:

DMI = DX * 100

where
DX = Directional Movement = Abs(PDI – MDI) / (PDI + MDI)
PDI = Plus Directional Indicator = SPDM / STR
MDI = Minus Directional Indicator = SMDM / STR

SPDM = Smoothed PDM = ExpAvg(PDM, ExpAvg Periods)
SMDM = Smoothed MDM = ExpAvg(MDM, ExpAvg Periods)
STR = Smoothed TR = ExpAvg(TR, ExpAvg Periods)

TR = True Range = Max3(Abs(High-Low), Abs(High-Previous Close), Abs(Low – Previous Close))

PDM = Plus Directional Movement = High – Previous High
MDM = Minus Directional Movement = Previous Low – Low
If PDM > MDM then MDM = 0
If PDM < MDM then PDM = 0
If Inside Day then PDM = 0 and MDM = 0

Inside Day = if (High – Previous High < 0) and (Low – Previous Low > 0) then True else False

Max3 represents Max3
Abs represents Absolute Value
ExpAvg represents Exponential Moving Average

 
Discussion:

The Directional Movement Index provides a means of distinguishing between a market with significant trending and a market with only sideways movement. Mathematically, the Directional Movement Index ranges between values of 0 and 100; however, in practice it usually does not reach either extreme. The closer the index is to 100, the stronger the trending characteristics of the market. The closer the index is to 0, the stronger the sideways characteristics of the market.
Difference between NeuroShell’s DMI indicator and Wilder’s Original DMI:

Note that NeuroShell’s DMI indicator is based upon TradeStation’s DMI implementation and is therefore different from Wilder’s original. The DMI uses an exponential moving averages (EMA). NeuroShell Trader’s EMA period has a different meaning as compared to Wilder’s original EMA period, because Wilder used a different type of EMA. Here is how they relate to each other:

 

NeuroShell Trader’s EMA period = Wilder’s EMA period * 2 – 1 

This applies to the DMI Periods parameter.

 

For example, suppose you want to match Wilder’s indicator using two periods of 14 bars each. To be able to re-create the results in NeuroShell Trader, you should use 14*2-1=27 bar periods for the DMI periods.

 

NeuroShell Trader’s version of DMI matches Wilder’s when you use (Wilder’s EMA period * 2 – 1) value for the period parameter.
 

Was this article helpful?

Related Articles