Esta estratégia usa Bandas de Bollinger para determinar a direção da tendência do preço combinada com médias móveis rápidas e lentas para entrar em posições. O sinal de compra é acionado quando o preço atravessa a banda média de Bollinger e a média móvel rápida cruza a média móvel lenta. O sinal de venda é acionado quando o preço quebra abaixo da banda média de Bollinger e a média móvel rápida cruza abaixo da média móvel lenta. O método de stop loss é o ATR trailing stop loss.
A estratégia consiste principalmente no indicador Bollinger Bands e nas médias móveis.
OBandeiras de BollingerA banda média é a média móvel simples de n dias. A banda superior e a banda inferior são k desvios padrão acima e abaixo da banda média. Quando o preço está perto da banda superior, indica condições de sobrecompra. Quando o preço está perto da banda inferior, indica condições de sobrevenda. A banda média representa a direção da tendência do preço.
OMédia móvelA média móvel rápida tem um período de 40 e a média móvel lenta tem um período de 120. Quando o MA rápido cruza o MA lento, é um sinal de compra.
Com base nas regras dos indicadores acima referidos, os sinais de negociação específicos desta estratégia são:
Comprar sinal: Preço fechado quebra a faixa média e MA rápida cruza a MA lenta
Venda de sinal: Preço de fechamento abaixo da faixa média e cruzamento rápido da MA abaixo da MA lenta
Parar de Perder: ATR trailing stop loss, preço de stop loss é o preço atual menos 4 vezes ATR
Esta estratégia combina as bandas de Bollinger e as médias móveis, que podem determinar eficazmente a direcção da tendência dos preços e evitar a abertura excessiva de posições durante os períodos de variação.
A faixa média de Bollinger pode refletir claramente a tendência do preço. Quando o preço quebra a faixa média, forma um forte sinal de tendência. As faixas superior e inferior podem julgar efetivamente as condições de sobrecompra e sobrevenda para evitar perseguir novas altas e matar baixas durante os períodos variáveis.
A cruz de ouro e a cruz morta de MAs rápidos e lentos também são métodos comumente usados para determinar tendências.
O sistema ATR de stop loss traseiro ajusta o ponto de stop loss para se adaptar às flutuações do mercado, controlando efetivamente a perda de uma única posição.
O maior risco desta estratégia é que o preço pode rapidamente recuar após a quebra da faixa média, incapaz de obter lucros efetivamente. Isso resultaria em perdas. A solução é ajustar adequadamente os parâmetros MA para que os indicadores correspondam melhor às características do mercado.
Outro risco é que, durante os períodos de variação, as Bandas de Bollinger e as Médias Móveis possam dar sinais errados. Neste momento, devemos considerar ignorar os sinais de negociação e esperar por tendências mais claras. Ou reduzir o tamanho da posição adequadamente.
A estratégia pode ser otimizada nos seguintes aspectos:
Ajustar os parâmetros das bandas de Bollinger para adaptá-los às características do mercado de diferentes períodos
Ajustar os parâmetros de MA rápidos e lentos para melhor corresponder aos instrumentos de negociação específicos
Adicionar outros indicadores auxiliares para combinação para melhorar a estabilidade da estratégia
Otimizar os métodos de dimensionamento das posições, aumentar as posições durante os períodos de tendência e diminuir as posições durante os períodos de variação
Teste diferentes métodos de stop loss para encontrar melhores soluções
Em geral, esta é uma tendência típica após a estratégia. Combina Bandas de Bollinger e Média Móvel para determinar tendências de preços e oportunidades de negociação. O sinal de estratégia é relativamente claro, adequado para negociação automatizada. Mas também tem alguns riscos, parâmetros e regras que precisam ser otimizados para se adaptar a ambientes de mercado mais extensos.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 1m basePeriod: 1m 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/ // © Robrecht99 //@version=5 strategy("Trend Following with Bollinger Bands", overlay=true, margin_long=100, margin_short=100, pyramiding=4) // Bollinger Bands // length = input.int(20, minval=1, group="Bollinger Bands Inputs") src = input(close, title="Source", group="Bollinger Bands Inputs") 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, group="Bollinger Bands Inputs") plot(basis, "Basis", color=color.orange, offset = offset) p1 = plot(upper, "Upper", color=color.orange, offset = offset) p2 = plot(lower, "Lower", color=color.orange, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(255, 0, 255, 95)) // Moving Averages // len1 = input.int(40, minval=1, title="Length Fast MA", group="Moving Average Inputs") len2 = input.int(120, minval=1, title="Length Slow MA", group="Moving Average Inputs") src1 = input(close, title="Source Fast MA") src2 = input(close, title="Source Slow MA") maColorFast = input.color(color.new(color.red, 0), title = "Color Fast MA", group = "Moving Average Inputs", inline = "maFast") maColorSlow = input.color(color.new(color.purple, 0), title = "Color Slow MA", group = "Moving Average Inputs", inline = "maSlow") fast = ta.ema(src1, len1) slow = ta.ema(src2, len2) plot(fast, color=maColorFast, title="Fast EMA") plot(slow, color=maColorSlow, title="Slow EMA") // ATR Inputs // strategy.initial_capital = 50000 lengthATR = input.int(title="ATR Period", defval=14, minval=1, group="ATR Input") risk = input(title="Risk Per Trade", defval=0.01, group="ATR Input") multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs") atr = ta.atr(length) amount = (risk * strategy.initial_capital / (2 * atr)) // Buy and Sell Conditions // entrycondition1 = ta.crossover(fast, slow) entrycondition2 = fast > slow sellcondition1 = ta.crossunder(fast, slow) sellcondition2 = slow > fast // Buy and Sell Signals // if (close > basis and entrycondition2) strategy.entry("long", strategy.long, qty=amount) stoploss = close - atr * 4 strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss) if (sellcondition1 and sellcondition2) strategy.close(id="long") if (close < basis and sellcondition2) strategy.entry("short", strategy.short, qty=amount) stoploss = close + atr * 4 strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss) if (entrycondition1 and entrycondition2) strategy.close(id="short")