볼링거 밴드 매인 리버션 거래 전략

저자:차오장, 날짜: 2023-12-27 17:18:26
태그:

img

전반적인 설명

이것은 볼링거 밴드를 기반으로 하는 평균 리버션 거래 전략입니다. 트렌딩 시장에서 단기 리버션 기회를 포착하기 위해 평균 리버션 거래와 리스크 관리 메커니즘을 결합합니다.

전략 논리

이 전략은 20일 볼링거 밴드를 사용하여 과도한 가격 영역을 식별합니다. 가격이 상단 지대에 접근하면 짧고 가격이 하단 지대에 접근하면 길게 이동하여 최종 반전에서 이익을 얻습니다.

또한 ATR를 기반으로 스톱 로스를 설정하고 수익을 취합니다. 스톱 로스는 이동 평균 마이너스 2 배 ATR를 깨는 가격으로 설정됩니다. 수익을 취하는 것은 가격 더하기 3 배 ATR로 설정됩니다. 이것은 거래 당 위험을 효과적으로 제어합니다.

특히 전략은 다음을 포함합니다.

  1. 20일 볼링거 밴드 상단, 하단 및 이동 평균을 계산합니다.
  2. 14일 ATR를 계산합니다.
  3. 가격이 하위 범위를 넘을 때 긴; 가격이 상위 범위를 넘을 때 짧은
  4. 가격 마이너스 2배 ATR에서 손해를 중지 설정하고 가격 더하기 3배 ATR에서 이익을 취합니다.
  5. 코스 + 2배 ATR에서 스톱 로스를 설정하고 코스 마이너스 3배 ATR에서 수익을 취합니다.

이점 분석

주요 장점은 다음과 같습니다.

  1. 볼링거 밴드는 과도한 가격 영역을 효과적으로 식별합니다.
  2. 평균 회귀로 회귀로부터의 이익
  3. ATR는 위험 통제를 중지합니다.
  4. 복수의 수익성있는 거래로 긍정적인 백테스트 결과

위험 분석

잠재적인 위험은 다음과 같습니다.

  1. 가격 트렌드가 계속될 경우 역전 실패 위험
  2. 가격 격차로 인한 스톱 로스 리스크를 건너뛰었다
  3. 변화하는 시장에 필요한 매개 변수 최적화

해결책:

  1. 거래당 손실을 제한하기 위해 스톱 로스 규칙을 엄격히 준수하십시오.
  2. 현재 시장에 맞는 매개 변수를 최적화
  3. 오피션 또는 다른 도구를 사용하여 격차 위험을 헤지합니다.

최적화 방향

이 전략은 다음과 같이 더 최적화 될 수 있습니다.

  1. 가장 좋은 매개 변수를 위해 다른 이동 평균을 테스트
  2. 트렌드 결정을 개선하기 위해 필터를 추가
  3. 정지 및 제한값을 정렬하기 위해 ATR 배수를 조정합니다.
  4. 시장 체제에 기반한 동적 출구 메커니즘을 통합하는 것

이는 안정성과 수익성 프로필을 더욱 향상시킬 것입니다.

요약

요약하자면, 경향 필터와 리스크 관리와 함께 볼링거 밴드 평균 회귀 전략은 긍정적 인 결과를 보여주었습니다. 지속적인 최적화와 개선으로 안정적이고 고품질의 초과 수익을 얻을 수 있습니다.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-08-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Mean Reversion with Risk Management", overlay=true)

// Inputs for Bollinger Bands and Risk Management
length = input(20, minval=1, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
stopLossATRMult = input(2.0, title="Stop Loss ATR Multiplier")
takeProfitATRMult = input(3.0, title="Take Profit ATR Multiplier")

// Bollinger Bands Calculation
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// ATR for Stop Loss and Take Profit
atr = atr(14)

// Trading Conditions
longCondition = crossover(src, lower)
shortCondition = crossunder(src, upper)

// Order Execution with Stop Loss and Take Profit
if (longCondition)
    sl = src - stopLossATRMult * atr
    tp = src + takeProfitATRMult * atr
    strategy.entry("Long", strategy.long, stop=sl, limit=tp)

if (shortCondition)
    sl = src + stopLossATRMult * atr
    tp = src - takeProfitATRMult * atr
    strategy.entry("Short", strategy.short, stop=sl, limit=tp)


더 많은