볼링거 밴드 (Bollinger Bands momentum breakout strategy) 는 잘못된 가격 주식을 식별하기 위해 볼링거 밴드 지표를 활용하는 전형적인 양적 거래 전략이다. 이 전략은 볼링거 밴드의 상부와 하부 밴드를 사용하여 주가가 과대평가되거나 과대평가되었는지 판단하고 거래 신호를 생성하기 위해 주가의 이동 평균을 결합합니다. 가격이 상부 밴드를 넘으면 주가가 과대평가되어 구매 신호가 형성됩니다. 가격이 하부 밴드를 넘으면 주가가 과대평가되어 판매 신호가 형성됩니다.
볼링거 밴드는 중간 밴드, 상위 밴드 및 하위 밴드로 구성됩니다. 중간 밴드는 n 일간 간단한 이동 평균입니다; 상위 및 하위 밴드는 각각 중간 밴드 위의 두 표준 편차 및 아래입니다. 주가가 상위 밴드에 가깝으면 과평가되어 있으며, 하위 밴드 근처에있을 때 과평가되어 있다고 간주됩니다.
이 전략은 먼저 20일 중간, 상위 및 하위 볼링거 밴드를 계산합니다. 그 다음 주가가 중간 밴드보다 높거나 낮는지 판단합니다. 중간 밴드보다 높으면 구매 신호가 형성됩니다. 중간 밴드보다 낮다면 판매 신호가 형성됩니다. 동시에 주가가 상위 밴드를 넘어서면 폐쇄 신호로 작용하며, 가격이 하위 밴드를 넘어서면 종료 신호로 작용합니다.
이 전략의 가장 큰 장점은 주식 가격의 과대평가 및 과소평가 판단을 위해 볼링거 밴드를 사용하여 블라인드 거래의 문제를 피한다는 것입니다. 주식 가격이 과대평가되면 전략은 판매 신호를 발산합니다. 주식 가격이 과소평가되면 전략은 구매 신호를 발산합니다. 이것은 효과적으로 소음을 필터 할 수 있으며 입력된 거래 신호의 품질이 높습니다.
또한, 이동 평균은 이 전략에서 보조 판단 지표로 사용된다. 주식 가격에 의한 이동 평균의 실제 돌파도 강력한 트렌드 신호이다. 과평가 및 과평가에 대한 볼링거 밴드 판단과 결합하면 전략 신호가 더 정확할 수 있다.
이 전략의 가장 큰 위험은 볼링거 밴드 지표 자체에 있다. 주가 가격이 비정상적으로 변동할 때 볼링거 밴드 범위도 그에 따라 변화할 것이다. 이 시점에서 주가가 분명히 과평가되거나 과평가된 상황도 있을 수 있지만 볼링거 밴드의 상부 또는 하부 레일에 도달하지 못했다. 결과적으로 전략은 거래 신호를 제공하지 못한다.
또한, 주식의 기본 요소를 고려하지 않고 기술 지표에만 의존하는 것은 또한 몇 가지 위험을 초래합니다. 예를 들어, 수익이 감소하지만 과소 평가 된 가격 또는 높은 수익 성장률이 있지만 상대적으로 높은 가격의 주식. 이러한 경우 전략 신호와 실제 주식 가치 사이에 약간의 오차가있을 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
스톱 로스 메커니즘을 추가합니다. 주가가 구매 가격에 비해 특정 비율로 감소하면 강제 스톱 로스 출구. 이것은 전략의 최대 손실을 효과적으로 제어 할 수 있습니다.
기본 지표와 기술 지표를 결합하고 PE와 PB 비율과 같은 판단 규칙을 추가하여 이미 과대평가 된 주식을 구매하지 않도록하십시오.
동적으로 매개 변수를 조정한다. 사이클 길이와 표준편차 곱하기 등 볼링거 밴드의 매개 변수를 다른 주식의 변동성에 따라 동적으로 조정한다. 이것은 볼링거 밴드가 주식 가격 변동에 더 잘 적응할 수 있게 한다.
볼링거 밴드 모멘텀 브레이크아웃 전략은 보조 판단 지표로 거래 신호를 발산함으로써 블라인드 트레이딩의 위험을 피하며, 이는 노이즈 신호를 효과적으로 필터링할 수 있습니다. 동시에 비정상적인 변동의 영향을 완전히 피할 수 없는 특정 한계가 있습니다. 앞으로는 스톱 로스, 기본 요소를 결합하고 동적으로 매개 변수를 조정하여 전략을 더 안정적이고 신뢰할 수 있도록 하는 등의 측면에서 최적화를 수행 할 수 있습니다.
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="NoScoobies Bollinger Bands", overlay=true) source = close length = input(20, minval=1, title = "Period") //Length of the Bollinger Band mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev long=crossover(source, basis) short=crossunder(source, basis) close_long=crossunder(source, upper) close_short=crossover(source, lower) if long strategy.entry("Long", strategy.long) strategy.close("Long", when = close_long) if short strategy.entry("Short", strategy.short) strategy.close("Short", when = close_short) 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)