如何在TradingView中计算布林带

引言

布林带(Bollinger Bands)是由约翰·布林格(John Bollinger)发明的一种技术分析工具,用于衡量市场波动性和价格的相对高低。最近这位大神又整了一个花活,叫布林蜡烛,有机会一定要研究一下。

布林带的用法

衡量波动性

布林带的宽度反映了市场的波动性。当市场波动性增加时,布林带的上下轨会变宽;当波动性减少时,布林带的上下轨会收窄。

识别超买和超卖

当价格触及上轨时,可能表示市场处于超买状态,价格可能会反转向下。当价格触及下轨时,可能表示市场处于超卖状态,价格可能会反转向上。

价格突破信号

价格突破布林带的上轨或下轨有时可以视为趋势反转或延续的信号。如果价格突破上轨并持续在高位运行,可能意味着市场强势;如果突破下轨并持续在低位运行,可能意味着市场弱势。

回归均值

布林带的中轨通常表示市场的平均水平,价格偏离中轨后通常会有回归的趋势。这是布林带应用的一个重要原则,即价格会回归到中轨附近。

震荡行情中的辅助工具

布林带特别适用于震荡行情中的操作,可以帮助识别价格的极端波动区间。在震荡市场中,当价格在布林带上下轨之间波动时,交易者可能会利用这种模式进行反向交易。

计算方法

布林带(Bollinger Bands)的计算方法主要涉及三条线:中轨(SMA)、上轨和下轨。它们是基于价格的简单移动平均线(SMA)和标准差来计算的。

1. 中轨(Middle Band)

中轨是选定周期(通常是20日)的简单移动平均线(SMA)。它反映了过去N天的平均价格水平。

公式:

中轨 = SMA(N)

其中,SMA是简单移动平均,N是周期,通常设为20。实现方法:


//@version=6
indicator("布林带", overlay = true)
basis = ta.sma(close, 20)
plot(basis)

首先我们创建一个新的指标脚本,indicator(“布林带”, overlay = true),overlay的作用是将图线绘制到主图表中。ta是系统内置的库,参数close表示使用收盘价计算SMA,20表示窗口周期。然后我们使用plot(basis)将它画出来看看效果。

这条蓝色的线就是SMA20,也是布林带的中轨。

2. 上轨(Upper Band)

上轨是中轨加上某个倍数的标准差(通常是2倍)。

公式:

上轨 = 中轨 − (k×σ)

其中,k是标准差的倍数,通常为2;σ是选定周期的标准差。

标准差(σ)的计算公式为:

$$\sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} \left( \text{Close}_i – \text{SMA} \right)^2}$$

这里的SMA是上面计算出的简单移动平均。

3. 下轨(Lower Band)

下轨是中轨减去某个倍数的标准差(通常是2倍)。

公式:

下轨 = 中轨 − (k×σ)

同样,k是标准差的倍数,通常为2。

标准差的计算方法:

std = ta.stdev(close, 20)

ta.stdev是系统内置的函数

得到标准差之后,我们就可以依次计算出上下轨道

upper = basis +  2 * std
lower = basis - 2 * std

最后再美化一下画表

offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window)
plot(basis, "Basis", color=#2962FF, offset = offset)
p1 = plot(upper, "Upper", color=#F23645, offset = offset)
p2 = plot(lower, "Lower", color=#089981, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

效果如下:

总结

布林带是一个很有用的技术分析工具,能够帮助交易者衡量市场的波动性,识别潜在的反转点,以及在震荡市场中寻找交易机会。然而,像所有技术指标一样,布林带并不是完美的,它最好与其他技术工具和分析方法结合使用,以提高交易的成功率。

完整代码如下:

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © openbox6

//@version=6
indicator("布林带", overlay = true)
basis = ta.sma(close, 20)
std = ta.stdev(close, 20)
upper = basis +  2 * std
lower = basis - 2 * std
offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window)
plot(basis, "Basis", color=#2962FF, offset = offset)
p1 = plot(upper, "Upper", color=#F23645, offset = offset)
p2 = plot(lower, "Lower", color=#089981, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
发表回复 0

Index