在 Pine Script 中编写双布林线

Coding Double Bollinger Bands in Pine Script

我正在尝试在 tradingview 中使用 pine-script 为标准差 1 和 2 编写双布林带脚本。虽然脚本本身在保存和添加到图表时没有产生任何错误。但它既不工作,因为第二个标准偏差选项不工作或保持非功能性。我的代码如下-

//@version=5
indicator(shorttitle="DBB", title="Double Bollinger Bands", overlay=true, timeframe="", timeframe_gaps=true)
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

//BB
length_BB = input.int(20, minval=1)
src_BB = input(close, title="Source")
mult_BB = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis_BB = ta.sma(src_BB, length_BB)
dev_BB = mult * ta.stdev(src_BB, length_BB)
upper_BB = basis_BB + dev_BB
lower_BB = basis_BB - dev_BB
offset_BB = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis_BB, "Basis_BB", color=#FF6D00, offset = offset_BB)
p1_BB = plot(upper_BB, "Upper_BB", color=#2962FF, offset = offset_BB)
p2_BB = plot(lower_BB, "Lower_BB", color=#2962FF, offset = offset_BB)
fill(p1_BB, p2_BB, title = "Background", color=color.rgb(33, 150, 243, 95))

请帮我解决这个问题。谢谢和问候。

您有 mult_BB 输入,但未使用。相反,您在 devdev_BB 中都使用 mult 输入。因此,两对波段都乘以相同的数字,它们 return 相同的值并在图表上重叠,即使您为每个波段指定不同的乘数也是如此。替换以下内容应该可以解决此问题:

Before:
dev_BB = mult * ta.stdev(src_BB, length_BB)
After:
dev_BB = mult_BB * ta.stdev(src_BB, length_BB)