볼링거 밴드 브레이크아웃 전략 (Bollinger Bands breakout strategy) 은 볼링거 밴드 지표에 기반한 간단한 양적 거래 전략이다. 이 전략은 볼링거 밴드의 상부 및 하부 밴드에서 제공하는 동적 지원 및 저항 수준을 활용하여 가격이 밴드를 넘어서면 긴 포지션에 대한 입상 규칙을 설정하고, 가격이 밴드를 넘어서면 출구 규칙을 설정하여 가격 움직임에서 트렌드를 따르는 기회를 포착하는 것을 목표로합니다.
볼링거 밴드 지표 (Bollinger Bands) 는 1980년대에 존 볼링거가 개발하였다. 이 지표는 n 기간 이동 평균과 m × 표준 편차를 그 위와 아래로 구성한다. 이동 평균은 중간 지점으로 작용하고, 표준 편차는 변동성을 나타낸다. 높은 표준 편차 값은 변동성이 증가하는 것을 나타내고, 낮은 값은 변동성이 감소하는 것을 나타낸다.
이 전략의 출입 조건은: 닫기 가격이 아래 볼링거 밴드 아래로 넘어갈 때 긴 포지션이 취득됩니다. 닫기 가격이 상위 볼링거 밴드 위에 넘어갈 때 짧은 포지션이 취득됩니다. 출구 규칙은: 기존의 긴 포지션에 대해 닫기 가격이 상위 밴드 아래로 넘어갈 때 청산합니다. 기존의 짧은 포지션에 대해 닫기 가격이 하위 밴드 아래로 넘어갈 때 커버하십시오.
이것은 트렌드를 따르는 전략입니다. 볼링거 밴드의 깨짐에 의해 신호되는 트렌드 지속을 포착함으로써 지속적인 방향 가격 움직임에서 이익을 얻는 것을 목표로합니다.
고정된 가격 대신 볼링거 밴드를 동적 지지/저항 수준으로 사용하는 것은 전략이 변화하는 시장 조건에 적응하도록 만듭니다.
결정은 가격 수준과 변동성 조건 모두에 기초하여 일부 잘못된 신호를 피합니다.
브레이크아웃 프레임워크는 간단하고 직관적입니다.
매개 변수들의 유연한 조정으로 전략은 제품과 시장에 맞게 적응할 수 있습니다.
지표의 매개 변수 조정이 잘못되면 너무 빈번한 거래와 불필요한 비용이 발생할 수 있습니다.
브레이크오웃 신호는 지속가능한 추세가 아닌 단기적인 가격 변동일 수 있습니다.
스톱 로즈가 없기 때문에 전략은 통제되지 않는 손실 위험에 노출됩니다.
순수 기술 시스템에서는 근본적인 트렌드 전환이 생략됩니다.
성능은 조정 없이 다른 제품마다 다를 수 있습니다.
견고성을 높이기 위해 매개 변수를 최적화합니다.
손실을 제한하기 위해 스톱 로스 명령을 포함합니다.
의사결정을 개선하기 위해 멀티 타임프레임 시스템을 구축합니다.
가짜 신호를 피하기 위해 볼륨 필터를 추가합니다.
더 나은 시간 항목과 크기 포지션에 기초를 보충합니다.
적응력을 테스트하기 위해 더 많은 제품에 대한 전략을 평가하십시오.
볼링거 밴드 브레이크아웃 전략은 지표 기반 브레이크아웃에 의해 신호되는 모멘텀을 타고 트렌드를 따르는 간단한 접근 방식을 제공합니다. 그것의 강점은 트렌드 연속의 역동적 인 식별에 있습니다. 적절한 위험 통제 및 안정성 향상으로 실행 가능한 체계적인 전략으로 개선 될 수 있습니다.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true) length = input.int(20, title="Bollinger Bands Length", minval=1) maType = input.string("SMA", title="Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, title="StdDev Multiplier", minval=0.001, maxval=50) offset = input.int(0, title="Offset", minval=-500, maxval=500) ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev + offset lower = basis - dev - offset // Define strategy entry and exit conditions strategy.entry("Buy", strategy.long, when=close < lower) strategy.close("Buy", when=close > upper) strategy.entry("Sell", strategy.short, when=close > upper) strategy.close("Sell", when=close < lower) // Plotting the Bollinger Bands plot(basis, color=color.blue, title="Basis") plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band")