Pine Script - 条件绘图样式

Pine Script - Conditional Plot Style

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

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

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

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

示例:

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

//PLOTS
plot(1, color=Bar_Color, style=B_Style, linewidth=3)

目前看来是不可能的。一种可能的解决方法是使用变量作为 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)