볼링거 브레이크아웃 주식 전략 (Bollinger breakout stock strategy) 은 주식 가격 변동을 추적하는 양적 거래 전략으로 볼링거 밴드를 사용하여 가격이 정상적인 변동성 범위를 벗어나 무역 신호를 생성 할 때 식별합니다. 가격이 낮은 볼링거 밴드 아래로 넘어갈 때 길고 가격이 상단 볼링거 밴드 위에 넘어갈 때 짧습니다. 전략은 단기 가격 추세를 추적하고 단기 거래에 적합합니다.
이 전략은 20일 폐쇄 가격을 사용하여 중간 밴드, 상위 밴드 및 하위 밴드를 계산합니다. 중간 밴드는 20일 간단한 이동 평균이며, 상위 및 하위 밴드는 중간 밴드에서 2 표준 편차의 거리에 배치됩니다.
주식 폐쇄 가격은 하위 범위를 넘어서면 가격이 정상적인 변동성 범위를 넘어서 새로운 상승 추세를 시작하는 신호입니다. 코드에 따라 이 시점에서 전략은 길게 갈 것입니다. 스톱 손실은 최근 10 바의 가장 낮은 수준으로 설정되며 수익은 최근 10 바의 가장 높은 수준으로 설정됩니다.
가격이 상위 범위를 넘을 때, 그것은 새로운 하락 추세의 시작을 신호합니다. 전략은 여기에 짧게 갈 것입니다. 중지 손실은 10 바 최고 수준이고 이익을 취하는 것은 10 바 최저 수준입니다.
이 전략은 볼링거 밴드를 효과적으로 활용하여 트렌드 변화와 변동성 범위를 식별하고, 가격이 반전될 가능성이 있는 시점에 일찍 진입합니다.
이 전략의 주요 장점은 다음과 같습니다.
볼링거 밴드를 사용하여 트렌드 변화 포인트를 효과적으로 식별하고 단기 트렌드를 효율적으로 파악합니다.
최근 최저 스윙 로프에 설정된 스톱 로프로 인한 소액 마감 위험, 손실을 제한합니다.
최근 최고 수준으로 설정된 수익을 취하면 일방적인 트렌드 움직임에서 수익을 극대화 할 수 있습니다.
단순하고 명확한 논리, 이해하기 쉽고 수정하기 쉬운 양자 거래 초보자에게 적합합니다.
또한 고려해야 할 몇 가지 위험이 있습니다.
볼링거 밴드는 변동성 변화에 매우 민감하며 부적절한 매개 변수는 잘못된 신호를 일으킬 수 있습니다. 기간과 같은 매개 변수는 그에 따라 조정해야합니다.
높은 주식 가격 변동, 너무 일찍 스톱 손실을 유발, 트렌드를 탈 수 없습니다.
신호 지연, 과도한 실현되지 않은 이윤을 초래할 수 있습니다. 다른 지표는 이전 항목을 식별 할 수 있습니다.
시장의 예측불가능성은 수익/손실 중단을 어렵게 하고, 매개 변수를 정밀하게 조정하기 위해 수동 개입이 필요합니다.
이 전략을 더욱 개선할 수 있는 몇 가지 방법:
신호를 확인하기 위해 다른 지표를 추가하십시오. 예를 들어 볼륨 스파이크.
변화하는 변동성에 맞게 볼링거 매개 변수를 동적으로 조정합니다.
스톱 로스/프로프트 취득을 강화합니다. 예를 들어, 트래일링 스톱 로스, 단계적 인 수익 취득.
가장 잘 어울리는 것을 찾기 위해 다른 조류에 대한 매개 변수를 테스트합니다.
기계 학습을 도입하여 자동으로 매개 변수를 최적화합니다.
볼링거 브레이크아웃 전략은 반전을 식별하는 명확한 논리를 가지고 있습니다. 제한된 드래운드 리스크는 단기 트렌드를 잡을 수 있습니다. 그러나 또한 이익 목표 제한 및 신호 지연 문제도 있습니다. 매개 변수 조정, 더 나은 스톱 로스 / 영리, 필터 추가 등을 통해 개선 될 수 있습니다. 중장기 트렌드를 추적하기 위해 단기 주식 거래에 적합합니다.
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Initial settings strategy("Bulle de bollinger", overlay = true) // Parameter Settings mdl = sma(close, 20) dev = stdev(close, 20) upr = mdl + 2*dev lwr = mdl - 2*dev // Plot plot(mdl, color = color.green) // Plot moving average p1 = plot(upr, color = color.red) // Plot Upper_band p2 = plot(lwr, color = color.green) // Plot lower band fill(p1, p2, color = color.blue) // Fill transparant color between the 2 plots // Strategy entry & close if open[1] < lwr[1] and close[1] < lwr[1] // Previous price lower than lower band and current close is higher than lower band stop_level = lowest(10) profit_level = highest(10) strategy.entry(id = 'bb_buy', long = true) strategy.exit("TP/SL", "bb_buy", stop=stop_level, limit=profit_level) if open[1] > upr[1] and close[1] > upr // Previous price is higher than higher band & current close is lower the higher band stop_level = highest(10) profit_level = lowest(10) //strategy.entry(id = 'bb_sell', long = false) //strategy.exit("TP/SL", "bb_sell", stop=stop_level, limit=profit_level)