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

멀티 EMA 트렌드 모멘텀 인식 및 스톱 로스 거래 시스템

저자:차오장, 날짜: 2024-11-25 11:09:00
태그:EMASMA

img

전반적인 설명

이 전략은 4개의 기하급수적인 이동 평균 (EMAs) 을 기반으로 하는 트렌드 추종 시스템으로, 9, 21, 50, 200기기 EMA의 교차와 정렬을 사용하여 시장 트렌드를 식별하고, 리스크 통제를 위해 비율 기반의 스톱 로스로 결합합니다. 이 전략은 4개의 이동 평균의 정렬 순서를 확인하여 시장 트렌드 방향을 결정하고, 짧은 기간 EMA가 더 긴 기간 EMA보다 높을 때 긴 포지션을 입력하고, 반대로 짧은 포지션을 수행하면서 위험 관리를 위해 고정된 비율의 스톱 로스를 구현합니다.

전략 원칙

이 전략은 시장 트렌드를 평가하기 위해 서로 다른 기간 (9, 21, 50, 200) 을 가진 네 개의 EMA를 사용합니다. 9일 EMA가 21일 EMA보다 높을 때 구매 신호가 생성되며, 이는 50일 EMA보다 높고, 이는 200일 EMA보다 높으며, 강력한 상승 추세를 나타냅니다. 반대로, 반대 정렬은 판매 신호를 생성합니다. 거래당 최대 손실을 제어하기 위해 2%의 스톱 로스를 구현합니다.

전략적 장점

  1. 여러 개의 EMA 크로스오버가 더 신뢰할 수 있는 트렌드 확인 신호를 제공하여 잘못된 파업 위험을 줄입니다.
  2. 여러 기간 EMA 정렬을 통한 트렌드 강도 평가는 시장 소음을 효과적으로 필터합니다.
  3. 일정한 비율의 스톱 로스는 명확한 리스크 관리 매개 변수를 제공합니다.
  4. 간단하고 명확한 전략 논리, 이해하기 쉽고 실행하기 쉽습니다
  5. 여러 시장과 시간 프레임에 적용 가능하며 강력한 다양성을 제공합니다.

전략 위험

  1. 다양한 시장에서 빈번한 잘못된 신호를 생성하여 연속적인 스톱 로스로 이어질 수 있습니다.
  2. 이동 평균 시스템은 본질적인 지연을 가지고 있으며 중요한 초기 트렌드 움직임을 놓칠 수 있습니다.
  3. 일정한 비율의 스톱 로스는 모든 시장 환경과 변동성 조건에 적합하지 않을 수 있습니다.
  4. 스톱 로스 설정에 대한 시장 변동성의 영향을 고려하지 않는 것
  5. 수익 목표가 없는 경우 수익 실현이 효과적이지 않을 수 있습니다.

전략 최적화 방향

  1. 시장 변동성에 기초한 동적 스톱 로스 조정을 위한 ATR 지표를 포함
  2. 입력 신호 품질을 향상시키기 위해 ADX와 같은 트렌드 강도 필터를 추가
  3. 축적된 이윤을 더 잘 보호하기 위해 후속 스톱 로스 메커니즘을 구현
  4. 부가적인 동향 확인으로 부피 지표를 포함
  5. 수익 목표 또는 후속 수익 메커니즘을 추가하는 것을 고려하십시오.
  6. 특정 시장 특성에 더 잘 맞게 EMA 기간 매개 변수를 최적화

요약

이 전략은 다양한 EMA를 통해 신뢰할 수 있는 트렌드 식별을 제공하는 종합적인 트렌드 추적 거래 시스템으로, 위험 통제를 위해 일정한 비율의 스톱 로스를 구현합니다. 이 시스템은 약간의 내재적 지연을 가지고 있지만 적절한 매개 변수 최적화 및 추가 지표 통합을 통해 더욱 향상될 수 있습니다. 이 전략은 특히 고항성 시장 및 중장기 트렌드 추적 거래에 적합합니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("4 EMA Strategy with Stop Loss", overlay=true)

// Define the EMA lengths
ema1_length = input(9, title="EMA 1 Length")
ema2_length = input(21, title="EMA 2 Length")
ema3_length = input(50, title="EMA 3 Length")
ema4_length = input(200, title="EMA 4 Length")

// Calculate the EMAs
ema1 = ta.ema(close, ema1_length)
ema2 = ta.ema(close, ema2_length)
ema3 = ta.ema(close, ema3_length)
ema4 = ta.ema(close, ema4_length)

// Plot EMAs on the chart
plot(ema1, color=color.blue, title="EMA 9")
plot(ema2, color=color.orange, title="EMA 21")
plot(ema3, color=color.green, title="EMA 50")
plot(ema4, color=color.red, title="EMA 200")

// Define conditions for Buy and Sell signals
buy_condition = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4)
sell_condition = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4)

// Input stop loss percentage
stop_loss_perc = input(2.0, title="Stop Loss %")

// Execute buy signal
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    
    // Set stop loss at a percentage below the entry price
    strategy.exit("Sell", "Buy", stop=strategy.position_avg_price * (1 - stop_loss_perc / 100))

// Execute sell signal
if (sell_condition)
    strategy.entry("Sell", strategy.short)

    // Set stop loss at a percentage above the entry price
    strategy.exit("Cover", "Sell", stop=strategy.position_avg_price * (1 + stop_loss_perc / 100))



관련

더 많은