볼린저 밴드 기반 추세 추종 전략


생성 날짜: 2024-02-22 17:21:42 마지막으로 수정됨: 2024-02-22 17:21:42
복사: 0 클릭수: 745
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 기반 추세 추종 전략

개요

이 전략은 부린 띠 지표에 기반한 트렌드 추적 전략이다. 부린 띠의 하향 방향을 판단하기 위해 부린 띠의 하향 궤도를 사용하며, 트렌드 추적을 구현한다. 가격이 부린 띠의 하향 궤도를 돌파할 때 더 많이 하고, 가격이 부린 띠의 하향 궤도를 넘어갈 때 공백하고, 스톱 로스는 부린 띠의 중간 궤도에 설정된다.

전략 원칙

이 전략은 부린 띠 지표를 사용하여 가격 트렌드를 판단한다. 부린 띠는 상단, 하단, 중간 세 개의 선을 포함한다. 상단선은 가격의 상승 한계를 나타냅니다. 하단선은 가격의 하향 한계를 나타냅니다. 중간선은 가격의 이동 평균을 나타냅니다. 가격이 하단에서 상단 궤도를 돌파 할 때 상승 트렌드가 시작되고, 가격이 상단에서 하단 궤도를 돌파 할 때 하향 트렌드가 시작됩니다.

구체적으로, 이 전략은 긴 포지션을 판단할 때, 다음과 같은 두 가지 조건을 동시에 충족시켜야 한다. 1) 현재 K 라인 종료 가격이 부린 대역이 궤도에 오르기보다 높다; 2) 이전 K 라인 종료 가격이 부린 대역이 궤도에 오르기보다 낮다. 이것은 가격이 궤도를 돌파하고 상승 추세를 시작하고 더 적합하다는 것을 의미한다.

이 전략의 스톱 방식은: 긴 포지션 스톱은 브린 밴드 중간 궤도에 설정하고, 짧은 포지션 스톱은 또한 중간 궤도에 설정한다. 이것은 중간 궤도가 가격의 이동 평균을 나타내기 때문에 추세가 바뀌는지 판단하는 중요한 위치이기 때문이다.

전략적 이점

이 전략의 가장 큰 장점은 가격 흐름을 명확하게 판단하고 부린띠 지표의 특성을 활용하여 트렌드 추적을 가능하게 하고, 흔들림 시장의 오해를 피하는 것이다. 다른 지표에 비해 부린띠는 돌파 판단에 더 신뢰할 수 있으며, 가짜 돌파의 확률을 감소시킨다.

또한, 이 전략은 동시에 다공간 조건을 설정하여 양방향 거래를 할 수 있으며, 가격의 위아래 변동을 최대한 활용하여 이익을 얻을 수 있다. 중도 궤도를 중지 지점으로 채택하면 손실을 중지하는 정확성을 높일 수 있으며, 적시에 손실을 중지하는 것은 전략의 이익의 핵심이다.

전략적 위험

이 전략의 주요 위험은 부린띠의 파라미터를 설정하는 것이다. 부린띠의 중궤도 기간과 표준 사이즈의 차이는 상하궤도의 위치에 직접적으로 영향을 미칠 것이다. 파라미터를 잘못 설정하면 허위 돌파의 확률이 증가할 수 있다.

또한, 중간 궤도는 스톱 로드로서 위험도 있다. 시장상황이 큰 변동이 있을 때, 가격이 직접 중간 궤도를 넘어 스톱으로 이어질 수 있다. 이때는 큰 트렌드가 변하는지 여부를 평가하고, 필요한 경우 스톱 영역을 적절히 확장할 수 있다.

전략 최적화

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 브린 대역을 최적화하고, 다른 주기에서 축적된 경험 데이터와 결합하여 최적의 대역 조합을 설정한다.

  2. 거래량을 판단하는 지표를 증가시켜 낮은 양의 가짜 돌파구를 방지한다. 거래량이 최근 평균값을 초과해야 하는 것으로 설정할 수 있다.

  3. 최적화된 스톱스 메커니즘, 시장의 변동성에 따라 스톱스 지점을 조정할 수 있다. 큰 변동이 있을 때 스톱스 범위를 적절히 확장하고, 작은 변동이 있을 때 스톱스 추적 가격을 축소한다.

  4. MACD, KDJ 등과 같은 다른 지표 판단을 추가하여 더 많은 요소와 함께 진출 시기를 결정하여 운영 정확도를 향상시킵니다.

요약하다

이 전략은 전반적으로 좀 더 실용적인 트렌드 추적 전략이다. 부린 띠 지표를 이용하여 트렌드 방향을 판단하고, 가격 돌파 상승 하락을 통해 동작 신호를 발산하고, 양방향 거래는 가격 변동을 최대한 포착한다. 전략 최적화 공간이 넓고, 변수 최적화, 스톱 손실 최적화 등의 수단으로 더 나은 효과를 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Valente_F
//@version=4
strategy(title="Strategy: Trend Following Bollinger Bands", shorttitle="Strategy: Trend Following Bollinger Bands", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity)

//Inputs
//Bollinger Bands Parameters
length = input(defval=20, minval=1, title= "Length")
stddev = input(defval=2, minval=0.5, title= "StdDev")

// STRATEGY INPUTS
//Entry and Exit Parameters
checkbox1 = input(true, title="Enable Long Entrys")
checkbox2 = input(true, title="Enable Short Entrys")


//Bollinger Bands Calculation

[middle, upper, lower] = bb(close, length, stddev)

//Long Conditions

bulls1 = close > upper
bulls2 = close[1] < upper[1]
bulls = bulls1 and bulls2

//Short Conditions

bears1 = close < lower
bears2 = close[1] > lower[1]
bears = bears1 and bears2

// Plots of Bollinger Bands
plot(upper, title = "Upper Band", color = color.aqua)//, display = display.none)
plot(middle, title = "MA", color = color.red)//, display = display.none)
plot(lower, title = "Lower Band", color = color.aqua)//, display = display.none)

neutral_color = color.new(color.black, 100)
barcolors = bulls ? color.green : bears ? color.red : neutral_color

//Paint bars with the entry colors
barcolor(barcolors)

//Strategy


//STRATEGY LONG
long_entry = bulls and checkbox1

long_entry_level = high

strategy.entry("Long", true, stop = long_entry_level, when = long_entry)
strategy.cancel("Long", when = not long_entry)

strategy.exit("Stop Long", "Long", stop = middle)

//STRATEGY SHORT
short_entry = bears and checkbox2

short_entry_level = low

strategy.entry("Short", false, stop = short_entry_level, when = short_entry)
strategy.cancel("Short", when = not short_entry)

strategy.exit("Stop Short", "Short", stop = middle)