You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据ADX指标的数值将其绘制线设置为绿色或红色

ADX指标条件着色修复方案

你的代码无法正常运行主要是以下3个问题:

  1. 缺少Pine Script版本声明,当前TradingView默认使用v5版本,旧版语法存在兼容问题
  2. 颜色参数未加color.命名空间前缀,直接写green、red无法被系统识别
  3. 计算DI+、DI-时没有处理真实波幅为0的场景,会触发除零报错

修正后的完整可运行代码如下:

//@version=5
indicator("ADX条件着色", overlay=false)
////////ADX
len = input.int(14, minval=1, title="长度")
th = input.float(0.15, minval=0.01, title="阈值")

TrueRange = math.max(math.max(high-low, math.abs(high-nz(close[1]))), math.abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? math.max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? math.max(nz(low[1])-low, 0): 0

SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange

SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus

SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / nz(SmoothedTrueRange, 1)
DIMinus = SmoothedDirectionalMovementMinus / nz(SmoothedTrueRange, 1)
DX = math.abs(DIPlus-DIMinus) / (DIPlus+DIMinus)
ADX = ta.sma(DX, len)
plotColour = ADX >= th ? color.green : color.red

plot(ADX, color=plotColour, linewidth=3)
hline(th, color=color.black)

以上代码适配Pine Script v5版本,运行后即可实现ADX数值≥0.15显示绿色、<0.15显示红色的效果,指标参数可在设置面板中自行调整。

内容的提问来源于stack exchange,提问作者Blind Blake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:45:00