EMA 강세 이동 평균 교차 전략

RSI EMA
생성 날짜: 2024-06-17 16:24:35 마지막으로 수정됨: 2024-06-17 16:24:35
복사: 2 클릭수: 718
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

EMA 강세 이동 평균 교차 전략

개요

이 전략은 3개의 서로 다른 기간의 지수 이동 평균 ((EMA) 와 상대적으로 강한 지수 ((RSI) 를 사용하여 시장의 추세와 거래 신호를 판단한다. 가격이 200일 EMA를 돌파하고 RSI가 50보다 크면 구매 신호를 발생시키고, 반대로 가격이 200일 EMA를 돌파하고 RSI가 50보다 작으면 판매 신호를 발생시킨다. 이 전략은 해상선 수준의 파도 거래에 적합하다.

전략 원칙

  1. 200일, 50일, 21일 EMA를 각각 파란색, 빨간색, 초록색으로 나타냅니다.
  2. 14주기 RSI를 계산하기
  3. 200일 EMA를 통과하고 RSI가 50보다 크면 구매 신호가 발생한다.
  4. 종결 가격 200일 EMA를 넘고 RSI가 50보다 작을 때 팔기 신호를 생성한다.
  5. 포지션 크기는 계정 순액의 1%이다.
  6. 구매 거래의 중지 위치는 200일 EMA 아래 50점이며, 중지 위치는 구매 가격 위 100점이다.
  7. 판매 거래의 중단 지점은 200 일 EMA 상위 50점이며, 중지 지점은 판매 가격 아래 100점이다.

전략적 이점

  1. 가격과 동력 지표의 조합으로 트렌드 형성 및 반전의 시기를 잡는 데 도움이 됩니다.
  2. 세 개의 다른 주기의 EMA는 단기, 중기 및 장기적인 경향을 전체적으로 반영하여 신호 주파수 및 가짜 신호를 줄일 수 있습니다.
  3. RSI는 흔들리는 시장에서의 거래 신호를 필터링하여 손실 거래를 줄일 수 있습니다.
  4. 고정된 비율의 포지션은 위험을 통제하는 데 도움이 됩니다.
  5. 단편 거래 위험을 방지하기 위해 Stop Loss Stop 를 설정하십시오.

전략적 위험

  1. 트렌드 전환점 신호 지연은 일부 수익 손실을 초래할 수 있습니다.
  2. RSI 신호는 강한 트렌드에서 너무 일찍 반향 신호를 일으킬 수 있다.
  3. 고정 비율 포지션은 큰 변동이 있는 상황에서 위험하다.
  4. 200일 평균선에서 너무 가까운 위치로 멈춰서는 자주 멈출 수 있다.

전략 최적화 방향

  1. 더 많은 중장기 평균선 조합을 도입하여 신호를 최적화하십시오.
  2. RSI의 오차와 오버 바이 오버 소드를 고려하여 신호를 조정한다.
  3. ATR 등 변동률 지표에 따라 역동적으로 위치 크기를 조정한다.
  4. 스톱 로드 위치를 최적화하여, 예를 들어, 지원 저항치, 비율 또는 ATR에 따라 설정한다.
  5. 트렌드 필터 조건을 도입하여, ADX 지표와 같이, 불안정한 시장에서 거래하는 것을 피하십시오.
  6. 다른 스탠더드 및 주기에 대해 파라미터 최적화 및 피드백 검증을 수행한다.

요약하다

이 전략은 EMA의 다중 머리 배열과 RSI의 강한 영역의 거래 신호를 통해 비교적 명확한 중기 및 장기 트렌드 상황을 포착 할 수 있습니다. 그러나 트렌드 전환 초기 및 변동 시장에서 일반적으로 수행하는 것은 전체적으로 트렌디 시장에 적합합니다. 이후에는 신호, 포지션, 스톱 손실, 필터 조건 등에서 더욱 최적화하여 전략의 안정성과 수익 위험 비율을 향상시킬 수 있습니다.

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

//@version=5
strategy("Lexi Supreme", overlay=true)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Calculate EMA 50
ema50 = ta.ema(close, 50)

// Calculate EMA 21
ema21 = ta.ema(close, 21)

// Calculate RSI
rsiValue = ta.rsi(close, 14)

// Buy condition: RSI above 50 and price crosses above EMA 200
buyCondition = ta.crossover(close, ema200) and rsiValue > 50

// Sell condition: RSI below 50 and price crosses below EMA 200
sellCondition = ta.crossunder(close, ema200) and rsiValue < 50

// Position Size (1% of account balance)
positionSize = 1

// Stop Loss and Take Profit values for buy trades
stopLossBuy = ema200 - 0.00050
takeProfitBuy = 0.00100

// Stop Loss and Take Profit values for sell trades
stopLossSell = ema200 + 0.00050
takeProfitSell = 0.00100

// Plot EMA 200 line in blue
plot(ema200, color=color.blue, title="EMA 200")

// Plot EMA 50 line in red
plot(ema50, color=color.red, title="EMA 50")

// Plot EMA 21 line in green
plot(ema21, color=color.green, title="EMA 21")

// Plot buy entry points in yellow
plotshape(series=buyCondition, title="Buy Signal", color=color.yellow, style=shape.triangleup, location=location.belowbar, size=size.small)

// Plot sell entry points in white
plotshape(series=sellCondition, title="Sell Signal", color=color.white, style=shape.triangledown, location=location.abovebar, size=size.small)

// Strategy entry and exit conditions with position size, stop loss, and take profit for buy trades
if (buyCondition)
    strategy.entry("Buy", strategy.long, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss Buy", from_entry="Buy", stop=stopLossBuy, limit=close + takeProfitBuy)

// Strategy entry and exit conditions with position size, stop loss, and take profit for sell trades
if (sellCondition)
    strategy.entry("Sell", strategy.short, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss Sell", from_entry="Sell", stop=stopLossSell, limit=close - takeProfitSell)