이중 볼링거 밴드 브레이크아웃 전략 (Double Bollinger Bands Breakout strategy) 은 트렌드를 따르는 전략이다. 그것은 볼링거 밴드의 상부와 하부 밴드를 사용하여 가격 트렌드를 판단하고 가격이 내부 볼링거 밴드를 뚫고 갈 때 긴 포지션을 설정하고 가격이 외부 볼링거 밴드 아래에 떨어지면 포지션을 닫습니다.
이 전략은 먼저 특정 기간 동안 이동 평균과 표준편차를 계산합니다. 다음에는 내부 밴드에서 이동 평균 ± 1 표준편차와 외부 밴드에서 이동 평균 ± 1.5 표준편차를 사용하여 이중 볼링거 밴드를 구성합니다.
가격이 상부 내역을 넘어서면 시장이 상승세를 타기 시작한다는 것을 나타냅니다. 가격이 하부 내역을 넘어서면 시장이 하락세를 타기 시작하는 것을 나타냅니다.
긴 포지션의 출구 수익은 가격이 하위 외부 밴드 아래로 떨어질 때입니다. 짧은 포지션의 출구 수익은 가격이 상위 외부 밴드 위로 넘어갈 때입니다.
이 전략은 또한 스톱 로스, 취득 및 후속 스톱 로스 출구를 설정합니다.
이중 볼링거 밴드 (Double Bollinger Bands) 브레이크아웃 전략은 다음과 같은 장점이 있습니다.
이중 볼링거 밴드 (Double Bollinger Bands) 브레이크아웃 전략은 또한 몇 가지 위험을 가지고 있습니다.
이러한 위험을 해결하기 위해 매개 변수를 조정하거나 추가 필터를 추가하거나 위험을 줄이기 위해 수동으로 브레이크를 모니터링 할 수 있습니다.
이중 볼링거 밴드 브레이크아웃 전략은 여러 가지 방법으로 최적화 될 수 있습니다.
이중 볼링거 밴드 브레이크아웃 전략은 일반적으로 일반적인 트렌드를 따르는 접근 방식에서 볼링거 밴드와 시간 엔트리에 대한 가격 변화를 판단합니다. 이 전략은 이중 밴드와 과학적 출구 메커니즘을 사용하여 리스크를 제어하여 수익 목표를 설정합니다. 최적화 된 매개 변수 및 리스크 제어로 좋은 결과를 얻을 수 있습니다.
/*backtest start: 2023-12-17 00:00:00 end: 2023-12-24 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true) l=input(title="length",defval=100) pbin=input(type=float,step=.1,defval=.25) pbout=input(type=float,step=.1,defval=1.5) ma=sma(close,l) sin=stdev(ma,l)*pbin sout=stdev(ma,l)*pbout inu=sin+ma inb=-sin+ma outu=sout+ma outb=-sout+ma plot(inu,color=lime) plot(inb,color=lime) plot(outu,color=red) plot(outb,color=yellow) inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0) useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na longCondition = close>inu and rising(outu,1) exitlong = (open[1]>outu and close<outu) or crossunder(close,ma) shortCondition = close<inb and falling(outb,1) exitshort = (open[1]<outb and close>outb) or crossover(close,ma) strategy.entry(id = "Long", long=true, when = longCondition) strategy.close(id = "Long", when = exitlong) strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong) strategy.entry(id = "Short", long=false, when = shortCondition) strategy.close(id = "Short", when = exitshort) strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)