
A estratégia baseia-se no indicador de linha de Brin, para capturar a tendência do mercado através de uma forma de fazer o espaço quando o preço toca a linha de Brin de cima e fazer mais quando toca a linha de baixo. Ao mesmo tempo, a estratégia também introduziu o conceito de acréscimo de posição de pirâmide, que continuará a acréscimo de posição na direção original quando o número de posições não atingir o valor máximo definido.
A linha de Brin é composta por três linhas, a trajectória central é a média móvel simples do preço de fechamento, a trajectória superior e a trajectória inferior, respectivamente, são adicionadas e subtraem uma certa diferença padrão na base da trajectória central. Como os preços sempre flutuam perto da média, a trajetória superior e inferior da linha de Brin pode ser vista como uma área de pressão no preço. Quando o preço se eleva, significa uma forte tendência ascendente, pode ser feito mais; quando se eleva, significa uma forte tendência descendente, pode ser feito vazio.
A estratégia usa a característica de tendência da linha de Brin para entrar em ação quando o preço toca o caminho de subida e descida e, ao mesmo tempo, aumenta a capacidade de captura de tendências de forma a aumentar a posição da pirâmide. No entanto, há um certo atraso e sensibilidade de parâmetros.
/*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)