
볼린저 파동량 돌파 전략은 볼린저 밴드 지표를 사용하여 주식 가치를 식별하는 전형적인 정량 거래 전략이다. 이 전략은 볼린저 밴드의 상승과 하락을 사용하여 주식이 과대평가되거나 과소평가되었는지 판단하고 주식 가격의 이동 평균과 결합하여 거래 신호를 발산한다. 가격이 궤도를 돌파하면 주식이 과소평가되었다고 생각하여 구매 신호를 형성하고; 가격이 궤도를 벗어나면 주식이 과대평가되었다고 생각하여 판매 신호를 형성한다.
볼링거 띠는 중도선, 상도선, 하도선으로 구성된다. 중도선은 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)