볼린저 평균 회귀 거래 전략


생성 날짜: 2023-12-27 17:18:26 마지막으로 수정됨: 2023-12-27 17:18:26
복사: 1 클릭수: 743
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

볼린저 평균 회귀 거래 전략

개요

이 전략은 볼링거 밴드 기반의 평균 회귀 거래 전략이다. 이 전략은 평균 회귀 거래와 위험 관리 장치를 결합하여 추세 시장에서 단기 회귀 기회를 잡기 위해 고안되었다.

전략 원칙

이 전략은 20일 볼린저 밴드를 사용하여 가격의 과도한 확장 영역을 식별합니다. 가격이 상단 궤도에 가까워지면 공백을 취하고, 가격이 하단 궤도에 가까워지면 더 많은 것을 취합니다. 따라서 가격이 반전 될 때 이익을 얻을 수 있습니다.

또한, 전략은 ATR에 기반한 중지 손실을 설정합니다. 중지 손실을 설정하면 가격이 평균선을 돌파 할 때 가격이 2 배 ATR을 빼고; 중지 중지 가격에 3 배 ATR을 추가합니다. 이것은 거래 당 위험을 효과적으로 제어 할 수 있습니다.

특히, 전략은 다음과 같은 단계로 구성됩니다:

  1. 20일 볼링거 띠의 상도, 하도 및 평균선을 계산
  2. 14일 ATR을 계산합니다.
  3. 가격 상승과 하락에 대해 더 많이 할 때; 가격 하락과 하락에 대해 더 많이 할 때
  4. 더 많이 할 때, 스톱로스는 ATR의 2배를 빼고, 스톱로스는 ATR의 3배를 더합니다.
  5. 공백할 때, 스톱로스는 가격에 2배의 ATR을 더하고, 스톱은 가격에 3배의 ATR을 빼도록 설정합니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 볼링거 띠를 사용하여 가격의 과도한 확장 영역을 효과적으로 판단할 수 있습니다.
  2. 수평값 회귀 거래와 결합하여 반전 시 수익을 얻을 수 있습니다.
  3. ATR 스톱을 설정하여 위험을 엄격하게 제어합니다.
  4. 이 자료는 지난 몇 년 동안 많은 수익을 올리고 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 역전 실패 위험. 가격 변동은 평균 회귀를 따르지 않을 수 있으며, 역전 신호가 발신된 후 가격이 계속 움직일 수 있다.
  2. 스톱 손실이 뛰어넘는 위험. 시장의 갑작스러운 사건으로 인해 가격이 급등하여 기본 스톱 손실을 뛰어넘을 수 있습니다.
  3. 매개 변수 최적화 위험. 다른 시장 상황에서는 매개 변수 설정을 조정해야 하며, 그렇지 않으면 전략 효과에 영향을 미칠 수 있다.

대책:

  1. 단편적 손실을 통제하기 위해 단편적 손실을 통제하기 위해 단편적 손실을 통제하기 위해
  2. 최적화 매개 변수, 현재 시장 상황에 맞게 조정
  3. 선택권이나 다른 도구를 사용하여 폭파 위험을 보호합니다.

최적화 방향

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

  1. 서로 다른 평선 시스템을 테스트하여 최적의 파라미터 조합을 찾습니다.

  2. 필터링 조건을 추가하고, 트렌드를 정확하게 판단한 후에 거래합니다.

  3. ATR의 배수를 조정하고, 스톱포드의 폭을 최적화합니다.

  4. 시장 구조와 관련된 동적 탈퇴 메커니즘에 가입

이것은 전략의 안정성과 수익률을 더 높이는 데 도움이 될 것입니다.

요약하다

전체적으로 볼 때, Bollinger Bands Average Return 전략은 트렌드 판단과 위험 통제를 결합하여 효과가 좋은 짧은 라인 거래 전략입니다. 지속적인 최적화와 풍요로움을 통해 안정적이고 고품질의 초과 수익을 얻을 수 있습니다.

전략 소스 코드
/*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)