Pine Script to help you visualize trend strength, spot trade signals, and filter out volatile markets.
The Average Directional Index (ADX) is a powerful tool for measuring trend strength, not direction.
//@version=6
indicator(title="Advanced ADX Trend Strength", shorttitle="AdvADX", overlay=false, format=format.price, precision=2)
// === User Inputs ===
len = input.int(14, minval=1, title="DI Length")
lensig = input.int(14, minval=1, maxval=50, title="ADX Smoothing")
adxThreshold= input.int(25, minval=1, maxval=100, title="ADX Threshold for Signals")
showSignals = input.bool(true, title="Show Buy/Sell Signals")
// === ADX & DI Calculation ===
[diplus, diminus, adx] = ta.dmi(len, lensig)
// === Plotting ===
plot(adx, color=color.red, title="ADX", linewidth=2)
plot(diplus, color=color.blue, title="+DI", linewidth=1)
plot(diminus, color=color.orange, title="-DI", linewidth=1)
hline(adxThreshold, "Trend Threshold", color=color.gray, linestyle=hline.style_dotted)
// === Signal Logic ===
bullCross = ta.crossover(diplus, diminus) and adx > adxThreshold
bearCross = ta.crossover(diminus, diplus) and adx > adxThreshold
// === Signal Plotting ===
plotshape(showSignals and bullCross, style=shape.triangleup, location=location.bottom, color=color.green, size=size.small, title="Buy Signal", text="BUY")
plotshape(showSignals and bearCross, style=shape.triangledown, location=location.top, color=color.red, size=size.small, title="Sell Signal", text="SELL")