Momentum Enhanced Simple Moving Average와 RSI를 기반으로 한 추세 추종 전략

SMA RSI MA SL TP Trend momentum CROSSOVER
생성 날짜: 2025-02-24 10:19:03 마지막으로 수정됨: 2025-02-24 10:19:03
복사: 1 클릭수: 450
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

Momentum Enhanced Simple Moving Average와 RSI를 기반으로 한 추세 추종 전략 Momentum Enhanced Simple Moving Average와 RSI를 기반으로 한 추세 추종 전략

개요

이 전략은 간단한 이동 평균 (SMA) 과 상대적으로 약한 지표 (RSI) 를 결합한 트렌드 추적 거래 시스템입니다. 그것은 단기 및 장기 이동 평균의 교차로로 트렌드 방향을 식별하고 RSI를 사용하여 운동량을 확인하여 시장에서 높은 확률의 거래 기회를 찾습니다. 이 전략은 또한 거래의 위험을 효과적으로 제어 할 수있는 완전한 위험 관리 모듈을 포함합니다.

전략 원칙

전략의 핵심 논리는 두 가지 기술 지표를 결합해서 사용하는 데 기초합니다.

  1. 쌍평선 시스템: 8주기 및 21주기 간단한 이동 평균을 사용하여 평선을 교차하여 트렌드 변화를 식별한다. 단기평선이 장기평선을 상향으로 통과하면 다중 신호가 발생하고, 아래로 통과하면 공백 신호가 발생한다.
  2. RSI 필터: 14주기 RSI 지표를 사용하여 동력을 확인한다. RSI가 70보다 낮을 때만 더 많이 실행하고 30 이상이면 공백을 실행하여 과도하게 구매하거나 판매되는 지역에서 거래하는 것을 피한다.
  3. 위험 제어: 매 거래마다 1%의 스톱로스와 2%의 스톱 레벨이 설정되어 있으며, 이는 자금의 안전과 수익을 잠금하기 위한 것이다.

전략적 이점

  1. 지표 포트폴리오의 장점: 트렌드 추적과 동력 지표가 결합되어 시장의 전환점을 더 정확하게 식별할 수 있습니다.
  2. 리스크 관리: 내장된 스톱 및 스톱 메커니즘으로 리스크를 효과적으로 제어할 수 있다.
  3. 매개 변수 유연성: 모든 핵심 매개 변수는 다른 시장 환경에 따라 최적화 될 수 있습니다.
  4. 적용 범위: 여러 시장과 여러 시간대에 적용할 수 있다.
  5. 논리적으로 명확하고 간단하다: 전략 규칙은 명확하고 이해하기 쉽고 실행이 쉽다.

전략적 위험

  1. 흔들림 시장 위험: 가로판 흔들림 시장에서 빈번한 잘못된 신호가 발생할 수 있다.
  2. 뒤떨어진 위험: 이동 평균은 그 자체로 뒤떨어져서 수익 기회를 놓칠 수 있습니다.
  3. 변수 민감성: 전략의 유효성을 유지하기 위해 다른 시장 환경에서 변수를 조정해야 할 수 있습니다.
  4. 트렌드 의존성: 전략은 강한 트렌드 시장에서 잘 작동하지만 다른 시장 환경에서는 효과가 좋지 않을 수 있습니다.

전략 최적화 방향

  1. 시장 환경 식별 메커니즘을 도입하여 다른 시장 조건에 따라 다른 파라미터 조합을 사용합니다.
  2. 거래량 지표를 추가하여 확인 신호를 추가합니다.
  3. 손해 중지 장치의 최적화, 동적 손해 중지 프로그램을 사용하는 것을 고려할 수 있다.
  4. 트렌드 강도 필터를 추가하여, 강한 트렌드 시장에서만 거래한다.
  5. 자율적 변수 조정 메커니즘을 개발하여 전략의 적응성을 향상 시키십시오.

요약하다

이것은 구조적이고, 논리적으로 명확한 트렌드 추적 전략이다. SMA와 RSI를 결합하여 트렌드를 포착하고 과도한 거래 지역에서 거래하는 것을 피할 수 있다. 내장 된 위험 관리 메커니즘은 전략의 안정성을 보장한다. 일부 고유 한 한계가 있지만, 제안 된 최적화 방향은 전략의 성능을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2025-02-16 00:00:00
end: 2025-02-23 00:00:00
period: 6m
basePeriod: 6m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=6
strategy("WEN - SMA with RSI Strategy", overlay=true)

// Define input parameters
// SMA Inputs
shortLength = input(8, title="Short MA Length")
longLength = input(21, title="Long MA Length")

// RSI Inputs
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought")
rsiOversold = input(30, title="RSI Oversold")

// Calculate indicators
// Moving Averages
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)

// RSI
rsi = ta.rsi(close, rsiLength)

// Plot indicators
plot(shortMA, title="Short MA", color=color.blue)
plot(longMA, title="Long MA", color=color.red)
// RSI is typically plotted in a separate panel in trading platforms

// Entry conditions with RSI confirmation
smaLongCondition = ta.crossover(shortMA, longMA)
smaShortCondition = ta.crossunder(shortMA, longMA)

rsiLongCondition = rsi < rsiOverbought  // Not overbought for long entry
rsiShortCondition = rsi > rsiOversold   // Not oversold for short entry

// Combined entry conditions
longCondition = smaLongCondition and rsiLongCondition
shortCondition = smaShortCondition and rsiShortCondition

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.close("Long")
    strategy.entry("Short", strategy.short)

// Set stop loss and take profit
stopLoss = input(1, title="Stop Loss (%)") / 100
takeProfit = input(2, title="Take Profit (%)") / 100

longStopLossPrice = strategy.position_avg_price * (1 - stopLoss)
longTakeProfitPrice = strategy.position_avg_price * (1 + takeProfit)
shortStopLossPrice = strategy.position_avg_price * (1 + stopLoss)
shortTakeProfitPrice = strategy.position_avg_price * (1 - takeProfit)

strategy.exit("Take Profit / Stop Loss", from_entry="Long", stop=longStopLossPrice, limit=longTakeProfitPrice)
strategy.exit("Take Profit / Stop Loss", from_entry="Short", stop=shortStopLossPrice, limit=shortTakeProfitPrice)