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

트래일링 수익 잠금과 함께 멀티 EMA 자동 거래 시스템

저자:차오장, 날짜: 2024-12-04 15:35:32
태그:EMAMA

img

전반적인 설명

이 전략은 여러 가지 기하급수적인 이동 평균 (EMA) 을 기반으로 한 자동화 거래 시스템으로, 5 기간, 20 기간 및 50 기간 EMA의 계층 분석을 통해 거래 신호를 설정합니다. 이 시스템의 독특한 디자인은 높은 가격, 낮은 가격 및 폐쇄 가격에 기반한 여러 EMA를 통합하여 수익을 확보하는 동시에 위험을 효과적으로 제어하기 위해 동적 스톱 로스 및 트레일 수익 메커니즘과 결합됩니다.

전략 원칙

이 전략은 여러 시간 프레임 EMA 크로스오버와 위치 관계를 기반으로 거래 결정을 합니다. 구체적으로:

  1. 5주기, 20주기 (고등, 하락 및 폐쇄 가격에 기초) 및 50주기 EMA를 사용합니다.
  2. 진입 조건은 모든 지표가 명확한 상승률을 나타낼 것을 요구합니다: 50EMA < 20EMA ((하위) < 20EMA ((접근) < 20EMA ((고위) < 5EMA)
  3. 현재 가격이 모든 EMA보다 높아야 합니다. 강한 추세를 확인합니다.
  4. 출출은 이중 메커니즘을 사용합니다. 가격이 5주기 EMA 아래로 넘어갈 때 수익을 취하거나 20주기 EMA 최저에 도달할 때 손해를 중지합니다.

전략적 장점

  1. 계층적 필터링 메커니즘은 잘못된 신호를 현저히 줄입니다.
  2. 여러 EMA 크로스오버 확인은 거래 정확성을 향상시킵니다.
  3. 동적 스톱 로스 포지션은 시장 변동에 따라 조정됩니다.
  4. 완전히 자동화된 시스템으로 감정적 간섭을 제거합니다.
  5. 후속 수익 메커니즘은 효과적으로 얻은 이익을 잠금합니다.

전략 위험

  1. 마이너스 시장에서 거래가 자주 발생할 수 있습니다.
  2. EMA는 본질적으로 뒤떨어진 지표이며 시장 시작 지점을 놓칠 수 있습니다.
  3. 여러 가지 조건으로 인해 일부 거래 기회를 놓칠 수 있습니다.
  4. 20EMA 하위점에서의 스톱 로스는 상대적으로 느려질 수 있습니다.

최적화 방향

  1. 신호 신뢰성을 향상시키기 위해 볼륨 확인 메커니즘을 추가 할 수 있습니다.
  2. 역동적인 포지션 사이즈에 변동성 지표를 포함하는 것을 고려하십시오.
  3. 부분적 위치 감축과 같은 보다 유연한 수익 취득 제도를 도입
  4. RSI와 같은 오시레이터와 결합하여 입력 시기를 최적화 할 수 있습니다.
  5. 약한 시장을 필터링하기 위해 트렌드 강도 판단을 추가하는 것을 고려하십시오.

요약

이 전략은 위계적 필터링과 동적 스톱 로스를 통해 위험을 효과적으로 제어하는 엄격하게 설계된 다중 이동 평균 거래 시스템입니다. 일부 빠른 시장 움직임을 놓칠 수 있지만 트렌딩 시장에서 일관성있게 수행합니다. 다른 시장 특성에 따라 매개 변수를 조정하고 신뢰성을 향상시키기 위해 볼륨 및 기타 보조 지표를 추가하는 것을 고려하는 것이 좋습니다. 이 전략은 중장기 투자에서 안정적인 수익을 추구하는 투자자에게 적합합니다.


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

//@version=5
strategy("Automated EMA Strategy with Hierarchical Conditions", overlay=true)

// Inputs for EMA lengths
length_5 = 5
length_20 = 20
length_50 = 50

// Calculating EMAs
ema_5 = ta.ema(close, length_5)
ema_20_high = ta.ema(high, length_20)
ema_20_low = ta.ema(low, length_20)
ema_20_close = ta.ema(close, length_20)
ema_50 = ta.ema(close, length_50)

// Buy condition: 50 EMA < 20 EMA (Close) < 20 EMA (High) < 20 EMA (Low) < 5 EMA
// and LTP above all EMAs
buy_condition = ema_50 < ema_20_low and ema_20_low < ema_20_close and ema_20_close < ema_20_high and ema_20_high < ema_5 and close > ema_5 and close > ema_20_close and close > ema_20_high and close > ema_20_low and close > ema_50

// Stop-loss and target levels
stop_loss = ema_20_low

// Target condition: Close below 5 EMA
target_condition = close < ema_5

// Check if there's an open position
is_in_position = strategy.position_size > 0

// Execute Buy Signal only if no position is open
if (buy_condition and not is_in_position)
    strategy.entry("Buy", strategy.long)

// Exit conditions: Stop-loss or target (close below 5 EMA)
if (is_in_position and (target_condition or close < stop_loss))
    strategy.close("Buy")

// Plotting the EMAs
plot(ema_5, color=color.blue, title="5 EMA")
plot(ema_20_high, color=color.green, title="20 EMA (High)")
plot(ema_20_low, color=color.red, title="20 EMA (Low)")
plot(ema_20_close, color=color.purple, title="20 EMA (Close)")
plot(ema_50, color=color.orange, title="50 EMA")


관련

더 많은