
평균선 교차전략은 다른 주기의 지수 이동 평균 ((EMA) 을 사용하여 거래 신호를 생성하는 양적 거래 전략이다. 이 전략은 5주기, 9주기 및 21주기 EMA의 세 가지 EMA의 교차 상황을 사용하여 시장 추세를 판단하고 구매 및 판매 신호를 생성한다. 이 전략은 또한 더 긴 주기의 100주기 및 200주기 EMA를 결합하여 큰 추세를 판단한다.
이 전략의 핵심 지표는 5주기, 9주기, 21주기 세 개의 EMA이다. 그것의 거래 논리는 다음과 같은 점들에 기초한다:
5주기 EMA의 상위 돌파는 9주기 EMA를 넘어서면 구매 신호를 생성한다. 5주기 EMA의 상하 돌파는 9주기 EMA를 넘어서면 판매 신호를 생성한다.
21주기 EMA는 거래 신호를 검증하는 데 사용할 수 있습니다. 즉, 5주기 EMA와 9주기 EMA가 21주기 EMA보다 높으면 구매 신호가 더 효과적입니다. 둘 다 21주기 EMA보다 낮으면 판매 신호가 더 효과적입니다.
100주기 EMA와 200주기 EMA는 시장의 중·장기 경향을 판단하는 데 사용됩니다. 그들은 단기 거래 신호에 큰 경향에 대한 검증 또는 경고를 제공합니다.
이 전략에는 다음과 같은 장점이 있습니다.
조작이 간단하고 실행이 쉽죠. EMA의 계산과 교차 상황을 판단하는 것은 매우 간단합니다.
시장 반응에 민감하다. 5주기 및 9주기 EMA는 가격 변화에 매우 민감하며, 단기 경향을 빠르게 포착할 수 있다.
손해 차단기를 쉽게 설정할 수 있다. EMA 자체는 모바일 손해 차단기로 사용될 수 있다.
확장성이 좋다. 다른 주기적 EMA 또는 기술 지표를 쉽게 도입하여 시스템을 풍요롭게 할 수 있다.
이 전략에는 다음과 같은 주요 위험도 있습니다.
가짜 신호 위험. EMA 교차는 100% 신뢰성이 없으며, 가짜 돌파구가 발생할 수 있습니다. 다른 요소와 함께 신중하게 판단해야합니다.
트렌드 반전의 위험. 빠른 EMA 교차는 단기 조정만을 반영하여 큰 트렌드 반전을 무시할 수 있습니다. 중기 및 장기 EMA를 참조하십시오.
파라미터 튜닝 위험. 다양한 품종과 시장 조건에 따라 파라미터 설정이 크게 다를 수 있으므로 충분히 최적화 및 테스트가 필요합니다.
이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
KD, MACD 등과 같은 다른 지표 필터 신호를 도입하여 거짓 신호의 가능성을 줄인다.
트레일링 스톱 (trailing stop) 또는 트레일링 스톱 (trailing stop) 은 트레일링 스톱을 사용하여 수익을 고정하는 방식이다.
매개 변수를 최적화하여 최적의 주기 매개 변수 조합을 찾는다. 또한 기계 학습 방법을 사용하여 동적으로 최적화한다.
수량화 프레임워크와 결합하여 전체 거래 프로세스를 자동화하십시오.
이 평선 교차 전략의 전체적인 아이디어는 명확하고, 조작이 용이하며, 단기 동향을 효과적으로 포착할 수 있다. 그러나 단지 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.)