
布林带突破策略是一种只做多头的momentum追踪策略。它利用布林带的上轨和下轨来判断价格动能,并在价格突破上轨时做多,在价格跌破下轨或移动平均线时平仓。
该策略首先计算N日移动平均线作为基准线,然后在基准线上下各添加K倍标准差构建上轨和下轨,从而形成布林带。当价格突破上轨时,表示价格出现向上突破,属于金叉信号,此时策略会开仓做多;当价格跌破下轨或移动平均线时,表示价格出现向下回落,属于死叉信号,此时策略会平仓清仓。
由于布林带上轨和下轨能够动态地包含价格数据的大部分分布,所以它们代表了当前市场价格的合理波动范围。当价格突破该合理波动范围,就意味着市场出现异常,需要及时调整仓位。这就是该策略的基本判断逻辑。
该策略有以下几个优势:
该策略也存在一些风险:
为了控制这些风险,可以结合趋势判断指标,譬如MACD;也可以适当调整参数,缩小布林带范围来降低错误信号。
该策略还可以从以下几个方向进行优化:
通过以上几点优化,可以进一步提高策略稳定性,并减少交易风险。
布林带突破策略整体来说是一种较为经典的追踪趋势策略。它有比较清晰的判断逻辑和易操作的特点,适合量化交易。但也存在一定缺陷,需要进一步优化以适应复杂多变的市场环境。如果能与其他指标和策略机制有效结合,就能大幅提高效果。
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Senthaamizh
//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-BO", overlay=true)
source = close
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band
mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA
exit = input(1, minval=1, maxval=2,title = "Exit Option") // Use Option 1 to exit using lower band; Use Option 2 to exit using moving average
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
if (crossover(source, upper))
strategy.entry("Long", strategy.long, qty=1)
if(exit==1)
if (crossunder(source, lower))
strategy.close("Long")
if(exit==2) //basis is good for N50 but lower is good for BN (High volatility)
if (crossunder(source, basis))
strategy.close("Long")
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
fill(p1, p2)