Directional Movement Index (DMI)


Welles Wilder Jr. developed the Directional Movement concept in 1978. His concept includes the following components:
Directional Movement Index (DMI)
Average Directional Movement Index (ADX)
True Range (TR)
The Directional Movement Index comes before the Average Directional Movement Index. The DMI shows the strengths of the trend-favoring price movements in percentages. Its standard application is the smoothed ADX.


The DMI shows the strength of the trend, but not the trend direction. This means that it is particularly suited as a filter for trading systems employing the Parabolic SAR, for example, in order to filter out sideways phases. When the DMI rises (especially above 25), a trend is displayed; anything below that is recognized as a sideways phase. The +DI and the –DI point towards a trend. An uptrend is classified when the +DI is above the –DI. The further apart they drift, the stronger the trend.


DMI(int period)
DMI(IDataSeries inSeries, int period)
DMI(int period)[int barsAgo]
DMI(IDataSeries inSeries, int period)[int barsAgo]

Return value

When using this method with an index (e.g. DMI(20)[int barsAgo] ), the value of the indicator will be issued for the referenced bar.


inSeries Input data series for the indicator
period Number of bars included in the calculations


Directional Movement Index (DMI)


//Output for the DMI
Print("The current DMI value is: " + DMI(20)[0]);