Home » Technical Analysis Functions » Understanding the ta.dmi() Function in Pine Script

Understanding the ta.dmi() Function in Pine Script

Photo of author
Published on

The ta.dmi() function in Pine Script is a powerful tool used for identifying the strength of a price trend. It does so by calculating the Directional Movement Index (DMI), which comprises three main components: the Positive Directional Indicator (+DI), the Negative Directional Indicator (-DI), and the Average Directional Index (ADX). This article aims to provide a comprehensive guide on how to use the ta.dmi() function effectively in your trading scripts.

Syntax of ta.dmi()

The ta.dmi() function has a straightforward syntax:

ta.dmi(diPeriod, adxSmoothing) → [series float, series float, series float]


  • diPeriod (simple int): This parameter specifies the period over which the +DI and -DI are calculated. It’s essential for identifying the timeframe of directional movements.
  • adxSmoothing (simple int): This parameter defines the smoothing period for the ADX, which helps in gauging the trend’s strength more accurately.


Here’s an example to illustrate how to implement the ta.dmi() function in your script:

indicator(title="Directional Movement Index", shorttitle="DMI", format=format.price, precision=4)
periodDI = input.int(17, minval=1, title="DI Length")
smoothADX = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
[plusDI, minusDI, averageDX] = ta.dmi(periodDI, smoothADX)
plot(averageDX, color=color.red, title="ADX")
plot(plusDI, color=color.blue, title="+DI")
plot(minusDI, color=color.orange, title="-DI")

In this example, we define an indicator with the title “Directional Movement Index” and provide options for users to input their desired DI Length and ADX Smoothing values. We then use these inputs to calculate the DMI components and plot them on the chart.

Detailed Walkthrough

  • Indicator Definition: We start by defining our indicator’s properties, including its title, short title, format, and precision.
  • Input Parameters: The script allows users to specify the DI Length and ADX Smoothing values, which are crucial for the DMI calculation.
  • DMI Calculation: The ta.dmi() function is called with the user-defined parameters to compute the +DI, -DI, and ADX values.
  • Plotting: Finally, the script plots the ADX, +DI, and -DI on the chart with distinct colors for easy differentiation.

Key Features

  • Function Usability: The ta.dmi() function simplifies the process of calculating and visualizing the DMI, making it an invaluable tool for trend analysis in trading strategies.
  • Syntax and Application: With its simple syntax, the function allows for flexible integration into various trading scripts, enabling traders to customize the indicator based on their analytical needs.
  • Comprehensive Analysis: By providing three critical components of trend strength and direction, the ta.dmi() function offers a comprehensive analysis of market trends, aiding in better decision-making.


  • The ta.dmi() function is essential for analyzing trend strength and direction through the +DI, -DI, and ADX indicators.
  • It offers customizable parameters for DI length and ADX smoothing, allowing traders to tailor the analysis to their specific needs.
  • By integrating this function into your trading scripts, you can enhance your market analysis, providing a solid foundation for informed trading decisions.

Through this detailed guide, you should now have a thorough understanding of the ta.dmi() function in Pine Script and how to utilize it effectively in your trading strategies.

Leave a Comment