
이동 평균을 가로지르는 전략은 서로 다른 주기의 이동 평균을 계산하여, 구매 및 판매 신호로 그들 사이의 교차를 이용하는 기술 분석 계열의 전략에 속한다. 이 전략은 빠른 이동 평균, 중간 이동 평균 및 느린 이동 평균의 교차를 결합하여 거래 신호 판단을 수행하고, 시장 소음을 효과적으로 필터링하고, 트렌드를 식별한다.
이 전략은 3개의 다른 주기의 이동 평균을 계산하여: 34주기 EMA, 89주기 EMA, 그리고 200주기 EMA. 전략은 먼저 이 3개의 이동 평균의 값을 계산하고, 그 다음 그림을 그리는데, 다른 주기의 이동 평균은 다른 색상과 대각선으로 그려져 명확하게 식별된다.
전략의 거래 신호는 서로 다른 이동 평균 사이의 교차에 기초하여 판단됩니다. 빠른 이동 평균이 중간 이동 평균을 상향으로 통과하면 구매 신호가 발생하며, 빠른 이동 평균이 중간 이동 평균을 하향으로 통과하면 판매 신호가 발생합니다. 이것은 보다 적극적인 거래 전략에 속합니다.
과도한 잡음을 필터링하기 위해, 전략은 느린 이동 평균을 도입하기도 한다. 빠른 이동 평균이 동시에 느린 이동 평균을 통과할 때만 진정한 구매 및 판매 신호를 유발한다. 예를 들어, 빠른 이동 평균이 동시에 중간 및 느린 이동 라인을 통과할 때만 구매 신호를 유발한다.
이동 평균 경로를 가로지르는 전략은 전형적인 기술 분석 전략이다. 이 전략은 다양한 시간 주기 이동 평균의 관계를 관찰하고, 이에 따라 시장 추세가 전환된 매매점을 판단한다. 이 전략은 동시에 빠르고 느린 이동 평균 세 개를 사용하며, 그 교차 상황을 관찰하고, 트렌드를 민감하게 포착할 수 있고, 가짜 신호를 효과적으로 필터링할 수 있다. 매개 변수를 최적화하여, 시장 환경에 유연하게 적응할 수 있다. 그러나 구체적으로 사용했을 때, 이동 평균 지연 등의 문제를 고려해야 한다.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="EMA 34, 89, 200 e cruzamento das EMA", overlay=true)
// Input options
fastMALen = input(title="Fast MA", defval=34)
midMALen = input(title="Medium MA", defval=89)
slowMALen = input(title="Slow MA", defval=200)
// Calculate values
fastMA = ema(close, fastMALen)
midMA = ema(close, midMALen)
slowMA = ema(close, slowMALen)
// Plot values
plot(series=fastMA, color=yellow,
title="Fast MA", linewidth=3, trackprice=false)
plot(series=midMA, color=red,
title="Mid MA", linewidth=4, trackprice=false)
plot(series=slowMA, color=white,
title="Slow MA", linewidth=5)
// Highlight crossovers
longCondition = crossover(ema(close, 34), ema(close, 200))
if (longCondition)
strategy.entry("COMPRA FINAL", strategy.long)
longCondition1 = crossover(ema(close, 34), ema(close, 89))
if (longCondition1)
strategy.entry("COMPRA INICIAL", strategy.long)
shortCondition = crossunder(ema(close, 34), ema(close, 200))
if (shortCondition)
strategy.entry("VENDE FINAL", strategy.short)
shortCondition1 = crossunder(ema(close, 34), ema(close, 89))
if (shortCondition1)
strategy.entry("VENDE INICIAL", strategy.short)