크로싱 이동 평균 전략 (crossing moving average strategy) 은 다른 기간의 기하급수적 이동 평균 (EMA) 을 사용하여 거래 신호를 생성하는 양적 거래 전략이다. 이 전략은 시장 추세를 결정하고 구매 및 판매 신호를 생성하기 위해 5 기간, 9 기간 및 21 기간의 3 개의 EMA의 크로스오버를 사용합니다. 또한 더 긴 기간 100 기간 및 200 기간 EMA를 통합하여 주요 추세를 측정합니다.
이 전략의 핵심 지표는 5주기, 9주기 및 21주기의 3개의 EMA입니다.
5주기 EMA가 9주기 EMA를 넘을 때 구매 신호가 생성되고, 그 아래로 넘을 때 판매 신호가 생성됩니다.
21주기 EMA는 거래 신호를 검증하는 데 사용될 수 있다. 거래 신호는 5과 9 EMA가 모두 구매 신호의 21 EMA 이상, 판매 신호의 21 EMA 아래에 있을 때 더 신뢰할 수 있다.
100 및 200 EMA는 시장의 중장기 트렌드를 결정하는 역할을 합니다. 그들은 트렌드 검증 또는 단기 거래 신호에 대한 경고를 제공할 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
실행과 운영이 간단합니다. EMA 계산과 크로스오버 판단은 간단합니다.
시장 변화에 민감합니다. 빠른 5 & 9 EMA는 단기 트렌드를 빠르게 파악 할 수 있습니다.
스톱 로스/프로프트 취득을 쉽게 설정할 수 있습니다. EMA 자체는 이동 스톱 로스 라인으로 사용될 수 있습니다.
확장 가능. 다른 EMA 또는 지표는 시스템을 부양하기 위해 쉽게 도입 할 수 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
거짓 신호 위험. EMA 크로스오버는 100% 신뢰할 수 없으며 잘못된 브레이크가 발생할 수 있습니다. 다른 요소는 신중한 검토가 필요합니다.
트렌드 반전 위험. 빠른 EMA 교차는 주요 트렌드 반전을 무시하는 단기적 보정을 반영 할 수 있습니다. 중장기 EMA는 확인해야합니다.
매개 변수 조정 위험. 매개 변수는 다른 제품과 시장 체제에 따라 크게 다를 수 있으므로 철저한 최적화와 테스트가 필요합니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
KD, MACD 등과 같은 다른 필터를 도입하여 신호를 스크린하고 잘못된 신호를 줄이십시오.
손해를 제한하기 위해 손해를 막는 크기를 늘리거나 수익을 확보하기 위해 후속 손해를 막는 것을 채택하십시오.
최적의 EMA 기간 조합을 찾기 위해 매개 변수를 최적화합니다. 기계 학습은 또한 기간을 동적으로 최적화하는 데 사용될 수 있습니다.
양적 프레임워크를 통합하여 전체 거래 작업 흐름을 자동화하십시오.
크로싱 이동 평균 전략은 명확한 논리를 가지고 있으며, 단기 트렌드를 효과적으로 포착하여 작동하기가 쉽습니다. 그러나 의사 결정에 대한 EMA 크로스에만 의존하는 것은 여전히 맹점이 있습니다. 위험을 줄이기 위해 추가 요소가 필요합니다. 이 전략은 수익성과 안정성을 향상시키기 위해 더 많은 기술적 지표 또는 기술을 도입함으로써 개선 가능성이 있습니다.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © nagversion //@version=5 strategy("5/9/21 EMA Strategy with 200 and 100 EMA", overlay=true) // Calculate EMAs ema5 = ta.ema(close, 5) ema9 = ta.ema(close, 9) ema21 = ta.ema(close, 21) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Plot EMAs plot(ema5, title="5 EMA", color=color.blue) plot(ema9, title="9 EMA", color=color.yellow) plot(ema21, title="21 EMA", color=color.red) plot(ema100, title="100 EMA", color=color.purple) plot(ema200, title="200 EMA", color=color.green) // Strategy conditions longCondition = ta.crossover(ema5, ema9) and ta.crossover(ema9, ema21) shortCondition = ta.crossunder(ema5, ema9) and ta.crossunder(ema9, ema21) if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Set strategy properties if required (like stop loss, take profit, etc.)