Esta estratégia gera sinais de negociação com base no indicador Bollinger Bands e gerencia posições usando stop-loss/take-profit. Monitora a quebra das bandas superior e inferior da Bollinger Bands, vai longo quando o preço quebra acima da banda superior, vai curto quando o preço quebra a banda inferior e sai quando o preço quebra as bandas em reverso usando ordens de stop-loss.
A estratégia utiliza as faixas média, superior e inferior do indicador Bollinger Bands. A faixa do meio é a média móvel, a faixa superior é a faixa do meio mais 2 desvios padrão e a faixa inferior é a faixa do meio menos 2 desvios padrão.
Primeiro, ele calcula as bandas de Bollinger do meio, superior e inferior. Em seguida, verifica se o preço quebra acima da faixa superior ou abaixo da faixa inferior. Se o preço quebra acima da faixa superior, ele vai longo. Se o preço quebra abaixo da faixa inferior, ele vai curto. Também se o preço quebra as bandas no inverso, ele sai de posições usando ordens de stop-loss.
Especificamente, a lógica estratégica é:
Isso permite capturar tendências quando o preço faz grandes movimentos, limitando as perdas usando stop-loss.
Pode otimizar através da combinação de indicadores, ajustando unidades de stop-loss etc.
Esta é uma tendência relativamente simples seguindo uma estratégia baseada em Bandas de Bollinger. Pode tomar posições rapidamente quando o preço quebra e usa stop-loss para controlar o risco. Mas confiar apenas no preço pode causar julgamentos errados, enquanto o stop-loss sensível pode aumentar a frequência de negociação. Podemos melhorá-lo ainda mais através de ajuste de parâmetros, combinação de indicadores, ajuste de paradas, etc. No geral, fornece uma estrutura de negociação quantitativa simples e confiável.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m 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/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()