首页 > 解决方案 > 如何根据 ADX 的值使 ADX 变为绿色或红色?

问题描述

嗨,我正在尝试有条件地制作我的 ADX 绘图线格式。我希望它在 <=0.15 时变为绿色,在低于此数字时变为红色。到目前为止,我有以下内容,但我无法让它工作

////////ADX
len = input(14)
th = input(0.15)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? 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 / SmoothedTrueRange 
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange 
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)
ADX = sma(DX, len)
adxup = ADX>=0.15
adxdown = ADX<0.15
plotColour = (ADX > 0.15) ? green : red

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

标签: pine-script

解决方案


一切顺利。

v5 今天发布了,所以这可能是一个版本混合,而且这个脚本看起来可能来自 v3。您应该通过确保具有以下几行来启动并运行:首先,我们需要确保版本是 4 并且指定了该研究。接下来在我们的 plotColour 行中,我们需要将颜色从绿色调到 color.green 等,如下所示

//@version=4
study('Blake ADX')

plotColour = (ADX > th) ? color.green : color.red

或者,我们可以将整个作品升级到 v5:

//@version=5
indicator('Blake ADX')

len = input(14)
th = input(0.15)

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 / SmoothedTrueRange
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange
DX = math.abs(DIPlus - DIMinus) / (DIPlus + DIMinus)
ADX = ta.sma(DX, len)
adxup = ADX >= th
adxdown = ADX < th
plotColour = adxup ? color.green : color.red

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

来自加拿大同胞的欢呼;)


推荐阅读