pinescript:如何更改 FILL 的显示顺序?

pinescript: how to change the display order of a FILL?

在 pinescript 中,我想先在 2 个图之间进行填充,所以填充是我代码中的第 37 行: 37 填充(oblv,obl,颜色=color.new(color.white,64),标题='Fill Overbought')

填充后,我想绘制移动平均线和其他类似第 45 行的内容: 45 plot(rsiMA, "RSI-based MA", color=color.orange)

在我的代码中,填充是我想做的第一件事,然后绘制其他东西(ma、rsi、...) 但是 pinescript 的问题是它总是最后填充,所以填充覆盖了其他地块。 在“设置”下的“样式”中,它出现在最后而不是第一个,请参阅附件

有什么方法可以控制填充顺序吗??

绘图、填充和水平线的顺序可以通过 indicator() 函数的 explicit_plot_zorder 参数来控制。如果为 true,将根据它们在指标代码中出现的顺序绘制图表,每个较新的图表都绘制在之前的图表之上。 例如,此脚本在 fill() 之后调用 plot() 函数,因此在顶部绘制:

//@version=5
indicator("fill", overlay=true, explicit_plot_zorder = true)
ma1 = ta.sma(close, 20)
ma2 = ta.sma(close, 50)
ma3 = ta.sma(close, 200)

plotMa1 = plot(ma1)
plotMa3 = plot(ma3)

fill(plotMa1, plotMa3, color=color.blue)

plot(ma2, color = color.red, linewidth = 3)

使用 explicit_plot_zorder = false 将强制脚本先绘制所有图,然后才将所有 fill() 函数绘制在顶部。

有关 Pine 脚本的更多信息 z-index:https://www.tradingview.com/pine-script-docs/en/v5/concepts/Colors.html?highlight=explicit_plot_zorder#z-index