다중 이동 평균 교차 모멘텀 추세 추종 전략

EMA MA
생성 날짜: 2024-12-12 14:46:33 마지막으로 수정됨: 2024-12-12 14:46:33
복사: 0 클릭수: 383
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 이동 평균 교차 모멘텀 추세 추종 전략

개요

이 전략은 다중 지수 이동 평균 (EMA) 에 기반한 트렌드 추적 시스템이다. 이 전략은 단기 및 장기 EMA 그룹의 평균을 계산하여 시장의 추세를 식별하고 평행선이 교차할 때 거래 신호를 발생시킨다. 이 전략은 위험을 제어하고 이익을 잠금하기 위해 스톱 손실 메커니즘을 통합한다.

전략 원칙

이 전략은 6개의 단기 EMA ((3, 5, 8, 10, 12, 15주기) 와 6개의 장기 EMA ((30, 35, 40, 45, 50, 60주기) 를 사용한다. 이러한 평균선을 각각 평균화함으로써 더 부드러운 단기 및 장기 트렌드 지표를 얻는다. 단기 평균선이 장기 평균선을 상향으로 통과하면 더 많은 신호가 발생하며, 단기 평균선이 장기 평균선을 하향으로 통과하면 빈 신호가 발생한다.

전략적 이점

  1. 다중 평준선의 적용은 단일 평준선이 가져올 수 있는 거짓 신호를 감소시키고 신호의 신뢰성을 향상시킨다.
  2. 여러 평균 선의 평균값을 취함으로써 시장 소음을 더 잘 필터링하여 주요 트렌드를 포착할 수 있습니다.
  3. 명확한 스톱로스 설정으로 위험을 효과적으로 통제하고 동시에 수익을 보장합니다.
  4. 전략의 논리는 간단하고 명확하며 이해하기 쉽고 실행하기 쉽습니다.
  5. 양방향 거래 능력으로 상승과 하락 시장에서 수익을 얻을 수 있습니다.

전략적 위험

  1. 불안정한 시장에서 빈번한 가짜 브레이크 신호가 발생하여 연속적인 손실이 발생할 수 있습니다.
  2. 평균선 시스템은 지연성이 있으며, 트렌드의 시작점을 놓칠 수도 있고, 트렌드의 끝에서 여전히 포지션을 유지할 수도 있습니다.
  3. 고정된 스톱 스톱 손실 비율은 모든 시장 환경에 적용되지 않을 수 있습니다.
  4. 높은 변동성이 있는 시장에서, 정지점을 도달하기 전에 시장의 역전 기회를 놓칠 수 있습니다.

전략 최적화 방향

  1. 변동률 지표를 도입하여 시장의 변동에 따라 중지 손실 수준을 조정합니다
  2. 거래량 확인 지표를 추가하여 거래 신호의 신뢰성을 향상시킵니다.
  3. 다른 시장 상태에 따라 동적으로 조정된 평균선 변수
  4. 트렌드 강도 필터를 추가하고, 강한 트렌드 환경에서만 거래합니다.
  5. 시장의 감정 지표를 고려하고 시장에 진입할 시기를 최적화하십시오.

요약하다

이것은 잘 구성된 트렌드 추적 전략으로, 여러 개의 평균선을 조합하여 비교적 신뢰할 수 있는 거래 신호를 제공합니다. 약간의 지연 위험이 있지만, 합리적인 스톱 스톱 손실 설정과 권장되는 최적화 방향을 통해 전략의 전반적인 성능이 더욱 향상 될 수 있습니다. 이 전략은 특히 명백한 추세가있는 시장 환경에서 사용하기에 적합합니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Pavan Guppy Strategy", shorttitle="Pavan Avg", overlay=true, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Short-term EMAs
shortEMA1 = ta.ema(close, 3)
shortEMA2 = ta.ema(close, 5)
shortEMA3 = ta.ema(close, 8)
shortEMA4 = ta.ema(close, 10)
shortEMA5 = ta.ema(close, 12)
shortEMA6 = ta.ema(close, 15)

// Long-term EMAs
longEMA1 = ta.ema(close, 30)
longEMA2 = ta.ema(close, 35)
longEMA3 = ta.ema(close, 40)
longEMA4 = ta.ema(close, 45)
longEMA5 = ta.ema(close, 50)
longEMA6 = ta.ema(close, 60)

// Average short-term EMAs
shortAvg = (shortEMA1 + shortEMA2 + shortEMA3 + shortEMA4 + shortEMA5 + shortEMA6) / 6.0

// Average long-term EMAs
longAvg = (longEMA1 + longEMA2 + longEMA3 + longEMA4 + longEMA5 + longEMA6) / 6.0

// Plot averaged EMAs
plot(shortAvg, color=color.green, linewidth=2, title="Averaged Short-term EMAs")
plot(longAvg, color=color.red, linewidth=2, title="Averaged Long-term EMAs")

// Define the target and stop loss percentages
takeProfitPerc = 10
stopLossPerc = 5

// Generate buy signal when shortAvg crosses above longAvg
if ta.crossover(shortAvg, longAvg)
    strategy.entry("Buy", strategy.long)

// Generate sell signal when shortAvg crosses below longAvg
if ta.crossunder(shortAvg, longAvg)
    strategy.entry("Sell", strategy.short)

// Calculate take profit and stop loss prices for long trades
longTakeProfit = close * (1 + (takeProfitPerc / 100.0))
longStopLoss = close * (1 - (stopLossPerc / 100.0))

// Set take profit and stop loss for long positions
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)

// Calculate take profit and stop loss prices for short trades
shortTakeProfit = close * (1 - takeProfitPerc / 100.0)
shortStopLoss = close * (1 + stopLossPerc / 100.0)

// Set take profit and stop loss for short positions
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=shortTakeProfit, stop=shortStopLoss)