pine-script - 如何根据 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)
解决方案
一切顺利。
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)
来自加拿大同胞的欢呼;)
推荐阅读
- firebase - 从 Firebase 存储文件中获取 URL
- excel - 根据部分名称查找文件夹
- javascript - 在尖括号中将接口“传递”到 RxJS Store 是什么意思?
- java - 过滤列表以存储不同的组合
- javascript - Javascript使用请求节点模块一次打印所有状态
- git - .gitignore 文件中的 `syntax: glob/regexp` 是什么意思?
- flutter - 如何在颤动中将可扩展列表视图放在滚动视图中?
- python - 是否可以使用 Pandas 阅读 excel 评论?
- ruby-on-rails - Rails 系统测试中的 ActiveRelation 查询为空,但可以交互
- javascript - 如何使用声明常量的脚本多次重写 iframe