松脚本-ADX指示修改

时间:2020-07-29 10:45:08

标签: pine-script

我想对ADX指标做一些小的修改,但是我的编程技能有限:

    //@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以下则有红色。

先谢谢您

1 个答案:

答案 0 :(得分:1)

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

plot(sig,color = sig > 30 ? color.green : sig < 20 ? color.red : color.grey)

您还可以为颜色使用变量,以节省空间

col = sig > 30 ? color.green : sig < 20 ? color.red : color.gray
plot(sig,color = col)