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

EMA 상승적 크로스오버 전략

저자:차오장, 날짜: 2024-06-17 16:24:35
태그:RSIEMA

img

전반적인 설명

이 전략은 시장 트렌드와 거래 신호를 결정하기 위해 서로 다른 기간과 상대적 강도 지수 (RSI) 를 가진 세 개의 기하급수적인 이동 평균 (EMA) 을 사용합니다. 가격은 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. 스톱 로스를 설정하고 이윤을 취하면 단일 거래 위험으로부터 보호됩니다.

전략 위험

  1. 트렌드 전환점에 신호 지연은 부분적인 수익 손실로 이어질 수 있습니다.
  2. RSI 신호는 강한 트렌드에서 조기 반전 신호를 생성 할 수 있습니다.
  3. 고정된 비율의 포지션 사이징은 매우 변동적인 시장에서 더 위험 할 수 있습니다.
  4. 200일 EMA에 너무 가까이 있는 스톱 로즈 레벨은 빈번한 스톱 아웃을 초래할 수 있습니다.

전략 최적화 방향

  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)


관련

더 많은