이중 이동 평균 거래 전략 (Dual Moving Average Trading Strategy) 은 두 개의 이동 평균 라인을 사용하여 다른 주기를 가진 두 개의 이동 평균 라인을 사용하여 거래 신호를 구성하는 양적 거래 전략이다. 이 전략은 두 이동 평균 라인의 관계를 계산하여 시장 추세와 기회를 판단하며 트렌딩 시장에서 좋은 추적 성능을 갖는다.
이 전략의 핵심 기법은 두 이동 평균 라인의 분석이다. 전략은 5 일 단기 이동 평균 라인 ma0과 21 일 긴 주기 이동 평균 라인 ma1을 정의한다. 가격과 ma0 사이의 osc0과 ma0과 ma1 사이의 osc1의 차이 값을 비교함으로써 전략은 현재 트렌드 상태를 결정한다.
osc0>0 및 osc1>0의 경우, 단기 이동 평균 라인이 장기 이동 라인을 넘어서 상승 추세를 나타냅니다. osc0<0 및 osc1<0의 경우, 단기 이동 라인이 아래를 넘어서 하향 추세를 나타냅니다. 이 전략은 상승 추세가 확인되면 긴 위치를 취하고 하향 추세가 확인되면 짧은 위치를 취합니다.
포지션을 취한 후, 전략은 포지션의 수익 범위를 판단하기 위해 osc0 및 osc1의 실시간 변화를 모니터링합니다. 긴 포지션을 취한 후 osc0 <0 및 osc1 <0이 되면 트렌드 반전을 의미하므로 긴 포지션은 닫아야 합니다. 짧은 포지션을 취한 후 osc0>0 및 osc1>0이 되면 반전을 의미하므로 짧은 포지션은 닫아야 합니다.
이중 이동 평균 거래 전략은 다음과 같은 장점을 가지고 있습니다.
간단한 원칙과 이해하기 쉽고 실행하기 쉽고 양 거래 초보자에게 적합합니다.
트렌드를 따라가며, 좋은 수익을 올리는 트렌드 시장을 잘 추적합니다.
이동 평균의 주기 매개 변수는 다른 시장 조건에 맞게 조정할 수 있습니다.
다른 지표나 전략과 결합하여 더 큰 수익을 얻을 수 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
트렌드가 역전될 때 적시에 포지션을 종료하지 못하면 엄청난 손실이 발생할 수 있습니다.
빈번한 스톱 로스로 인해 범위 제한 시장에서 수익을 얻는 것이 어렵습니다.
5일 주기와 21일 주기와 같은 매개 변수를 최적화하기 어렵죠.
트레이딩 신호가 늦어지거나 시장에 늦게 진입하면 수익률에 영향을 줄 수 있습니다.
이중 이동 평균 거래 전략은 다음 측면에서 최적화 될 수 있습니다:
실제 트렌드 시작을 확인하기 위해 VOL와 결합하고, 거짓 브레이크를 피합니다.
신호 신뢰성을 보장하기 위해 가격 파업, 부피 확장이 같은 다른 필터를 추가합니다.
동적 정지 설정 손실을 시간 단축;
오류를 줄이기 위해 이동 평균 차이점의 문턱과 같은 매개 변수를 최적화합니다.
기계 학습을 활용해서 이동 평균의 주기를 자동으로 최적화합니다.
결론적으로, 이중 이동 평균 거래 전략은 매우 고전적이고 실용적인 트렌드 다음 전략입니다. 그것은 트렌드를 추적하는 데 좋은, 다른 기술과 결합 할 수있는 매우 확장 가능한 초보자가 연습 할 수있는 간단한 논리를 가지고 있습니다. 그러나 또한 몇 가지 결함이 있습니다. 예외적인 시장 조건을 처리하고 위험을 줄이고 안정성을 향상시키기 위해 추가 최적화가 필요합니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[STRATEGY][RS]MA Strategy test V0", overlay=true) length0 = input(5) length1 = input(21) isinsession = not na(time('1', '0400-1500')) price = open ma0 = ema(ema(price, length0), length0) ma1 = ema(ema(price, length1), length1) plot(ma0, color=navy) plot(ma1, color=black) osc0 = price-ma0 osc1 = ma0-ma1 isbull = osc0 > 0 and osc1 > 0 buy_condition = isinsession and isbull and not isbull[1] buy_exit_condition = osc0 < 0 and osc1 < 0 strategy.entry("buy", strategy.long, comment="buy", when=buy_condition) strategy.close(id='buy', when=buy_exit_condition) isbear = osc0 < 0 and osc1 < 0 sell_condition = isinsession and isbear and not isbear[1] sell_exit_condition = osc0 > 0 and osc1 > 0 strategy.entry("sell", strategy.short, comment="sell", when=sell_condition) strategy.close(id='sell', when=sell_exit_condition) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)