이 전략은 볼링거 밴드 지표에 기반을 두고 있다. 이 전략은 가격이 상위 밴드에 닿을 때 단위로, 하위 밴드에 닿을 때 길게 이동함으로써 시장 추세를 파악한다. 또한, 이 전략은 피라미딩의 개념을 도입하여, 포지션 수가 설정된 최대치에 도달하지 못하면 원래 방향으로 포지션을 계속 추가할 것이다.
볼링거 밴드는 3개의 라인으로 구성된다. 중간 밴드는 폐쇄 가격의 간단한 이동 평균이다. 상위와 하위 밴드는 중간 밴드 위와 아래의 일정 수의 표준 편차이다. 가격은 항상 평균 주위에서 변동하기 때문에 볼링거 밴드의 상위와 하위 밴드는 가격의 압력 범위로 볼 수 있다. 가격이 상위 밴드를 넘어서면 강력한 상승 추세를 나타내고 긴 포지션을 취할 수 있다. 하위 밴드 아래의 파업은 강력한 하락 추세를 나타내고 짧은 포지션을 취할 수 있다. 동시에, 포지션 수가 설정된 최대보다 작을 때 전략은 원래 포지션의 기초에 따라 포지션을 추가하는 것을 계속할 것이며, 트렌드 포집의 강도를 증폭시킬 것이다.
이 전략은 볼링거 밴드의 트렌드 특성을 활용한다. 가격이 상부 및 하부 밴드에 닿을 때 포지션을 입력하고 피라미딩을 통해 트렌드 캡처의 강도를 증폭함으로써 전반적인 아이디어는 간단하고 효과적이다. 그러나 또한 특정 지연과 매개 변수 민감성을 가지고 있다. 실제 응용에서는 매개 변수 최적화와 포지션 관리에주의를 기울여야 한다. 더 강력한 전략 성능을 얻기 위해 다른 신호 지표와 결합하는 것도 고려할 수 있다.
/*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)