Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

//@version=5

indicator("Average Directional Index", shorttitle="ADX", format=format.price, precision=2,


timeframe="", timeframe_gaps=true)

adxlen = input(14, title="ADX Smoothing")

dilen = input(14, title="DI Length")

dirmov(len) =>

up = ta.change(high)

down = -ta.change(low)

plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)

minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)

truerange = ta.rma(ta.tr, len)

plus = fixnan(100 * ta.rma(plusDM, len) / truerange)

minus = fixnan(100 * ta.rma(minusDM, len) / truerange)

[plus, minus]

adx(dilen, adxlen) =>

[plus, minus] = dirmov(dilen)

sum = plus + minus

adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

plot(sig, color=color.red, title="ADX")

You might also like