将 Donchian 通道和 Bollinger Bands 添加在一起

Adding Donchian Channel and Bollinger Bands together

我正在尝试将 Donchian Channel 和 Bollinger Bands 添加到一起。虽然我的脚本没有显示任何错误,但它既没有在图表上绘制布林带。我认为问题在于布林带的输入声明行。它不是使用 20 周期 SMA,而是从 20 周期 ATR 获取输入,与 Dochian 通道相同。我的代码如下-

//@version=5
indicator(title="Donchian Channels", shorttitle="DC", overlay=true, timeframe="", timeframe_gaps=true)
length = input.int(20, minval=1)
lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)
plot(basis, "Basis", color=#FF6D00)
u = plot(upper, "Upper", color=#2962FF)
l = plot(lower, "Lower", color=#2962FF)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")

///BB
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_bb = basis + dev
lower_bb = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot_bb(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill_bb(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

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

您的脚本确实产生了多个错误。

当您将两个脚本组合在一起时,只需为每个脚本的变量添加一个前缀。它总是更安全。

//@version=5
indicator(title="Donchian Channels", shorttitle="DC", overlay=true, timeframe="", timeframe_gaps=true)
dc_length = input.int(20, minval=1)
dc_lower = ta.lowest(dc_length)
dc_upper = ta.highest(dc_length)
dc_basis = math.avg(dc_upper, dc_lower)
plot(dc_basis, "Basis", color=#FF6D00)
dc_u = plot(dc_upper, "Upper", color=#2962FF)
dc_l = plot(dc_lower, "Lower", color=#2962FF)
fill(dc_u, dc_l, color=color.rgb(33, 150, 243, 95), title="Background")

///BB
bb_length = input.int(20, minval=1)
bb_src = input(close, title="Source")
bb_mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
bb_basis = ta.sma(bb_src, bb_length)
bb_dev = bb_mult * ta.stdev(bb_src, bb_length)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(bb_basis, "Basis", color=#FF6D00, offset = bb_offset)
bb_p1 = plot(bb_upper, "Upper", color=#2962FF, offset = bb_offset)
bb_p2 = plot(bb_lower, "Lower", color=#2962FF, offset = bb_offset)
fill(bb_p1, bb_p2, title = "Background", color=color.rgb(33, 150, 243, 95))