볼린저 밴드 평균 회귀 거래 전략 및 동적 지원

BB SMA SD
생성 날짜: 2024-07-31 14:19:48 마지막으로 수정됨: 2024-07-31 14:19:48
복사: 4 클릭수: 721
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 평균 회귀 거래 전략 및 동적 지원

개요

불린띠 평균값 회귀 거래 전략과 동적 지지율은 불린띠 지표를 사용하여 잠재적인 구매 기회를 식별하고 동적 지지율 수준으로 중극을 수익으로 연결하는 거래 전략이다. 이 전략은 가격이 상향 중극을 뚫는 징후를 보일 때 더 많이 입어, 가격이 중극으로 돌아간다면 또는 입시 가격에서 크게 떨어지면 입장을 종료하는 것을 목표로 한다.

이 전략의 핵심적인 사고방식은 평균값 회귀의 개념에 기초하고 있는데, 즉 가격이 그 평균 수준으로 돌아가는 경향이 있다. 이 경우, 브린띠의 중간 궤도는 그 평균 수준을 나타낸다. 가격의 중간 궤도를 뚫고 확인을 받기 위해 기다리는 것으로, 전략은 거래의 성공률을 높이고, 동적인 출구 조건을 통해 위험을 관리하는 것을 목표로 한다.

전략 원칙

이 전략은 다음과 같이 작동합니다.

  1. 입장 조건:

    • 가격이 브린 대역 중간 궤도를 돌파하고 그 후의 2 거래 날 동안 중간 궤도 위에 머무르면 다단위 포지션을 설정하십시오.
    • 이 조건은 상승 추세가 일시적인 가격 변동이 아닌 지속적이라는 것을 보장하는 데 도움이 됩니다.
  2. 이윤은 다음과 같은 조건에 따라 결정됩니다.

    • 가격이 위쪽에서 브린의 중간 궤도에 닿았을 때, 평점 상위 포지션을 다.
    • 여기서 중궤도는 동적 지지를 하는 역할을 하며, 이윤을 얻기 위해 사용된다.
  3. 손해배상 조건:

    • 만약 가격이 입시 가격의 2% 이상 하락한다면, 매매 상위 포지션을 평정한다.
    • 가격 하락을 막기 위해 쓰이는 이 스톱 조건은 가격 하락을 막기 위해 쓰이는 것입니다.
  4. 같은 날 거래 제한:

    • 전략은 같은 날에도 구매와 판매를 하지 않는 것을 보장합니다. 단, 스톱로스 조건을 유발하지 않는 한 말입니다.
    • 이것은 불필요한 거래와 잠재적인 가격 변동을 방지하는 데 도움이 됩니다.

