이중 이동 평균 크로스오버 전략은 이동 평균을 이용한 트렌드를 따르는 전형적인 전략이다. 이는 서로 다른 기간의 두 이동 평균을 비교하여 시장 트렌드를 식별하고 평균이 교차할 때 구매 및 판매 신호를 생성한다. 이 간단하고 실용적인 전략은 중장기 포지션 거래에 적합하다.
이 전략은 주로 시장 트렌드를 결정하기 위해 20주기 및 50주기 기하급수적 이동 평균 (EMA) 을 사용합니다. 논리는 다음과 같습니다.
이러한 논리로, 이중 EMA 전략은 트렌드 변화를 동적으로 따라가며, 트렌드 기간 동안 수익을 극대화하기 위해 위치를 조정합니다.
이중 이동 평균 크로스오버 전략은 다음과 같은 장점을 가지고 있습니다.
간단하게 구현할 수 있습니다. 복잡한 예측이나 모델링 없이 두 개의 평균을 비교할 필요가 있습니다.
시장 트렌드를 따르고, 트렌드에 반하는 거래를 피합니다. 트렌드가 명확할 때만 시장에 진입하기 위해 이동 평균의 트렌드 추적 기능을 사용합니다.
위험 통제를 위한 자동 스톱 로스 트렌드 트렌드가 갑자기 역전되면 빠르게 탈퇴합니다.
마이크업 트레이드 손실, 상승 추세를 잡습니다. 트렌드가 다시 상승할 때 손실을 멈추고 다시 들어갑니다.
유연한 매개 변수, 적응성, MA 기간은 다른 시장 환경에 맞게 조정할 수 있습니다.
높은 자본 활용률. 트렌드에 따라 위치를 자주 조정하여 자본을 완전히 활용합니다.
이 전략에는 몇 가지 위험도 있습니다.
빈번한 거래 비용. 빈번한 교차는 과도한 거래로 이어질 수 있습니다.
범위를 제한하는 시장에서 잘못된 신호 이동 평균은 불안한 시장에서 여러 번 교차하여 손실을 유발할 수 있습니다.
매개 변수 조절이 중요합니다. 부적절한 스톱 로스 또는 취득 설정은 손실로 이어질 수 있습니다.
블랙 스완 현상에 반응할 수 없습니다. 기술적 지표는 극단적인 현상을 포착하는 능력이 제한되어 있습니다.
주요 지원/저항이 놓치고 있습니다. 이중 MA 전략은 중요한 점을 식별하지 않습니다.
위험을 관리하기 위해 매개 변수 최적화, 필터 추가, 스톱 로스, 위험 평가에 기반한 포지션 사이징과 같은 방법을 적용 할 수 있습니다.
이중 이동 평균 전략은 여러 측면에서 향상 될 수 있습니다.
변화하는 시장에 대한 MA 매개 변수를 최적화하십시오. 현재 환경에 가장 적합한 것을 찾기 위해 다양한 단기 및 장기 MA 조합을 테스트하십시오.
부진을 방지하기 위해 볼륨 필터를 추가합니다. 부진이 발생했을 때 볼륨 확인을 요구합니다.
신호 검증을 위해 다른 지표를 포함합니다. MACD, 스토카스틱 등과 같은 지표가 MA 크로스오버와 일치 할 때 더 높은 신뢰성.
동적으로 스톱 로즈 너비 조절합니다. 조기 출출을 피하기 위해 변동성이 증가하면 스톱 로즈를 넓혀줍니다.
자본 관리를 최적화 한 거래에서 손실을 제한하기 위해 위험을 기반으로 위치 크기를 결정합니다.
트렌드 시장과 범위 시장에서 다른 입시 논리를 사용하십시오. 높은 확신 신호를 기다리는 불안한 시장에서 입시 규칙을 강화하십시오.
이중 이동 평균 크로스오버는 트렌드를 따르는 매우 전형적이고 실용적인 전략입니다. 트렌드를 따르는, 자동 스톱 로스, 메이크업 손실 트레이드 등을 쉽게 구현하는 장점이 있으며, 중장기 포지션 트레이딩에 매우 적합합니다. 우리는 또한 과도한 거래 및 잘못된 신호와 같은 위험에주의를 기울여야합니다. 파라미터 튜닝, 필터 추가 및 적절한 자본 관리를 통해 개선 될 수 있습니다. 트렌드를 타기를 원하는 트레이더에게는 이것은 간단하면서도 탄탄한 전략입니다.
/*backtest start: 2023-09-01 00:00:00 end: 2023-09-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version =4 strategy("Moving Average Cross", overlay=true) ema20 = ema(close, 20) ema50 =ema(close, 50) long = ema20 > ema50 short = ema20 < ema50 longcondition = long and long[10] and not long[11] shortcondition = short and short[10] and not short[11] closelong = ema20 < ema50 and not long[11] closeshort = ema20 > ema50 and not short[11] plot(ema20, title="20", color=#00ffaa, linewidth=3) plot(ema50, title="50", color=#FFC1CC, linewidth=2) start = timestamp(2015,6,1,0,0) end = timestamp(2019,6,1,0,0) if true strategy.entry("Long" ,strategy.long, when = longcondition) strategy.entry("Short" ,strategy.short, when = shortcondition) strategy.close("Long", when = closeshort) strategy.close("Short", when = closelong)