EMA 더블 이동 평균 교차 전략

EMA MA
생성 날짜: 2024-06-07 15:58:15 마지막으로 수정됨: 2024-06-07 15:58:15
복사: 0 클릭수: 695
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

EMA 더블 이동 평균 교차 전략

개요

이 전략은 두 개의 지수 이동 평균 ((EMA) 을 사용하여 가격 추세의 변화를 포착합니다. 단기 EMA가 아래쪽에서 장기 EMA를 통과하면 구매 신호를 생성합니다. 단기 EMA가 위쪽에서 장기 EMA를 통과하면 판매 신호를 생성합니다. 이 전략은 일일 손실과 수익을 제어하기 위해 일일 중지 및 중지 제한을 동시에 설정합니다.

전략 원칙

  1. 단기 EMA (기본주기는 9) 와 장기 EMA (기본주기는 21) 를 계산한다.
  2. 단기 EMA가 상향으로 장기 EMA를 가로질렀을 때, 더 많은 포지션을 열고, 단기 EMA가 상향으로 장기 EMA를 가로질렀을 때, 포지션을 열고.
  3. 각 거래일의 시작에 있는 계정 이득을 기록하고, 현재 계정 이득과 그 사이의 차이를 계산합니다. 즉, 당일 손해입니다.
  4. 당일 손실이 최대 허용 손실 (계좌 초기 자본의 0.25%) 을 초과하면 모든 포지션을 청산한다.
  5. 당일 수익이 최대 허용 수익 (계좌 초기 자본의 2%) 을 초과하면 모든 포지션을 청산한다.

전략적 이점

  1. 간단하고 이해하기 쉽다: 이 전략의 논리는 명확하고, 단지 두 개의 이동 평균을 사용하여 거래 신호를 생성할 수 있으며, 이해하기 쉽고 구현할 수 있다.
  2. 트렌드 추적: EMA 빠른 느린 선의 교차로, 가격 추세의 변화를 더 잘 포착할 수 있으며, 트렌드 시장에서 사용하기에 적합하다.
  3. 위험 제어: 매일의 중지 손실 및 중지 제한을 설정하여 일일 손실과 수익을 효과적으로 제어하고 계좌의 과도한 변동성을 방지합니다.

전략적 위험

  1. 변수 최적화: 이 전략의 성과는 EMA 주기의 선택에 크게 의존하며, 다른 변수 설정은 매우 다른 결과를 초래할 수 있습니다. 따라서, 다른 시장 환경에서 변수 최적화 및 재검토가 필요합니다.
  2. 흔들림 시장: 흔들림 시장에서 가격이 EMA에서 자주 오르락 내리락하며, 더 많은 가짜 신호를 생성할 수 있으며, 이로 인해 거래가 빈번하고 자금이 손실된다.
  3. 트렌드 회전: 시장의 트렌드가 회전할 때, 이 전략은 출입 또는 출입을 지연시켜 최적의 거래 시간을 놓칠 수 있다.

전략 최적화 방향

  1. RSI, MACD 등과 같은 다른 기술 지표를 도입하여 트렌드 강도 및 방향을 판단하여 신호의 정확성을 향상시킵니다.
  2. 수익을 더 잘 보호하고 위험을 제어하기 위해 이동 스톱 또는 동적 스톱과 같은 스톱 및 스톱 규칙을 최적화하십시오.
  3. 시장의 변동성에 따라 EMA 주기를 조정하여 다른 시장 상태에 적응하십시오.
  4. 거래 신호를 필터링하고 확인하기 위해 경제 데이터, 주요 이벤트와 같은 기초적인 분석을 결합합니다.

요약하다

EMA 쌍평평선 교차 전략은 간단하고 이해하기 쉬운 트렌드 시장에 적합한 거래 전략이다. 빠른 느린 평평선 교차를 통해 가격 트렌드의 변화를 더 잘 포착할 수 있다. 동시에, 매일의 중지 손실과 중지 설정은 위험을 효과적으로 제어할 수 있다. 그러나 이 전략은 불안한 시장이나 트렌드 전환 시 좋지 않은 성능을 발휘할 수 있으며, 다른 기술 지표 및 분석 방법과 함께 최적화 및 개선이 필요합니다.

전략 소스 코드
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DD173838

//@version=5
strategy("Moving Average Strategy with Daily Limits", overlay=true)

// Moving Average settings
shortMaLength = input.int(9, title="Short MA Length")
longMaLength = input.int(21, title="Long MA Length")

// Calculate MAs
shortMa = ta.ema(close, shortMaLength)
longMa = ta.ema(close, longMaLength)

// Plot MAs
plot(shortMa, title="9 EMA", color=color.blue)
plot(longMa, title="21 EMA", color=color.red)

// Strategy conditions
crossUp = ta.crossover(shortMa, longMa)
crossDown = ta.crossunder(shortMa, longMa)

// Debug plots to check cross conditions
plotshape(series=crossUp, title="Cross Up", location=location.belowbar, color=color.green, style=shape.labelup, text="UP")
plotshape(series=crossDown, title="Cross Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="DOWN")

// Entry at cross signals
if (crossUp)
    strategy.entry("Long", strategy.long)

if (crossDown)
    strategy.entry("Short", strategy.short)

// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
    startOfDayEquity := strategy.equity

maxDailyLoss = 50000 * 0.0025
maxDailyProfit = 50000 * 0.02
currentDailyPL = strategy.equity - startOfDayEquity

if (currentDailyPL <= -maxDailyLoss)
    strategy.close_all(comment="Max Daily Loss Reached")

if (currentDailyPL >= maxDailyProfit)
    strategy.close_all(comment="Max Daily Profit Reached")