Стратегия основана на индикаторе полос Боллинджера. Она отслеживает рыночные тенденции, выходя на короткое, когда цена касается верхней полосы, и выходя на длинное, когда она касается нижней полосы. Кроме того, стратегия вводит концепцию пирамидизации, где она будет продолжать добавлять позиции в исходном направлении, если количество позиций не достигло установленного максимума.
Боллингерские полосы состоят из трех линий. Средняя полоса представляет собой простую скользящую среднюю цену закрытия. Верхние и нижние полосы представляют собой определенное количество стандартных отклонений выше и ниже средней полосы. Поскольку цены всегда колеблются вокруг среднего, верхние и нижние полосы Боллингерских полос можно рассматривать как диапазон давления на цены. Когда цена проходит через верхнюю полосу, это указывает на сильную восходящую тенденцию и можно занять длинную позицию; перерыв ниже нижней полосы указывает на сильную нисходящую тенденцию и можно занять короткую позицию. В то же время, когда количество позиций меньше установленного максимума, стратегия будет продолжать добавлять позиции на основе исходной позиции, усиливая интенсивность захвата тренда.
Стратегия использует тенденционные характеристики полос Боллинджера. Вводя позиции, когда цена касается верхних и нижних полос, и усиливая интенсивность захвата тренда посредством пирамидирования, общая идея проста и эффективна. Однако она также имеет определенную задержку и чувствительность к параметрам. В практических приложениях необходимо обратить внимание на оптимизацию параметров и управление позициями.
/*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)