리소스 로딩... 로딩...

RSI/MACD/ATR과 함께 강화된 EMA 크로스오버 전략

저자:차오장, 날짜: 2024-04-29 17:33:05
태그:EMARSIMACDATR

img

전반적인 설명

이 전략은 거래 신호의 신뢰성을 향상시키기 위해 상대적 강도 지수 (RSI), 이동 평균 컨버전스 디버전스 (MACD), 평균 진실 범위 (ATR) 와 함께 두 개의 기하급수적인 이동 평균 (EMA) 의 크로스오버를 주요 거래 신호로 사용합니다. 빠른 EMA가 느린 EMA를 넘을 때, RSI는 70 이하이며, MACD 라인은 신호 라인의 위에 있으며, ATR 값은 이전 기간에 비해 10% 이상 증가하면 긴 신호가 생성됩니다. 반대로 빠른 EMA가 느린 EMA를 넘을 때, RSI는 30 이상이며, MACD 라인은 신호 라인의 아래에 있으며, ATR 값은 이전 기간에 비해 10% 이상 증가하면 신호가 생성됩니다. 또한 고정 포인트 스톱 손실 및 수익을 통제하는 짧은 전략은 위험을 감수합니다.

전략 원칙

  1. 8주기 EMA와 14주기 EMA를 빠른 라인과 느린 라인으로 계산합니다.
  2. MACD를 위한 매개 변수로 12, 26, 9을 사용하여 14주기 RSI 및 MACD 지표를 계산합니다.
  3. 14주기 ATR 값을 계산합니다.
  4. 빠른 EMA가 느린 EMA를 넘어서고, RSI가 70 이하이고, MACD 라인이 신호 라인 위에 있고, ATR 값이 이전 기간에 비해 10% 이상 증가하면 긴 신호가 생성됩니다.
  5. 빠른 EMA가 느린 EMA 아래로 넘어가고, RSI가 30보다 높고, MACD 라인이 신호 라인 아래에 있고, ATR 값이 이전 기간에 비해 10% 이상 증가하면 짧은 신호가 생성됩니다.
  6. 100점의 스톱 로스를 설정하고 200점의 수익을 취합니다.
  7. 거래 신호를 기반으로 거래를 실행하고 Stop Loss 및 Take Profit 설정에 따라 출구 거래를 수행합니다.

전략적 장점

  1. 거래 신호의 신뢰성을 높이기 위해 여러 가지 기술 지표를 결합합니다.
  2. ATR을 필터링 조건으로 사용하여 시장 변동성이 증가할 때만 거래하며 낮은 변동성 범위에서 빈번한 거래를 피합니다.
  3. 일정한 지점 Stop Loss를 설정하고 수익을 취하여 위험을 효과적으로 제어합니다.
  4. 코드는 간결하고 이해하기 쉽기 때문에 이해하기 쉽고 최적화 할 수 있습니다.

전략 위험

  1. 특정 시장 조건, 예를 들어 옆 시장 또는 트렌드 반전 초기 단계에서는 전략이 더 많은 잘못된 신호를 생성 할 수 있습니다.
  2. 고정점 스톱 러스 및 영업이익은 다른 시장 변동성 상황에 적응하지 못할 수 있으며, 때로는 조기 스톱 러스 또는 지연된 영업이익으로 이어질 수 있습니다.
  3. 이 전략은 시장의 근본적인 요인을 고려하지 않으며 기술 지표에 전적으로 의존하고 있으며, 이는 경우에 따라 시장에서 분리 될 수 있습니다.

전략 최적화 방향

  1. 신호 신뢰성을 더 향상시키기 위해 볼린저 밴드, 거래량 등과 같은 더 많은 기술 지표 또는 시장 정서 지표를 도입하는 것을 고려하십시오.
  2. 시장 변화에 더 잘 적응하기 위해 동적 스톱 로스 및 스톱 로스 또는 변동성 기반 스톱 로스 및 스톱 로스 및 스톱 로프를 사용하는 것과 같은 스톱 로스 및 스톱 로프 설정을 최적화합니다.
  3. 경제 데이터와 주요 이벤트와 같은 근본 분석을 결합하여 거래 신호를 필터하고 특정 특별한 상황에서 잘못된 신호를 피합니다.
  4. 현재 시장에 가장 적합한 매개 변수 조합을 찾기 위해 EMA 기간, RSI 및 MACD 매개 변수 등을 최적화하십시오.

요약

이 전략은 EMA, RSI, MACD 및 ATR와 같은 여러 기술적 지표를 결합하여 비교적 신뢰할 수있는 거래 신호를 생성하며, 고정 포인트 스톱 로스 및 수익을 설정하여 위험을 제어합니다. 전략에는 여전히 몇 가지 단점이 있지만 더 많은 지표를 도입하고, 스톱 로스 및 수익을 최적화하고, 근본 분석을 결합하는 등의 추가 최적화로 개선 될 수 있습니다. 전반적으로 전략은 논리적으로 명확하고 이해하기 쉽고 구현하기 쉽고 초보자도 배우고 사용할 수 있습니다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Enhanced EMA Crossover Strategy", overlay=true)

// Indicators
ema_fast = ema(close, 8)
ema_slow = ema(close, 14)
rsi = rsi(close, 14)

// Correcting the MACD variable definitions
[macd_line, signal_line, _] = macd(close, 12, 26, 9)
atr_value = atr(14)

// Entry conditions with additional filters
long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1
short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1

// Adding debug information
plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal")
plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal")

// Risk management based on a fixed number of points
stop_loss_points = 100
take_profit_points = 200

// Order execution
if (long_condition)
    strategy.entry("Long", strategy.long, comment="Long Entry")
    strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points)

if (short_condition)
    strategy.entry("Short", strategy.short, comment="Short Entry")
    strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points)

// Plotting EMAs for reference
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.orange, title="Slow EMA")


관련

더 많은