볼린저 밴드 오실레이터 기반 추세 추종 전략
개요
이 전략의 핵심 아이디어는 볼린저 밴드 오실레이터 지표를 사용하여 추세를 식별하고, 추세가 변할 때 적시에 진입하는 것입니다. 가격이 볼린저 밴드 상단을 돌파하면 매수하고, 가격이 볼린저 밴드 하단을 하향 돌파하면 매도하여 추세 추종 방식으로 이익을 얻습니다.
전략 원리
이 전략은 주로 볼린저 밴드 오실레이터 지표를 기반으로 추세 방향을 판단합니다. 볼린저 밴드 오실레이터의 계산 공식은 다음과 같습니다:
BBO = (종가 - N일 이동평균가) / (2 * N일 표준편차) * 100
여기서 종가는 당일 종가, N일 이동평균가는 종가의 N일 단순이동평균선, N일 표준편차는 종가의 N일 표준편차입니다.
이 전략은 먼저 65일 볼린저 밴드 오실레이터를 계산한 다음, 볼린저 밴드 오실레이터의 30일 이동평균선을 계산합니다. 볼린저 밴드 오실레이터가 그 이동평균선을 상향 돌파하면 추세가 변화하기 시작했다고 판단하여 매수하고, 볼린저 밴드 오실레이터가 이동평균선을 하향 돌파하면 추세가 변화하기 시작했다고 판단하여 매도합니다.
포지션 진입 후, 전략은 이동 손절, 고정 이익 실현 및 이동 추적 손절을 사용하여 위험과 이익을 관리합니다. 구체적인 매개변수는 백테스트 결과에 따라 최적화할 수 있습니다.
전략 장점
-
볼린저 밴드 오실레이터 지표를 사용하여 추세를 판단하며, 이 지표는 추세 변화에 민감합니다.
-
이동 손절을 사용하여 개별 손실을 제어하므로 추세가 다시 반전될 때 신속하게 손절할 수 있습니다.
-
고정 이익 실현을 사용하여 이익을 확정하므로 추세 방향이 올바를 때 적시에 매도하여 이익을 얻을 수 있습니다.
-
이동 추적 손절을 사용하여 유리한 가격을 추적하므로 단일 거래의 이익을 최대화할 수 있습니다.
-
전략이 비교적 단순하고 직관적이어서 이해하고 구현하기 쉽습니다.
전략 리스크
-
볼린저 밴드 오실레이터는 가짜 돌파 가능성이 있어 잘못된 신호를 보낼 수 있습니다.
-
이동 손절 또는 추적 손절 설정이 부적절하면 너무 일찍 손절하거나 이익 실현할 수 있습니다.
-
고정 이익 실현 설정이 부적절하면 너무 일찍 이익 실현하여 더 큰 이익을 놓칠 수 있습니다.
-
볼린저 밴드 매개변수와 이동평균선 매개변수를 최적화해야 하며, 그렇지 않으면 과적합이 발생할 수 있습니다.
-
낙폭이 클 수 있으므로 충분한 자금이 필요합니다.
전략 최적화
-
볼린저 밴드 매개변수와 이동평균선 매개변수를 최적화하여 최적의 매개변수 조합을 찾습니다.
-
ATR 손절, 백분율 손절 등 다양한 이동 손절 방식을 테스트합니다.
-
고정 이익 실현 및 추적 손절 매개변수를 테스트하고 최적화합니다.
-
추가 필터 조건을 추가하여 볼린저 밴드 오실레이터가 잘못된 신호를 보내는 것을 방지합니다.
-
포지션 관리를 최적화합니다. 시장에 따라 적절한 포지션 규모가 다릅니다.
-
다양한 종목과 시간 주기에서 이 전략을 사용하는 효과를 테스트합니다.
요약
이 전략은 볼린저 밴드 오실레이터 지표를 사용하여 추세 방향을 판단하고, 추세가 변화하기 시작할 때 포지션에 진입하며, 이동 손절, 고정 이익 실현 및 추적 손절을 사용하여 위험과 이익을 관리합니다. 전략은 비교적 단순하고 직관적이며 구현하기 쉽지만, 매개변수 최적화가 필요하고 가짜 돌파 및 부적절한 손절/이익 실현 설정을 방지해야 합니다. 적절히 최적화되면 이 전략은 추세 시장에서 좋은 성과를 얻을 수 있습니다.
/*backtest
start: 2022-10-03 00:00:00
end: 2023-10-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="Strategy CCT Bollinger Band Oscillator", shorttitle="Hornkild", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)
length=input(65)- 1
