Greeny

Directional Movement (DMI)

Directional Movement indicator implemented in Pine script. Use it to customize ADX behavior.
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?
study("Directional Movement", shorttitle="DMI")
adxlen = input(17, title="ADX Smoothing")
dilen = input(17, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)

plot(sig, color=red, title="ADX")
plot(up, color=blue, title="+DI")
plot(down, color=orange, title="-DI")

Comments

Thank you. What is the difference between the DMI on the top and the DMI on the bottom with the pink ADX? Also, how do I add the DMI on the bottom bro? :)
+13 Reply
Home Stock Screener Forex Screener Crypto Screener Economic Calendar About Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter