이중 볼링거 밴드 브레이크업 전략

저자:차오장, 날짜: 2023-12-25 13:20:31
태그:

img

전반적인 설명

이중 볼링거 밴드 브레이크아웃 전략 (Double Bollinger Bands Breakout strategy) 은 트렌드를 따르는 전략이다. 그것은 볼링거 밴드의 상부와 하부 밴드를 사용하여 가격 트렌드를 판단하고 가격이 내부 볼링거 밴드를 뚫고 갈 때 긴 포지션을 설정하고 가격이 외부 볼링거 밴드 아래에 떨어지면 포지션을 닫습니다.

전략 논리

이 전략은 먼저 특정 기간 동안 이동 평균과 표준편차를 계산합니다. 다음에는 내부 밴드에서 이동 평균 ± 1 표준편차와 외부 밴드에서 이동 평균 ± 1.5 표준편차를 사용하여 이중 볼링거 밴드를 구성합니다.

가격이 상부 내역을 넘어서면 시장이 상승세를 타기 시작한다는 것을 나타냅니다. 가격이 하부 내역을 넘어서면 시장이 하락세를 타기 시작하는 것을 나타냅니다.

긴 포지션의 출구 수익은 가격이 하위 외부 밴드 아래로 떨어질 때입니다. 짧은 포지션의 출구 수익은 가격이 상위 외부 밴드 위로 넘어갈 때입니다.

이 전략은 또한 스톱 로스, 취득 및 후속 스톱 로스 출구를 설정합니다.

이점 분석

이중 볼링거 밴드 (Double Bollinger Bands) 브레이크아웃 전략은 다음과 같은 장점이 있습니다.

  1. 가격 움직임을 판단하기 위해 이중 볼링거 대역을 사용하면 효과적인 트렌드 추적이 가능합니다.
  2. 내역 브레이크오웃을 입력하면 불필요한 평균 리버션 거래가 생기지 않습니다.
  3. 이윤을 취하고, 손해를 멈추고, 손해를 멈추는 것을 효과적으로 통제합니다.
  4. 최적화 가능한 매개 변수들은 다른 제품들에 대한 조정을 허용합니다.

위험 분석

이중 볼링거 밴드 (Double Bollinger Bands) 브레이크아웃 전략은 또한 몇 가지 위험을 가지고 있습니다.

  1. 유동시장에서는 빈번한 엔트리와 스톱 손실이 발생할 수 있습니다.
  2. 부적절한 매개 변수 설정으로 인해 너무 쉽게 입력되거나 출구가 어려울 수 있습니다.
  3. 탈출은 때때로 잘못된 신호를 주고 실패한 탈출으로 이어집니다.

이러한 위험을 해결하기 위해 매개 변수를 조정하거나 추가 필터를 추가하거나 위험을 줄이기 위해 수동으로 브레이크를 모니터링 할 수 있습니다.

최적화 방향

이중 볼링거 밴드 브레이크아웃 전략은 여러 가지 방법으로 최적화 될 수 있습니다.

  1. 이동 평균과 표준편차 매개 변수를 다양한 제품에 맞게 최적화합니다.
  2. 부피, MACD 또는 다른 필터를 추가하여 잘못된 파장을 피합니다.
  3. 매개 변수를 동적으로 최적화하기 위해 기계 학습 방법을 사용합니다.
  4. 수익 잠재력을 확대하기 위해 여러 고주파 간격에 걸쳐 전략을 복사합니다.

결론

이중 볼링거 밴드 브레이크아웃 전략은 일반적으로 일반적인 트렌드를 따르는 접근 방식에서 볼링거 밴드와 시간 엔트리에 대한 가격 변화를 판단합니다. 이 전략은 이중 밴드와 과학적 출구 메커니즘을 사용하여 리스크를 제어하여 수익 목표를 설정합니다. 최적화 된 매개 변수 및 리스크 제어로 좋은 결과를 얻을 수 있습니다.


/*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)

더 많은