이 전략은 20주기 간단한 이동 평균 ((SMA) 을 브린 띠의 중간 궤도로 사용하며, 상하의 궤도는 각각 중간 궤도로 더하여 2배의 표준 차이를 줄인다. 이러한 매개 변수는 거래자의 선호도와 시장 조건에 따라 조정할 수 있다.

전략적 이점

  1. 동적 시장 적응:

    • 브린 띠는 시장의 변동성에 따라 자동으로 조정되어 다양한 시장 환경에 맞게 전략을 수립합니다.
  2. “이봐, 이봐, 이봐, 이봐”.

    • 전략은 명확한 입출장 규칙을 제공하여 주관적인 판단의 필요성을 줄입니다.
  3. 위험 관리:

    • 고정된 손실 비율을 사용하여 전략은 거래 당 위험을 효과적으로 제어 할 수 있습니다.
  4. 평균값 회귀 원리:

    • 이 전략은 금융 시장에서 흔히 볼 수 있는 평균값 회귀 현상을 이용해서 수익을 올릴 수 있는 가능성을 높였다.
  5. 거래가 자주 되지 않도록:

    • 이 전략은 가격의 중간 궤도 위에 두 가지 거래일 동안 유지하도록 요구함으로써 가짜 돌파구로 인한 불필요한 거래를 줄여줍니다.
  6. 유연성:

    • 전략의 매개 변수들 (예: 브린 대역 길이, 표준 격차 배수, 스톱 손실 비율) 은 다른 시장과 개인의 선호도에 따라 조정될 수 있다.

전략적 위험

  1. 트렌드 시장의 부진:

    • 강력한 트렌드 시장에서, 가격이 평균에서 장기적으로 벗어날 수 있으며, 이는 전략이 큰 트렌드를 놓치게 만든다.
  2. 과도한 거래 위험:

    • 변동성이 높은 시장에서, 가격이 중간 궤도를 자주 통과하여 과도한 거래와 높은 거래 비용을 초래할 수 있습니다.
  3. 고정 손실의 제한:

    • 2%의 고정 스톱은 어떤 경우에는 너무 크고 너무 작아 모든 시장 상황에 잘 적응하지 않을 수 있다.
  4. 슬라이드 포인트와 유동성 위험

    • 유동성이 낮은 시장에서는 정확한 가격 수준에서 거래를 수행하는 것이 어려울 수 있으며, 전략의 성과에 영향을 미칩니다.
  5. 변수 민감성:

    • 전략의 성능은 브린띠의 파라미터 설정에 민감할 수 있으며, 신중한 최적화와 재검토가 필요합니다.
  6. 가짜 해킹 위험:

    • 2일간 확인된 메커니즘에도 불구하고, 가짜 침입이 발생하여 불필요한 거래가 발생할 수 있습니다.

전략 최적화 방향

  1. 역동적인 정지:

    • 다른 시장 조건에 더 잘 적응하기 위해 ATR (Average True Rate) 과 같은 시장 변동성에 기반한 동적 스톱로드를 사용하는 것을 고려하십시오.
  2. 다중 시간 프레임 분석:

    • 더 긴 시간 프레임 분석을 도입하여 거래 방향이 더 큰 시장 추세와 일치하는지 확인합니다.
  3. 수량 확인 지표:

    • 다른 기술 지표 (RSI 또는 MACD와 같은) 를 필터로 추가하여 입력 신호의 품질을 향상시킵니다.
  4. 동적 매개변수 최적화:

    • 다른 시장 주기 및 변동성에 적응하기 위해 브린 대역의 동적 조정을 구현한다.
  5. 일부 포지션 관리:

    • 리스크 관리와 가격 변동에 대응하기 위해 매장 및 매장 체계를 도입한다.
  6. 시장 환경 필터:

    • 시장환경 식별 메커니즘에 가입하여, 평균가치 회귀 거래에 적합하지 않은 시장 환경에서 거래를 중지한다.
  7. 을 최적화:

    • 더 큰 가격 변동을 포착하기 위해 상반기 근처에 추가적인 차단 조건을 설정하는 것을 고려하십시오.
  8. 거래비용을 고려합니다.

    • 전략 논리에 거래 비용을 포함시키는 것을 고려하여 너무 자주 소규모 거래를 피하십시오.

요약하다

브린 밴드 평균값 회귀 거래 전략과 동적 지원은 기술 분석과 통계학 원리를 결합한 양적 거래 방법이다. 브린 밴드 지표를 활용하여, 이 전략은 가격이 평균값에서 이탈한 후 회귀할 기회를 잡으려고 하며, 동적 지원과 스톱 손실 메커니즘을 통해 위험을 관리한다.

이 전략의 주요 장점은 명확한 거래 규칙과 시장의 변동성에 대한 역동적인 적응력입니다. 그러나, 그것은 또한 강한 추세 시장에서 부실한 성과와 가능한 과도한 거래의 위험에 직면합니다.

전략의 안정성과 적응력을 더욱 높이기 위해, 동적 중지, 다중 시간 프레임 분석, 추가 확인 지표 및 더 복잡한 위치 관리 기술을 도입하는 것을 고려할 수 있습니다. 동시에, 전략 매개 변수의 지속적인 최적화 및 재검토는 매우 중요합니다.

전체적으로, 이 전략은 거래자에게 가격 변동을 포착하고 위험을 관리하는 체계화된 방법을 제공합니다. 그러나, 모든 거래 전략과 마찬가지로, 그것은 보편적이지 않으며, 특정 시장 조건과 개인의 위험 선호도에 따라 조정 및 최적화가 필요합니다. 실제 응용에서는 거래자가 실제 거래 전에 충분한 피드백을 수행하고 거래를 시뮬레이션하여 전략의 특성과 잠재적인 위험을 충분히 이해할 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-07-25 00:00:00
end: 2024-07-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Reversion Strategy with Bollinger Bands", overlay=true)

// Bollinger Bands settings
length = input.int(20, minval=1, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, minval=0.1, title="Bollinger Bands Multiplier")

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

// Plot Bollinger Bands
plot(basis, title="Middle Band", color=color.blue)
p1 = plot(upper, title="Upper Band", color=color.red)
p2 = plot(lower, title="Lower Band", color=color.red)
fill(p1, p2, color=color.rgb(255, 0, 0, 90))

// Buy condition: Price crosses above the middle band
longCondition = ta.crossover(close, basis)

// Close condition: Price touches the middle band
closeCondition = ta.crossunder(close, basis)

// Emergency stop condition: Price drops below 2% of entry price
dropCondition = strategy.position_size > 0 and close < strategy.position_avg_price * 0.98

// Plot Buy/Sell Signals only on initial cross
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, textcolor=color.black, text="BUY", size=size.small)
plotshape(series=closeCondition and not dropCondition, location=location.abovebar, color=color.red, style=shape.triangledown, textcolor=color.black, text="SELL", size=size.small)
plotshape(series=dropCondition, location=location.abovebar, color=color.red, style=shape.triangledown, textcolor=color.black, text="STOP", size=size.small)

// Track entry date to ensure no same-day buy/sell
var float entryPrice = na
var int entryYear = na
var int entryMonth = na
var int entryDay = na

// Strategy Logic
if (longCondition and (na(entryDay) or (year != entryYear or month != entryMonth or dayofmonth != entryDay))) 
    strategy.entry("Long", strategy.long)
    entryPrice := close
    entryYear := year
    entryMonth := month
    entryDay := dayofmonth

if ((closeCondition or dropCondition) and strategy.position_size > 0 and (na(entryDay) or (year != entryYear or month != entryMonth or dayofmonth != entryDay or dropCondition)))
    strategy.close("Long")
    entryDay := na