该策略基于布林线指标,通过在价格触及布林线上轨时做空,触及下轨时做多的方式来捕捉市场趋势。同时,该策略还引入了金字塔加仓的概念,在持仓数量未达到设定的最大值时,会继续按原有方向加仓。
布林线由三条线组成,中轨是收盘价的简单移动平均线,上轨和下轨分别在中轨的基础上加减一定的标准差。由于价格总是在均值附近波动,因此布林线的上下轨可以看作是价格的压力区间。当价格突破上轨,意味着强势上涨趋势,可以做多;突破下轨则意味着强势下跌趋势,可以做空。同时,当持仓数量小于设定的最大值时,策略会在原有仓位的基础上继续加仓,放大趋势捕捉的力度。
该策略利用布林线的趋势特性,通过在价格触及上下轨时入场,同时以金字塔加仓的方式放大趋势捕捉力度,整体思路简洁有效。但是其也存在一定的滞后性和参数敏感性,在实际应用中需要注意优化参数和仓位管理,同时可以考虑与其他信号指标相结合,以期获得更稳健的策略表现。
/*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)