고정된 손절매 최적화 모델과 결합된 동적 이동 평균 및 볼린저 밴드 크로스오버 전략

MA BB SMA ATR SL TP
생성 날짜: 2024-12-27 14:57:38 마지막으로 수정됨: 2024-12-27 14:57:38
복사: 5 클릭수: 437
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

고정된 손절매 최적화 모델과 결합된 동적 이동 평균 및 볼린저 밴드 크로스오버 전략

개요

이 전략은 이동 평균(MA)과 볼린저 밴드를 결합한 추세 추종 거래 시스템입니다. 이 전략은 가격과 200기간 이동평균선 간의 위치적 관계와 볼린저 밴드의 위치를 ​​분석하여 시장 동향을 파악하는 동시에, 고정 비율의 손절매 메커니즘을 통합하여 위험을 통제합니다. 이 전략은 35배 레버리지에 맞춰 2.86%의 포지션 관리를 채택하고, 신중한 펀드 관리 개념을 반영합니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.

  1. 200기간 이동평균을 주요 추세 지표로 사용
  2. 20주기 볼린저밴드의 상단 및 하단 트랙을 결합하여 변동범위 판단
  3. 다음 조건이 충족되면 롱 포지션을 오픈하세요:
    • 가격이 200일 이동평균선 위에 있습니다.
    • 볼린저 밴드 중간 트랙은 200일 이동평균선 위에 있습니다.
    • 가격이 하단 볼린저 밴드를 하단에서 상단으로 교차합니다.
  4. 다음 조건이 충족되면 단기 포지션을 오픈하세요:
    • 가격이 200 이동평균선 아래에 있습니다
    • 볼린저 밴드 중간 트랙은 200일 이동평균선 아래에 있습니다.
    • 가격이 상단 볼린저 밴드를 위에서 아래로 교차합니다.
  5. 위험 관리를 위해 3%의 고정 손절매 비율을 사용하세요.
  6. 가격이 볼린저 밴드 상단을 터치하면 롱 포지션을 닫고, 가격이 볼린저 밴드 하단을 터치하면 숏 포지션을 닫으세요.

전략적 이점

  1. 강력한 추세 추적 기능
  • 200일 이동평균을 통해 장기 추세를 효과적으로 파악합니다.
  • 볼린저 밴드는 단기 및 중기 추세 변화를 결정하는 데 도움이 됩니다.
  1. 완벽한 위험 관리
  • 고정된 손절매 메커니즘은 각 거래의 위험을 효과적으로 제어합니다.
  • 동적 수익 정지 설계로 수익 기회 증가
  1. 유연한 매개변수 최적화
  • 이동평균기간 및 볼린저밴드 매개변수는 시장 특성에 따라 조정 가능합니다.
  • 손절매율은 위험 허용 범위에 따라 조정 가능합니다.
  1. 높은 수준의 체계화
  • 거래 신호가 명확하고 주관적인 판단 요소가 없습니다.
  • 자동화된 거래 실행에 적합

전략적 위험

  1. 변동성 있는 시장의 위험
  • 횡보 시장에서는 거짓 돌파 신호가 자주 발생할 수 있습니다.
  • 추세가 명확할 때만 거래하는 것이 좋습니다.
  1. 미끄러짐 위험
  • 변동성이 높은 기간 동안 더 큰 미끄러짐이 발생할 수 있습니다.
  • 적절한 미끄러짐 보호 기능을 설정하는 것이 좋습니다.
  1. 시스템적 위험
  • 시장 비상 상황으로 인해 손절매 실패가 발생할 수 있습니다.
  • 다른 위험 관리 조치와 협력하는 것이 좋습니다.
  1. 매개변수 최적화 위험
  • 과도한 최적화는 과적합으로 이어질 수 있습니다.
  • 다양한 기간 동안 백테스팅 검증을 수행하는 것이 좋습니다.

전략 최적화 방향

  1. 동적 손절매 최적화
  • ATR 지표를 도입하여 손절매 거리를 동적으로 조정
  • 시장 변동성에 따라 손절매 비율을 조정합니다.
  1. 진입 신호 최적화
  • 볼륨 확인 표시기 추가
  • 추세 강도 필터 추가
  1. 포지션 관리 최적화
  • 동적 위치관리 실현
  • 시장 변동성에 따라 레버리지 비율 조정
  1. 거래 타이밍 최적화
  • 시장 감정 지표 추가
  • 시간 필터 추가

요약하다

이 전략은 고전적인 기술 지표를 결합하여 완벽한 거래 시스템을 구축하는데, 이는 추세를 포착하는 능력이 뛰어나고 위험 관리 효과가 뛰어납니다. 이 전략의 핵심적인 장점은 높은 수준의 체계화와 강력한 매개변수 조정성에 있으며, 고정된 손절매 메커니즘을 통해 효과적인 위험 관리가 달성됩니다. 변동성이 큰 시장에서는 성과가 좋지 않을 수 있지만, 최적화된 방향을 구현하면 전략의 안정성과 수익성을 더욱 개선할 수 있습니다. 실제 거래에 사용할 경우 거래자는 시장 환경 선택에 주의를 기울이고, 자신의 위험 허용 범위에 맞게 매개변수 설정을 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("MA 200 and Bollinger Bands Strategy", overlay=true) // 2.86% for 35x leverage

// inputs
ma_length = input(200, title="MA Length")
bb_length = input(20, title="Bollinger Bands Length")
bb_mult = input(2.0, title="Bollinger Bands Multiplier")

// calculations
ma_200 = ta.sma(close, ma_length)
bb_basis = ta.sma(close, bb_length)
bb_upper = bb_basis + (ta.stdev(close, bb_length) * bb_mult)
bb_lower = bb_basis - (ta.stdev(close, bb_length) * bb_mult)

// plot indicators
plot(ma_200, color=color.blue, title="200 MA")
plot(bb_upper, color=color.red, title="Bollinger Upper Band")
plot(bb_basis, color=color.gray, title="Bollinger Basis")
plot(bb_lower, color=color.green, title="Bollinger Lower Band")

// strategy logic
long_condition = close > ma_200 and bb_basis > ma_200 and ta.crossover(close, bb_lower)
short_condition = close < ma_200 and bb_basis < ma_200 and ta.crossunder(close, bb_upper)

// fixed stop loss percentage
fixed_stop_loss_percent = 3.0 / 100.0

if (long_condition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Stop Long", "Long", stop=strategy.position_avg_price * (1 - fixed_stop_loss_percent))

if (short_condition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Stop Short", "Short", stop=strategy.position_avg_price * (1 + fixed_stop_loss_percent))

// take profit conditions
close_long_condition = close >= bb_upper
close_short_condition = close <= bb_lower

if (close_long_condition)
    strategy.close("Long")

if (close_short_condition)
    strategy.close("Short")