다중 이동 평균 회귀 MACD 추세 확인 전략

EMA MACD ATR SL/TP R:R
생성 날짜: 2025-03-28 15:40:36 마지막으로 수정됨: 2025-03-28 15:40:36
복사: 0 클릭수: 400
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 이동 평균 회귀 MACD 추세 확인 전략 다중 이동 평균 회귀 MACD 추세 확인 전략

개요

다중평균선 회귀 MACD 트렌드 확인 전략은 평평선 시스템, 가격 회귀 및 MACD 지표를 결합한 트렌드 거래 시스템이다. 이 전략의 핵심은 가격 회귀가 장기평균선 ((200/250평균선) 에 가까운 거래 기회를 찾는 것이며 MACD 지표를 입점 확인 신호로 사용하는 것이다. 전략은 동시에 다중 숨겨진 평평선을 보조 필터링 조건으로 사용하며, ATR 기반의 동적 중지 손실 및 고정 위험 수익률을 설정하여 전체 거래 시스템을 형성한다.

전략 원칙

이 전략은 다음과 같은 핵심 원칙에 기초하여 거래됩니다.

  1. 추세 판단: 20평균선과 250평균선의 상대적인 위치를 사용하여 시장의 전반적인 추세를 판단한다. 20평균선이 250평균선 위쪽에 있을 때, 시장이 상승 추세에 있다고 여겨진다. 20평균선이 250평균선 아래에 있을 때, 시장이 하락 추세에 있다고 여겨진다.
  2. 가격 회귀: 전략은 가격이 장기 평균선 ((250일 평균선)) 근처로 돌아가는 경우에만 진입 기회를 찾습니다. 이것은 “가격이 결국 평균선으로 돌아가는 것”에 근거한 평균 회귀 이론입니다.
  3. 입구 조건: MACD 교차를 통해 입구 트리거 신호로, 평선 위치 필터링을 결합한다.
  4. 숨겨진 평균선 필터링: 전략은 3개의 추가적인 “숨겨진 평균선”을 사용해서 (2일, 100일, 300일 평균선) 진입 창을 만들며, 특정 평균선 사이에 가격을 요구한다.
  5. 위험 관리: ATR 기반의 동적 스톱로스를 사용하여 5배의 ATR 값을 기본으로 설정하고, 미리 설정된 리스크 수익률 (default 1.5) 을 통해 수익 목표를 자동으로 계산한다.

입학 조건:

  • 20의 평균은 250의 평균의 상단에 있습니다.
  • 2 일간 평균선은 300 일간 평균선 위에 있고 2 일간 평균선은 100 일간 평균선 아래에 있다.
  • MACD 라인 상의 신호 라인을 뚫고 ((확인 동력 전환)

공허 입학 조건:

  • 20의 평균은 250의 평균보다 낮습니다.
  • 2 일간 평균선은 300 일간 평균선 아래에 있고 2 일간 평균선은 100 일간 평균선 위에 있다.
  • MACD 하위 라인 통과 신호 라인 ((확인 동력 전환)

전략적 이점

  1. 트렌드 추적과 회귀 결합: 전략은 중장기 트렌드 방향을 존중하고 (20250 평균선 판단을 통해) 가격 회귀 시 더 우수한 입구 지점을 잡을 수 있으며, 추격 또는 표절의 위험을 줄일 수 있습니다.
  2. 정확한 입구 영역: 복수의 평균선 조합 필터링을 통해 비교적 정확한 입구 창을 생성하여 잘못된 신호를 줄인다.
  3. 다이내믹 리스크 관리: ATR 기반의 스톱 스팅은 전략이 시장의 변동성에 따라 자동으로 리스크 을 조정할 수 있도록 해줍니다. 높은 변동성 시장에서 더 느슨한 스톱 스팅을 설정하고 낮은 변동성 시장에서 더 긴밀한 스톱 스팅을 설정합니다.
  4. 체계화 된 수익 목표: 미리 예상된 위험과 수익을 비교하여 자동으로 목표 가격을 계산하여 주관적인 판단을 피한다.
  5. 신호 필터링 메커니즘: 여러 조건의 교차 검증 ((평선 위치+MACD 교차) 은 가짜 신호의 가능성을 낮춘다.
  6. 시각적 지원: 전략이 입시 조건을 충족하면 배경 색상 표시를 통해 거래자가 입시 기회를 직관적으로 식별할 수 있도록 도와줍니다.

전략적 위험

  1. 평균선 지연성: 평균선은 본질적으로 지연 지표이며, 급변하는 시장에서 가격 변화에 적절하게 반응하지 않을 수 있으며, 출구 신호의 지연을 초래한다. 해결 방법: 평균선 파라미터를 조정하는 것을 고려할 수 있다. 예를 들어, 더 짧은 EMA1을 채택하거나 더 무거운 평균선인 헐 평균선을 사용한다.
  2. 복잡한 조건으로 인해 거래 기회가 희박합니다. 여러 가지 입시 조건의 중첩으로 인해 실제 거래 신호가 상대적으로 희박할 수 있습니다. 특히 불안정한 시장에서. 해결 방법: 입시 조건을 다른 시장 조건에 따라 최적화하거나 추가 입시 논리를 추가 할 수 있습니다.
  3. 고정 리스크 수익률의 한계: 미리 설정된 고정 리스크 수익률은 모든 시장 환경에 적합하지 않을 수 있으며, 추세가 강할 때 조기 수익을 올릴 수 있으며, 흔들리는 시장에서 목표 가격에 도달하기가 어려울 수 있습니다. 해결 방법: 동적으로 리스크 수익률을 조정하는 것이 고려 될 수 있습니다.
  4. 변수 변화에 민감하다: 전략은 여러 개의 평균선과 MACD 변수를 사용하며, 과도한 최적화는 과다 적합성의 위험을 초래할 수 있다. 해결 방법: 안정성 테스트를 수행하여 변수에서 작은 변화에도 불구하고 전략의 성능이 안정적으로 유지되도록 한다.
  5. 시장 환경 필터 부족: 전략은 전체 시장 환경 (트렌드 강도, 변동률 범위 등) 의 메커니즘을 식별하지 않으며, 부적절한 시장 조건에서 신호를 생성 할 수 있습니다. 해결 방법: 트렌드 강도를 판단하는 ADX 지표와 같은 시장 환경 필터를 추가하거나 변동률 하락을 제어하십시오.

전략 최적화 방향

  1. 동적으로 조정하는 리스크 수익률: 시장의 변동성이나 트렌드 강도에 따라 리스크 수익률을 자동으로 조정할 수 있습니다. 예를 들어, 강한 트렌드 시장에서 더 높은 리스크 수익률을 사용하고, 흔들리는 시장에서 더 낮은 리스크 수익률을 사용합니다. 이것은 다른 시장 환경에 더 잘 적응하여 전략의 적응성을 향상시킬 수 있습니다.
  2. 시장 환경 필터를 추가합니다. ADX (평균 트렌드 지표) 와 같은 트렌드 강도를 판단하기 위해 추가 지표를 도입합니다. 트렌드가 명확한 경우에만 거래를 수행합니다. 또한 VIX 또는 ATR 범위를 기반으로 변동 환경을 판단하여 과도한 변동 또는 변동성이 부족한 시장에서 거래를 피 할 수 있습니다.
  3. 분량 수익 전략: 분량 수익 전략을 시행할 수 있습니다. 예를 들어, 0.5R, 1R 및 최종 목표가 달성되면 각각 포지션의 일부를 청산하여 수익의 일부를 잠금 할 수 있으며, 일부 포지션이 잠재적인 수익을 계속받을 수 있습니다.
  4. 개선된 평균선 시스템: KAMA (카우프만 자기 적응 이동 평균) 또는 헐 평균선 대신 표준 EMA를 사용하여 평균선 지연성을 줄이고 가격 변화에 대한 반응 속도를 향상시킬 수 있습니다.
  5. 통합 트래픽 확인: 입시 신호 생성 시 트래픽 확인 조건을 추가, 예를 들어 MACD 교차시 트래픽 증가와 함께 트래픽을 요구하여 신호 신뢰성을 높인다.
  6. 시간 필터 추가: 시간 필터를 추가하여 시장 개시 또는 종료 1시간 전과 같은 큰 변동이나 유동성이 낮은 시간대에 거래하는 것을 피할 수 있습니다.
  7. 최적화 스톱: 고정 스톱이 아닌 추적 스톱을 구현할 수 있으며, 특히 수익이 일정 수준에 도달한 후, 이미 수익이있는 수익을 최대한 보호 할 수 있습니다.

요약하다

다중 평균선 회귀 MACD 트렌드 확인 전략은 여러 가지 기술적 분석 방법을 통합한 통합 거래 시스템이며, 핵심 장점은 트렌드 판단, 가격 회귀 이론, 동력 확인 및 체계화된 위험 관리의 결합에 있다. 전략은 평균선 시스템을 통해 전체적인 트렌드 방향을 식별하고, 가격 회귀를 통해 장기 평균선 근처의 메커니즘을 통해 높은 승률 입구를 찾으며, MACD를 동력 확인 신호로 사용하여 가짜 신호를 줄인다.

이 전략은 중장기 트렌드 시장에 특히 적합하며, 강한 트렌드 환경에서 가격 회정을 캡처하고 추세 방향으로 계속 발전 할 수있는 기회를 제공합니다. 그러나, 전략에는 평평선 낙후, 거래 기회 희소성 등의 잠재적인 위험이 있으며, 시장 환경 필터링, 동적 위험 관리 등의 방법으로 최적화가 필요합니다.

시장 환경 필터링 메커니즘을 추가하고, 리스크 수익률을 동적으로 조정하고, 일률 시스템을 개선함으로써, 이 전략은 더욱 안정적이고 적응력을 향상시키고, 더 포괄적이고 효과적인 거래 시스템으로 발전할 전망이다. 체계화된 거래를 추구하는 투자자에게, 이 전략은 여러 기술 지표와 완전한 위험 관리 메커니즘을 갖춘 거래 프레임워크를 고려할 가치가 있다.

전략 소스 코드
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Price Near 200 EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === User Inputs ===
ema1Length = input(20, title="EMA 1 Length")     // Main EMA (Trend)
ema2Length = input(250, title="EMA 2 Length")    // Long-term EMA
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalLength = input(9, title="MACD Signal Length")

rrRatio = input.float(1.5, title="Risk to Reward Ratio", minval=1, step=0.1)
atrMultiplier = input.float(5, title="ATR Multiplier for SL", minval=1, step=0.1)  // Default to 5x ATR
atrLength = input(14, title="ATR Length")  // User-defined ATR length

// === Hidden EMA Lengths (Hardcoded) ===
ema3Length = 2    // Fast EMA (Hidden)
ema4Length = 100  // Medium EMA (Hidden)
ema5Length = 300  // Long EMA (Hidden)

// === EMA Calculations ===
ema1 = ta.ema(close, ema1Length)  // 20 EMA
ema2 = ta.ema(close, ema2Length)  // 250 EMA
ema3 = ta.ema(close, ema3Length)  // 2 EMA (Hidden)
ema4 = ta.ema(close, ema4Length)  // 100 EMA (Hidden)
ema5 = ta.ema(close, ema5Length)  // 300 EMA (Hidden)

// === MACD Calculation ===
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
macdBullish = ta.crossover(macdLine, signalLine)
macdBearish = ta.crossunder(macdLine, signalLine)

// === ATR for Dynamic Stop Loss ===
atrValue = ta.atr(atrLength)

// === Long Conditions ===
bullishCondition1 = ema1 > ema2
bullishCondition2 = ema3 > ema5 and ema3 < ema4
bullishEntry = bullishCondition1 and bullishCondition2 and macdBullish

// === Short Conditions ===
bearishCondition1 = ema1 < ema2
bearishCondition2 = ema3 < ema5 and ema3 > ema4
bearishEntry = bearishCondition1 and bearishCondition2 and macdBearish

// === Calculate Stop Loss and Target Using ATR ===
longStopLoss = close - atrValue * atrMultiplier
longTargetPrice = close + (close - longStopLoss) * rrRatio

shortStopLoss = close + atrValue * atrMultiplier
shortTargetPrice = close - (shortStopLoss - close) * rrRatio

// === Entry and Exit Logic ===
if bullishEntry
    strategy.entry("Buy", strategy.long)
    strategy.exit("TP Long", "Buy", limit=longTargetPrice, stop=longStopLoss, comment="SL/TP Long")

if bearishEntry
    strategy.entry("Sell", strategy.short)
    strategy.exit("TP Short", "Sell", limit=shortTargetPrice, stop=shortStopLoss, comment="SL/TP Short")

// === Plotting Only Visible EMAs ===
plot(ema1, title="EMA 1", color=color.blue)
plot(ema2, title="EMA 2", color=color.red)

// === Background Highlight for Entries ===
bgcolor(bullishEntry ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishEntry ? color.new(color.red, 90) : na, title="Bearish Background")