다중 기간 볼린저 밴드 크로스오버 추세 추종 전략

BB SMA stdev
생성 날짜: 2025-02-21 13:08:22 마지막으로 수정됨: 2025-02-27 17:02:33
복사: 2 클릭수: 487
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 기간 볼린저 밴드 크로스오버 추세 추종 전략 다중 기간 볼린저 밴드 크로스오버 추세 추종 전략

개요

이것은 트리플 브린 밴드를 기반으로 한 트렌드 추적 전략이다. 이 전략은 서로 다른 주기 ((20, 120, 240) 의 브린을 결합하여 시장의 과매매 상태를 식별하고 가격이 세 개의 브린 밴드를 돌파 할 때 거래 신호를 생성한다. 이러한 다중 주기 브린 밴드의 조합은 가짜 신호를 효과적으로 필터링하여 거래의 정확성을 향상시킬 수 있다.

전략 원칙

이 전략은 세 개의 다른 주기적인 부린 밴드 ((20, 120 및 240 주기), 각 부린 밴드 중 중간 궤도 ((SMA) 및 상하 궤도 ((표준 격차의 2배) 로 구성된다. 가격이 동시에 세 개의 부린 밴드의 하단 궤도를 돌파 할 때, 시장이 과매가 발생할 수 있음을 나타낼 때, 시스템은 여러 신호를 냅니다. 가격이 동시에 세 개의 부린 밴드의 상단 궤도를 돌파 할 때, 시장이 과매가 발생할 수 있음을 나타낼 때, 시스템은 평점 신호를 냅니다.

전략적 이점

  1. 다중 확인 메커니즘: 3개의 다른 주기의 브린 밴드를 필터로 사용하여, 가짜 신호를 효과적으로 줄일 수 있다.
  2. 트렌드 추적 능력: 브린 띠의 동적 조정 특성을 통해, 전략은 다양한 시장 환경에 적응할 수 있다.
  3. 위험 통제의 명확성: 브린 벨트는 그 자체로 통계적으로 중요하며, 진입과 출퇴근에 대한 명확한 참조 위치를 제공합니다.
  4. 변수 조정성: 전략은 브린 밴드 주기와 배수의 변수 설정을 제공하며, 시장 특성에 따라 최적화 할 수 있습니다.

전략적 위험

  1. 가로 시장 위험: 불안한 시장에서 빈번하게 잘못된 신호가 발생하여 과도한 거래가 발생할 수 있습니다.
  2. 뒤떨어진 위험: 더 긴 주기의 이동 평균을 사용했기 때문에 트렌드 전환점에 최적의 진입 시간을 놓칠 수 있다.
  3. 자금 관리 위험: 적절한 스톱 포지션을 설정하지 않으면 급격한 변동이 있을 때 큰 손실을 입을 수 있다.
  4. 매개 변수 의존성: 다른 시장 환경에서 최적 매개 변수가 큰 차이가 있을 수 있으며, 주기적으로 최적화가 필요합니다.

전략 최적화 방향

  1. 양과 가격 관계 지표 도입: 수요량을 보조 지표로 추가하여 신호의 신뢰성을 높일 수 있다.
  2. 최적화된 스톱 메커니즘: 추적 스톱 또는 ATR 스톱을 추가하여 위험을 더 잘 제어하는 것이 좋습니다.
  3. 트렌드 확인 지표를 추가: 다른 트렌드 지표 (MACD, DMI 등) 와 함께 상호 검증 할 수 있습니다.
  4. 동적 파라미터 조정: 시장의 변동에 따라 브린 띠의 파라미터를 자동으로 조정할 수 있으며, 전략의 적응성을 향상시킵니다.
  5. 개선된 신호 필터링: 거래 시간 필터, 변동률 필터 등의 조건을 추가하여 가짜 신호를 줄일 수 있다.

요약하다

이 전략의 핵심 장점은 여러 확인 메커니즘과 명확한 위험 제어 시스템입니다. 그러나 또한 변동 시장에서의 성과 및 변수 최적화에 주의를 기울여야 합니다. 가격 관계 분석, 손해 막기 장치 및 동적 변수 조정 등의 최적화 방향을 개선함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=5
strategy(title="Bollinger Bands Strategy (Buy Below, Sell Above)", shorttitle="BB Strategy", overlay=true)

// Bollinger Bands parameters
length1 = input(20, title="BB Length 20")
mult1 = input(2.0, title="BB Multiplier 20")
length2 = input(120, title="BB Length 120")
mult2 = input(2.0, title="BB Multiplier 120")
length3 = input(240, title="BB Length 240")
mult3 = input(2.0, title="BB Multiplier 240")

// Calculate the basis (simple moving average) and deviation for each Bollinger Band
basis1 = ta.sma(close, length1)
dev1 = mult1 * ta.stdev(close, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1

basis2 = ta.sma(close, length2)
dev2 = mult2 * ta.stdev(close, length2)
upper2 = basis2 + dev2
lower2 = basis2 - dev2

basis3 = ta.sma(close, length3)
dev3 = mult3 * ta.stdev(close, length3)
upper3 = basis3 + dev3
lower3 = basis3 - dev3

// Buy Condition: Price is below all three lower bands
buyCondition = close < lower1 and close < lower2 and close < lower3

// Sell Condition: Price is above all three upper bands
sellCondition = close > upper1 and close > upper2 and close > upper3

// Plot Buy and Sell signals with arrows
plotshape(buyCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(sellCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)

// Strategy orders for buy and sell
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.close("Buy")  // Close the long position for a sell signal

// Plotting the Bollinger Bands without filling the area
plot(basis1, color=color.blue, title="Basis 20", linewidth=2)
plot(upper1, color=color.green, title="Upper Band 20", linewidth=2)
plot(lower1, color=color.red, title="Lower Band 20", linewidth=2)

plot(basis2, color=color.orange, title="Basis 120", linewidth=2)
plot(upper2, color=color.purple, title="Upper Band 120", linewidth=2)
plot(lower2, color=color.yellow, title="Lower Band 120", linewidth=2)

plot(basis3, color=color.teal, title="Basis 240", linewidth=2)
plot(upper3, color=color.fuchsia, title="Upper Band 240", linewidth=2)
plot(lower3, color=color.olive, title="Lower Band 240", linewidth=2)