
La estrategia se basa en el indicador de la línea de Brin, para capturar la tendencia del mercado a través de la toma de posición baja cuando el precio toca la línea de Brin en la vía de arriba, y más cuando toca la vía de abajo. Al mismo tiempo, la estrategia también introduce el concepto de la pirámide de la adición de la posición, cuando el número de posiciones no alcanza el máximo valor establecido, continuará la adición de la posición en la dirección original.
La línea de Brin se compone de tres líneas, la línea central es un promedio móvil simple del precio de cierre, la línea superior y la línea inferior se suman y se reducen en función de la línea central. Como los precios siempre fluctúan cerca de la media, la línea superior y la inferior de la línea de Brin se puede considerar como una zona de presión del precio.
La estrategia aprovecha las características de la tendencia de la línea de Brin para entrar en juego cuando los precios tocan la vía ascendente y descendente, al tiempo que aumenta la captura de tendencias de la manera en que la pirámide aumenta la posición. La idea general es sencilla y efectiva.
/*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)