This ADX indicator ( Average Directional Index ) tries to estimate the strength of a trend. The Average Directional Index is derived from the positive ( +DI ) and the negative directional indicator ( -DI ). The direction of movement is determined by comparing the highs and lows of the current and past periods.

As soon as the indicator determines a trend strength for upward or downward trend, a label is displayed. An upward trend is labelled "Bullish Trend". The downward trend bears the label "Bearish Trend".

The clouds in the background represent the movements of the Average Directional Index High/Low:
  • Color orange: neutral, uncertain in which direction it is going.
  • Color green: upward trend
  • Color red: downward trend

The line represents the average value of the ADX signal:
  • Color orange: neutral: still uncertain in which direction it is going
  • Color green / outgoing line: upward trend
  • Color green / descending line: weakening upward trend
  • Color red / exiting line: downward trend
  • Color red / descending line: weakening downward trend

The following configurable options are possible:
  • "ADX Smoothing
  • Directional Index Length
  • Level Range
  • Level Trend
リリースノート: Here's a nice little update on that. Normally the ADX calculations are calculated with the moving average "Running Moving Average (RMA)". Under the settings you can now select different MA types via the option "Type of Moving Average". With this new, interesting possibilities are then available.

Selectable MA variants:




What an indicator, thank you so much!
500 コイン
KINSKI mrabd

Thank you for the support!
hi i am using below adx script. I want to just set a alert msg based on DI+ and DI- line values. Can you please guide how to set alert msg. I tried POSTSHAPE but when i apply it I loose my both DI+ / DI- lines. not successfull.

Please guide....

If DI+ values ...
//0-25=Absent or Weak Trend
//25-50=Strong Trend
//50-75=Very Strong Trend
//75-100=Extremely Strong Trend
If DI+ values ...
//0-25=Absent or Weak Trend
//25-50=Strong Trend
//50-75=Very Strong Trend
//75-100=Extremely Strong Trend


script i am using...

//ADX Value for Trend Strength
//0-25=Absent or Weak Trend
//25-50=Strong Trend
//50-75=Very Strong Trend
//75-100=Extremely Strong Trend

len = input(title="Length", type=integer, defval=14)
th = input(title="threshold", type=integer, defval=25)
//avg = input(title="SMA", type=integer, defval=10)

TrueRange = max(max(high-low, abs(high-nz(close))), abs(low-nz(close)))
DirectionalMovementPlus = high-nz(high) > nz(low)-low ? max(high-nz(high), 0): 0
DirectionalMovementMinus = nz(low)-low > high-nz(high) ? max(nz(low)-low, 0): 0

SmoothedTrueRange = nz(SmoothedTrueRange) - (nz(SmoothedTrueRange)/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus) - (nz(SmoothedDirectionalMovementPlus)/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus) - (nz(SmoothedDirectionalMovementMinus)/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
//ADX = sma(DX, len)
//SMA = sma(ADX, avg)

plot(DIPlus, color=green, title="DI+")
plot(DIMinus, color=red, title="DI-")
//plot(ADX, color=yellow, title="ADX")
//plot(SMA, color=white, title="SMA")
hline(th, color=yellow, linestyle=dashed)
This is the kind of ADX I needed for a long time .... Thanks for sharing
Nice, work, I have added this to my favorite indicators, waiting to observe in live market.

Thank You!