Pine脚本 - 条件绘图样式

3

我无法在任何地方找到答案,甚至官方文档中也没有。我已经尝试编码,但未成功,可能不可能。

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

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

1
看起来好像不可能。我可以为您提供一种解决方法,但这将需要多个 plot() 调用。 - vitruvius
如果不是太麻烦,我很想看看解决方法。 - MRYR
1个回答

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)

enter image description here


很遗憾目前还不可能,但非常感谢您展示了解决方法。我会尝试将其纳入我的代码中。 - MRYR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接