首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pine脚本- ADX指示修改

pine脚本- ADX指示修改
EN

Stack Overflow用户
提问于 2020-07-29 18:45:08
回答 1查看 1.1K关注 0票数 0

我想对ADX指示器做一个小修改,但我的编程技能有限:

代码语言:javascript
复制
    //@version=4
study("Average Directional Index", shorttitle="ADX LP", format=format.price, precision=2, resolution="")
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
    up = change(high)
    down = -change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = rma(tr, len)
    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)

plot(sig, color=color.red, title="ADX")

我想实现类似于下图的东西:outcome

这个想法是有两行,一行在20行,另一行在30行。30以上是绿色,30到20之间是蓝色,20以下是红色。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 22:45:48

您可以直接在plot中使用三元条件运算符

代码语言:javascript
复制
plot(sig,color = sig > 30 ? color.green : sig < 20 ? color.red : color.grey)

您还可以使用颜色的变量来节省空间

代码语言:javascript
复制
col = sig > 30 ? color.green : sig < 20 ? color.red : color.gray
plot(sig,color = col)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63151856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档