볼링거 모멘텀 브레이크업 전략

저자:차오장날짜: 2023-12-22 13:09:32
태그:

img

전반적인 설명

이 전략은 볼링거 밴드를 사용하여 시장 트렌드 방향을 결정하고 RSI 지표와 결합하여 상승 신호를 필터링하여 상승을 쫓고 하락을 죽이기 위해 모멘텀 브레이크아웃 작전을 구현합니다. 기본 아이디어는: 가격이 볼링거 상부 밴드를 통과하면 길게; 가격이 볼링거 하부 밴드를 통과하면 짧게.

전략 원칙

  1. 볼링거 밴드 지표가 상단역을 통해 가격의 돌파를 결정하면 시장이 상승 추세로 진입한다는 것을 나타냅니다. 이 때 필터링을 위해 RSI 지표를 사용하십시오. RSI가 60보다 높을 때 구매 신호를 생성하십시오. BB 지표가 하단역을 통해 가격의 돌파를 결정하면 시장이 하향 추세로 진입한다는 것을 나타냅니다. 이 때 필터링을 위해 RSI 지표를 사용하십시오. RSI가 40 미만일 때 판매 신호를 생성하십시오.

  2. 추가 손실을 피하기 위해 시장에 진입한 후 손해를 막기 위해 설정합니다.

  3. 출구 기준은 가격이 BB 중간 범위를 넘어서면 긴 포지션을 닫고 가격이 BB 중간 범위를 넘어서면 짧은 포지션을 닫는 것입니다.

이점 분석

  1. 볼링거 밴드 지표는 주요 시장 추세를 결정하고 전환점을 포착 할 수 있습니다. RSI 필터와 결합하면 신호 신뢰성을 향상시킬 수 있습니다.

  2. 추격 상승과 살해 낙하 작전은 초과 수익을 얻을 수 있습니다.

  3. 스톱 로스를 설정하면 위험을 조절할 수 있습니다.

위험 분석

  1. BB 지표는 잘못된 신호를 생성할 수 있는 옆시장을 판단하는 데 효과적이지 않습니다.

  2. 잘못된 스톱 로스 설정은 추가 손실로 이어질 수 있습니다.

  3. 높은 거래 빈도는 거래 비용과 미끄러짐에 의해 영향을 받는다.

  4. 파업 신호는 적시에 업데이트되어야 합니다. 그렇지 않으면 가장 좋은 진입 기회를 놓칠 수 있습니다.

최적화 방향

  1. 부피, 이동 평균 등과 같은 BB 브레이크오웃 신호의 신뢰성을 판단하기 위해 다른 지표와 결합합니다.

  2. 동적으로 BB 매개 변수를 조정하여 지표 성능을 최적화합니다.

  3. 필요 없는 손실을 줄이기 위해 후속 스톱 손실, 퍼센트 스톱 손실과 같은 스톱 손실 위치를 최적화하십시오.

요약

이 전략은 BB를 통해 시장 트렌드를 결정하고 모멘텀 트렌드 추격을 위해 RSI와 함께 신호를 필터하는 명확한 논리를 가지고 있습니다. 높은 운영 주파수, 빠른 이익/손실 주기가 있으며, 초과 수익을 추구하는 거래자에게 더 적합합니다. 그러나 높은 거래 주파수는 거래 비용을 증가시키고 엄격한 자본 관리와 정서적 통제가 필요합니다. 파라미터 최적화 및 스톱 손실 최적화로 더 많은 성능과 안정성 향상을 달성 할 수 있습니다.


/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB-Stoxguru",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true)
source = close
start = timestamp (2007, 1,1,0,0) 
end = timestamp (2021,11,05,0,0)
stop_level = (high[1]-low[1])
profit_level = (high[1]-low[1])
length = input(20, minval=1, title = "Period") //Length of the Bollinger Band 
mult = input(2, minval=0.001, maxval=50, title = "Standard Deviation") 

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev
band=upper-lower
stop_loss=low-atr(14)
if time >= start 
// and time < end
    strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>=60 and rsi(close,14)<=70)
    // strategy.entry("Long", strategy.long, when = crossover(source, upper) and rsi(close,14)>60 and band<200)
    // strategy.exit("SL", "Long", stop=stop_loss)
    strategy.close(id="Long", when=crossunder(close, basis))
    strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<=40 and rsi(close,14)>=35)
    strategy.close(id="Short", when=crossover(close, basis))
    // strategy.entry("Short", strategy.short, when = crossunder(source, lower) and rsi(close,14)<40 and band<200)
    // plot(upper-lower, color=color.purple,title= "DIFF",style=plot.style_linebr)
plot(basis, color=color.red,title= "SMA")
p1 = plot(upper, color=color.blue,title= "UB")
p2 = plot(lower, color=color.blue,title= "LB")
// fill(p1, p2)
BW = ((upper - lower)) / basis * 100

plot(BW, title="Bollinger bandwidth", color=color.red)


더 많은