A estratégia é baseada no indicador Bollinger Bands. Captura as tendências do mercado indo curto quando o preço toca a faixa superior e indo longo quando toca a faixa inferior. Além disso, a estratégia introduz o conceito de pirâmide, onde continuará a adicionar posições na direção original se o número de posições não atingir o máximo definido.
As bandas de Bollinger consistem em três linhas. A faixa do meio é a média móvel simples do preço de fechamento. As bandas superior e inferior são um certo número de desvios padrão acima e abaixo da faixa do meio. Como os preços sempre flutuam em torno da média, as bandas superior e inferior das bandas de Bollinger podem ser vistas como um intervalo de pressão para os preços. Quando o preço atravessa a faixa superior, isso indica uma forte tendência ascendente e uma posição longa pode ser tomada; uma quebra abaixo da faixa inferior indica uma forte tendência descendente e uma posição curta pode ser tomada. Ao mesmo tempo, quando o número de posições é menor que o máximo definido, a estratégia continuará adicionando posições com base na posição original, amplificando a intensidade da captura de tendência.
A estratégia utiliza as características de tendência das Bandas de Bollinger. Ao entrar em posições quando o preço toca as bandas superior e inferior, e amplificando a intensidade da captura de tendência através de pirâmide, a ideia geral é simples e eficaz. No entanto, também tem certo atraso e sensibilidade de parâmetros. Em aplicações práticas, é necessário prestar atenção à otimização de parâmetros e gerenciamento de posição.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Breakout Strategy", overlay=true) // Définition des paramètres length = input(20, title="Bollinger Bands Length") multiplier = input(2.0, title="Multiplier") pyramiding = input(5, title="Pyramiding") // Calcul des bandes de Bollinger basis = ta.sma(close, length) dev = multiplier * ta.stdev(close, length) upper_band = basis + dev lower_band = basis - dev // Règles d'entrée buy_signal = close <= lower_band sell_signal = close >= upper_band // Gestion des positions if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) // Pyramiding if (strategy.opentrades < pyramiding) strategy.entry("Buy", strategy.long) else if (strategy.opentrades > pyramiding) strategy.entry("Sell", strategy.short) // Tracé des bandes de Bollinger plot(basis, color=color.blue) plot(upper_band, color=color.red) plot(lower_band, color=color.green)