리소스 로딩... 로딩...

강화된 볼링거 평균 역전 양적 전략

저자:차오장, 날짜: 2024-11-18 16:07:05
태그:BBEMAATRSMAstdev

img

전반적인 설명

이 전략은 경향 필터와 동적 스톱-러스 메커니즘으로 최적화된 볼링거 밴드를 기반으로 한 평균 반전 거래 시스템입니다. 이 전략은 승률을 향상시키고 위험을 관리하기 위해 기술적 인 지표를 사용하여 평균에서 가격 오차를 거래하는 데 통계적 원칙을 적용합니다.

전략 원칙

이 전략은 몇 가지 핵심 요소에 기반합니다.

  1. 2개의 표준편차 대역폭을 가진 주요 신호 소스로 20개 기간 볼린거 대역을 사용합니다.
  2. 중장기 트렌드와 거래 방향이 일치하도록 트렌드 필터로 50 기간 EMA를 포함합니다.
  3. 14주기 ATR을 사용하여 동적 스톱 로스 및 수익 목표를 사용하여 위험/이익 비율을 향상시킵니다.
  4. 가격이 하위 지대에 도달하여 EMA를 넘어서면 장거리, 가격이 상위 지대에 도달하여 EMA를 넘어서면 단기
  5. 2x ATR에서 수익 목표와 1x ATR에서 스톱 로스를 설정합니다.

전략적 장점

  1. 평균 회전과 추세 추세의 장점을 결합하여 신뢰성을 향상시킵니다.
  2. 동적 스톱 로스 및 수익 목표가 시장 변동에 적응합니다.
  3. 명확한 입출입 규칙은 주관적 판단을 최소화합니다.
  4. 고정된 2:1 위험/이익 비율은 장기적인 수익성을 촉진합니다.
  5. 기술 지표 조합은 잘못된 신호를 줄입니다.

전략 위험

  1. 강한 트렌드 시장에서 주요 트렌드를 놓칠 수 있습니다.
  2. 좁은 통합 범위에서 자주 거래 가능
  3. 시장 격차 중 미끄러지는 위험
  4. 지속적인 매개 변수 모니터링과 조정이 필요합니다.
  5. 거래 비용은 전략 수익에 영향을 줄 수 있습니다.

최적화 방향

  1. 확인을 위해 부피 표시기를 추가합니다
  2. 높은 변동성을 피하기 위해 변동성 필터를 구현합니다.
  3. 매개 변수 적응 메커니즘을 최적화
  4. 교차 검증을 위한 추가 기술 지표
  5. 자금 관리 시스템 개선

요약

이 전략은 고전적 기술 분석과 현대적 수치적 방법을 결합한다. 여러 지표 확인과 엄격한 위험 통제를 통해 전략은 좋은 실용성을 입증한다. 라이브 구현 전에 철저한 백테스팅과 데모 거래가 권장된다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Optimized Bollinger Mean Reversion", overlay=true)

// Bollinger Band Settings
length = input.int(20, title="BB Length")
src = input(close, title="Source")
mult = input.float(2.0, title="BB Multiplier")

// Bollinger Bands Calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot the Bollinger Bands
plot(basis, color=color.blue)
p1 = plot(upper, color=color.red)
p2 = plot(lower, color=color.red)
fill(p1, p2, color=color.rgb(41, 98, 255, 90))

// Trend Filter - 50 EMA
ema_filter = ta.ema(close, 50)

// ATR for Dynamic Stop Loss/Take Profit
atr_value = ta.atr(14)

// Buy condition - price touches lower band and above 50 EMA
buy_condition = ta.crossover(close, lower) and close > ema_filter

// Sell condition - price touches upper band and below 50 EMA
sell_condition = ta.crossunder(close, upper) and close < ema_filter

// Strategy Execution
if (buy_condition)
    strategy.entry("Buy", strategy.long)

if (sell_condition)
    strategy.entry("Sell", strategy.short)

// Exit with dynamic ATR-based stop loss and take profit
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=2*atr_value, stop=1*atr_value)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=2*atr_value, stop=1*atr_value)


관련

더 많은