Как сделать так, чтобы ADX стал зеленым или красным в зависимости от его значения?

#pine-script

Вопрос:

Привет, я пытаюсь сделать свой формат сюжетной линии ADX условным. Я бы хотел, чтобы он стал зеленым, когда До сих пор у меня есть следующее, но я не могу заставить его работать

 ////////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)
 

Ответ №1:

надеюсь, с тобой все в порядке.

сегодня вышел v5, так что это может быть смесь версий, а также этот сценарий выглядит так, как будто он, возможно, пришел из v3. Вы должны быть готовы и работать, обеспечив наличие следующих строк: сначала нам нужно убедиться, что версия 4 и указано это исследование. Далее на нашей линии цвета участка нам нужно изменить цвет с зеленого на цвет.зеленый и т.д., Как показано ниже

 //@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)
 

Приветствия от коллеги-канадца 😉

Комментарии:

1. Спасибо, Бьоргум. Мне действительно нужно купить тебе выпить или 10 🙂