EMA와 ATR, RSI 필터를 기반으로 한 추세 추종 전략


생성 날짜: 2024-02-29 14:44:10 마지막으로 수정됨: 2024-02-29 14:44:10
복사: 3 클릭수: 450
1
집중하다
1224
수행원

EMA와 ATR, RSI 필터를 기반으로 한 추세 추종 전략

개요

이 전략은 EMA 평균선과 RSI, ATR 지표에 기반한 긴 선의 트렌드 추적 전략이다. 전략은 빠른 EMA를 사용하여 금색 포크 사다리 신호를 형성하고, 긴 선의 EMA와 결합하여 트렌드 방향을 판단하고, RSI와 ATR의 대조를 필터링하여 긴 선의 트렌드를 추적한다.

전략 원칙

  1. 20일 EMA와 50일 EMA) 골드 포크가 더 많이, 데드 포크가 빈
  2. 200일 EMA는 장기선 트렌드 방향을 판단하고, 트렌드 방향으로만 거래한다.
  3. RSI 낮은 지점에서는 더 많이, 높은 지점에서는 더 적게
  4. ATR은 위조를 판단하고, 가짜 돌파구를 필터링합니다.

우위 분석

  1. 트렌드를 판단하기 위해 EMA 포트폴리오를 사용한다.
  2. 긴 EMA 필터에 가입하여 역전 거래를 피하십시오.
  3. RSI 지표가 오버쇼핑 영역을 필터링하여 상위와 하위 지점을 추적하지 않습니다.
  4. ATR 지표 판단 평준화, 필터링 흔들림 평준화의 가짜 돌파구

위험 분석

  1. 긴 선의 시점에서는 상승세를 추적할 수 없는 위험이 존재합니다.
  2. EMA 지표는 정리할 때 노이즈가 발생하기 쉽고, ATR 지표 필터링이 필요합니다.
  3. RSI 및 ATR 파라미터 설정은 다른 품종에 따라 각각 테스트를 최적화해야 합니다.

최적화 방향

  1. EMA 길이의 변수는 다양한 품종에 더 적합한 조합을 찾기 위해 최적화할 수 있습니다.
  2. RSI 및 ATR 파라미터도 최적화되어 조정을 인식할 수 있습니다.
  3. 이동적 손실을 추가하고, 수익의 일부를 잠금하고, 위험을 통제하는 것을 고려할 수 있습니다.

요약하다

이 전략은 전체적으로 EMA를 중심으로 한 긴 선의 트렌드 추적 전략이며, RSI와 ATR 지표를 도입하여 트렌드 방향을 더 잘 식별하고 잡음을 필터링 할 수 있습니다. 매개 변수를 최적화하면 이 전략은 더 많은 품종에 적용 될 수 있으며, 긴 선의 낙관적인 환경에서 좋은 효과를 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Strategy with Trend Filter", overlay=true)

// Параметры EMA
shortEmaLength = input(20, title="Short EMA")
longEmaLength = input(50, title="Long EMA")
trendEmaLength = input(200, title="Trend EMA")
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
trendEma = ta.ema(close, trendEmaLength)

// Параметры RSI
rsiLength = input(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)

// Параметры ATR
atrLength = input(14, title="ATR Length")
atr = ta.atr(atrLength)

// Логика для сигналов покупки и продажи с фильтром по тренду
buySignal = ta.crossover(shortEma, longEma) and close > trendEma
sellSignal = ta.crossunder(shortEma, longEma) and close < trendEma

// Вход в сделки
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.entry("Sell", strategy.short)

// Выход из сделок на основе EMA пересечений
exitBuySignal = ta.crossunder(shortEma, longEma)
exitSellSignal = ta.crossover(shortEma, longEma)

if (exitBuySignal)
    strategy.close("Buy")

if (exitSellSignal)
    strategy.close("Sell")

// Визуализация EMA
plot(shortEma, color=color.blue, title="Short EMA")
plot(longEma, color=color.red, title="Long EMA")
plot(trendEma, color=color.green, title="Trend EMA")

// Отдельная панель для RSI и его визуализация
plot(rsi, title="RSI", color=color.purple, linewidth=2)

// Отдельная панель для ATR и его визуализация
plot(atr, title="ATR", color=color.orange, linewidth=2)