Pine 脚本 - 条件绘图样式

MRY*_*RYR 3 pine-script

我在任何地方都找不到这个问题的答案;甚至在官方文档中也没有。我尝试过自己编写代码,但它不起作用,所以也许这是不可能的。

在下面的示例中,您可以使用条件颜色进行绘图:

//STACKED EMAs
    MA1 = ta.ema(close, 5)
    MA2 = ta.ema(close, 8)
    MA3 = ta.ema(close, 13)
    MA4 = ta.ema(close, 21)
    MA5 = ta.ema(close, 34)
    MA_Stack_Up = (MA1 > MA2) and (MA2 > MA3) and (MA3 > MA4) and (MA4 > MA5)
    
    //CONDITIONS
    Uptrend = MA_Stack_Up
    Reversal = ((MA1 < MA2) and (MA2 > MA3)) or ((MA1 > MA2) and (MA2 < MA3))
    
    //COLOR CODING
    Bar_Color = Uptrend ? color.new(color.green, 25) : Reversal ? color.new(color.yellow, 25) : color.new(color.red, 25)

//PLOTS
plot(1, color=Bar_Color, style=plot.style_circles, linewidth=3)
Run Code Online (Sandbox Code Playgroud)

是否可以有一个条件语句来改变情节的风格?

例子:

B_Style = Cond1 ? plot.style_line : Cond2 ? plot.style_cross : plot.style_circles

//PLOTS
plot(1, color=Bar_Color, style=B_Style, linewidth=3)
Run Code Online (Sandbox Code Playgroud)

Bar*_*kut 5

目前看来是不可能的。一种可能的解决方法是使用变量作为您的条件plot(),并对不同的样式进行多次plot调用。

//@version=5
indicator("My Script")

myRsi = ta.rsi(close, 14)
cond = myRsi < 40 ? 1 : myRsi < 60 ? 2 : na
plot(cond == 1 ? myRsi : na, style=plot.style_circles, linewidth=2)
plot(cond == 2 ? myRsi : na, style=plot.style_cross, linewidth=2)
hline(40, color=color.red)
hline(60, color=color.red)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述