볼링거 밴드 추적 전략 (Bollinger Bands tracking strategy) 은 볼링거 밴드 기반의 양적 거래 전략이다. 그것은 주식의 볼링거 밴드의 상부 및 하부 레일을 계산하고 시장을 추적하기 위해 구매 및 판매 조건을 설정한다. 가격이 볼링거 밴드의 하부 레일을 만지면 주가가 과부평가된 것으로 간주되며, 따라서 성장에 더 많은 공간을 제공하고 구매 신호를 생성한다. 가격이 상승하고 상부 레일을 만지면 주가가 과부평가된 것으로 간주되며, 따라서 판매 신호를 표시한다고 간주된다.
이 전략의 핵심 지표는 볼링거 밴드이다. 볼링거 밴드는 세 개의 라인으로 구성된다: 중간 레일, 상부 레일 및 하부 레일. 중간 레일은 n 일 이동 평균 종료 가격이다; 상부 레일은 중간 레일 + k일 종료 가격의 n 일 표준 편차; 하부 레일은 중간 레일 - k일 종료 가격의 n 일 표준 편차이다. k 값은 일반적으로 2로 설정된다. 주식 가격이 하부 레일보다 낮을 때, 그것은 상대적으로 낮은 가격 수준에 있으며, 따라서 낮은 가치로 간주되어 구매 신호를 생성한다; 주식 가격이 상부 레일보다 높을 때, 그것은 상대적으로 높은 가격 수준에 있으며 과평가되어 판매 신호를 생성한다고 간주된다.
특히, 이 전략은 먼저 중간 레일로 종료 가격의 20일 이동 평균을 계산하고, 그 다음 대역폭으로 종료 가격의 20일 표준편차의 두 배를 계산한다. 상부 레일은 중간 레일 + 대역폭이고, 하부 레일은 중간 레일 - 대역폭이다. 그 다음 구매 조건이 하부 레일보다 낮은 종료 가격, 판매 조건이 상위 레일보다 높은 종료 가격으로 설정된다. 종료 가격이 하부 레일 아래에 있을 때 구매 신호를 생성하고, 종료 가격이 상위 레일 위에 있을 때 판매 신호를 생성한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
대응 솔루션:
이 전략의 주요 최적화 방향은 다음과 같습니다.
전체적으로 볼링거 밴드 추적 전략은 비교적 간단하고 실용적인 양적 거래 전략이다. 가격 트렌드를 자동으로 추적하고 구매 및 판매 신호를 제공 할 수 있습니다. 장점은 쉽게 구현, 더 작은 위험, 가짜 브레이크오웃을 필터링하는 것입니다. 단점은 특정 지연, 블랙 스완과 같은 극단적인 시장 조건에 직면 할 수없는 것입니다. 이 전략은 기계 학습과 같은 더 고급 기술과 같은 매개 변수 및 지표를 최적화함으로써 더욱 향상 될 수 있습니다. 요컨대, 볼링거 밴드 전략을 다른 기술적 전략과 결합하면 견고하고 효율적인 양적 거래 시스템을 형성 할 수 있습니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", shorttitle="BB Strategy", overlay=true) // Input parameters length = input(20, title="Bollinger Bands Length") mult = input(2, title="Multiplier") // Calculate Bollinger Bands basis = ta.sma(close, length) bb_upper = basis + mult * ta.stdev(close, length) bb_lower = basis - mult * ta.stdev(close, length) // Buy and sell conditions buy_condition = close < bb_lower sell_condition = close > bb_upper // Execute trades strategy.entry("Buy", strategy.long, when=buy_condition) strategy.entry("Sell", strategy.short, when=sell_condition) // Plotting Bollinger Bands on the chart plot(bb_upper, color=color.red, title="Upper Band") plot(bb_lower, color=color.green, title="Lower Band") plot(basis, color=color.blue, title="Basis") // Highlighting buy and sell signals on the chart bgcolor(buy_condition ? color.new(color.green, 90) : na) bgcolor(sell_condition ? color.new(color.red, 90) : na)