이중 EMA 크로스오버 거래 전략

저자:차오장, 날짜: 2023-09-19 19:36:03
태그:

전반적인 설명

이중 EMA 크로스오버 거래 전략은 시장 트렌드를 결정하고 거래를하기 위해 서로 다른 길이의 두 EMA의 크로스오버를 사용하는 트렌드 다음 전략입니다. 이 간단하고 직설적인 전략은 중장기 트렌드를 효과적으로 추적 할 수 있으며 스윙 트레이더에게 매우 적합합니다.

전략 논리

이 전략은 주로 단기 및 장기 EMA의 값과 교차를 사용하여 트렌드 방향을 결정합니다. 먼저 단기 EMA (예를 들어 13 기간) 및 장기 EMA (예를 들어 26 기간) 를 계산하고 두 EMA 사이의 비율 교차를 계산합니다. 짧은 EMA가 긴 EMA보다 높고 교차가 한 임계 (예를 들어 5%) 보다 크면 상승 추세를 신호하고 긴 거래를 취합니다. 짧은 EMA가 긴 EMA보다 낮고 교차가 임계보다 크면 하락 추세를 신호하고 짧은 거래를 취합니다. 가격이 다시 EMA보다 높거나 낮을 때 거래가 종료됩니다.

핵심 논리는

  1. 단기 및 장기 EMA를 계산합니다
  2. 짧은 EMA가 긴 EMA보다 높거나 낮는지 확인합니다.
  3. 두 EMA 사이의 계산 비율 교차
  4. 긴 거래 또는 짧은 거래의 경향 방향을 결정
  5. 가격이 짧은 EMA를 넘으면 거래를 종료합니다.

이는 전략이 중장기 트렌드를 효과적으로 추적하고 트렌드가 변할 때 방향을 변경할 수 있게 해줍니다. 크로스오버 임계점은 또한 트렌드가 아닌 기간 동안 불필요한 거래를 피합니다.

장점

  • 장기적 경향을 추적하기 위해 간단하고 효과적
  • EMA 는 단기 시장 소음 을 필터링 하는 데 도움 이 된다
  • 설정 가능한 EMA 기간과 유연성을 위한 크로스오버 기준
  • 크로스오버 문턱은 트렌드가 강한 경우에만 거래를 보장합니다.
  • 스톱 로즈에 대한 짧은 EMA 브레이크는 위험을 관리하는 데 도움이됩니다.

위험 및 완화

  • 트렌드 반전 전에 탈퇴할 수 없거나 더 큰 마감액
  • 범위를 묶은 가격 행동 중에 을 얻을 수 있습니다.
  • 적당한 EMA 기간과 각 기기별 임계치를 설정해야 합니다.

위험은 다음과 같이 감소 할 수 있습니다.

  1. 초기 탈퇴를 위한 트렌드 반전 신호를 식별하는 필터를 추가합니다.
  2. 거래 범위에 대한 행동을 피하기 위해 트렌드 필터 규칙을 증가시키는 것
  3. 각 계기별로 EMA 기간과 임계량을 최적화

더 나은 기회

이 전략은 다음과 같은 분야에서 강화될 수 있습니다.

  1. 최적의 EMA 기간과 임계값을 찾기 위해 백테스팅을 통한 매개 변수 최적화

  2. 트렌드 필터링 MACD, 볼링거 밴드와 같은 추가 지표를 사용하여 휘프사우를 피합니다.

  3. 손실을 제한하기 위해 후속 중지 또는 시간 기반 중지와 같은 손실 중지 전략

  4. 스톱 로스를 이동하여 히트 후 부분 이윤을 잠금함으로써 수익을 취하는 것

  5. 기계 학습을 사용하여 수량적 최적화

  6. 소모율을 낮추고 안정성을 높이기 위해 상관관계가 없는 전략과 결합하여 포트폴리오 최적화

매개 변수 최적화, 더 나은 필터, 스톱 로스, 이윤 취득, 그리고 양적 및 포트폴리오 최적화를 통해 전략은 더 견고하고 적응력 있고 과학적으로 효과적입니다.

결론

이중 EMA 크로스오버는 스윙 트레이딩에 적합한 간단하고 직접적인 트렌드 다음 전략이다. 중장기 트렌드 트레이딩에 이상적으로 트렌드 방향을 결정하기 위해 두 개의 EMA만 필요합니다. 이 전략은 또한 매개 변수 조정, 더 나은 필터, 스톱 로스 및 기타 양적 최적화를 통해 강화 될 수 있습니다. 구현하고 최적화하는 것이 쉽기 때문에 권장되는 트렌드 트레이딩 전략입니다.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-08-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("2-EMA Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

diffMinimum = input(0.95, step=0.01)

small_ema = input(13, title="Small EMA")
long_ema = input(26, title="Long EMA")

ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)


orderCondition = ema1 > ema2?((ema1/ema2)*100)-100 > diffMinimum:((ema2/ema1)*100)-100 > diffMinimum

longCondition = close > ema1 and ema1 > ema2
if (longCondition and orderCondition)
    strategy.entry("Long", strategy.long)

shortCondition = close < ema1 and ema1 < ema2
if (shortCondition and orderCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when=close > ema1)
strategy.close("Long", when=close < ema1)
    
plot(ema(close, small_ema), title="EMA 1", color=green, transp=0, linewidth=2)
plot(ema(close, long_ema), title="EMA 2", color=orange, transp=0, linewidth=2)

더 많은