전략에 따른 EMA의 크로스오버 트렌드

저자:차오장, 날짜: 2024-02-01 10:39:56
태그:

img

전반적인 설명

이 전략은 EMA 크로스오버에 기반한 간단한 트렌드 다음 전략이다. 그것은 서로 다른 매개 변수, 단기 EMA 라인 및 장기 EMA 라인을 사용하는. 단기 EMA 라인이 장기 EMA 라인의 위를 넘을 때, 길게 가십시오. 단기 EMA 라인이 장기 EMA 라인의 아래를 넘을 때, 포지션을 닫습니다. 위험을 관리하기 위해 스톱 로스로 수익을 취하십시오.

전략 논리

EMA 지표는 가격을 기하급수적으로 매끄럽게 하는 트렌드를 따르는 지표이다. 단기 EMA 라인은 최근 트렌드를 반영하여 가격 변화에 더 빠르게 반응한다. 장기 EMA 라인은 장기 트렌드를 반영하여 더 느리게 반응한다. 짧은 EMA가 긴 EMA를 넘을 때, 이는 최근 상승 동력이 장기 트렌드보다 강하다는 것을 나타냅니다. 반대로, 짧은 EMA가 긴 EMA를 넘을 때, 그것은 최근 하락 동력이 강하다는 것을 나타냅니다. 긴 포지션을 닫아야합니다.

이 전략은 9 기간 및 21 기간 EMA 라인을 설정합니다. 9 기간 짧은 EMA 및 21 기간 긴 EMA의 교차를 거래 신호로 사용하십시오.

  1. 9 EMA가 21 EMA를 넘을 때, 장거리
  2. 9 EMA가 21 EMA 아래로 넘어가면 Close 포지션

장점

  1. 거래 신호를 형성하기 위해 EMA 크로스오버를 사용하십시오. 과도한 거래를 피하십시오.
  2. EMA는 가격을 부드럽게 하고 트렌드 방향을 파악하는데 도움을 줍니다.
  3. 단순하고 이해하기 쉬운 논리

위험성

  1. EMA는 변동성 시장에서 지연 효과가 있으며 손실을 일으킬 수 있습니다.
  2. 단 하나의 지표에만 의존하고 잘못된 신호에 취약합니다.

위험 해결 방법:

  1. 더 빠른 응답을 위해 EMA 매개 변수를 최적화
  2. 신호 필터링을 위한 다른 표시기를 추가합니다.

최적화 방향

  1. EMA 기간을 최적화하고 가장 좋은 조합을 찾습니다
  2. 부피 또는 필터링을 위해 다른 표시기를 추가, 거짓 신호를 피
  3. 동적 스톱 로스를 추가하고 수익을 취하십시오.

요약

이 전략은 트렌드를 따르기 위해 두 EMA의 EMA 크로스오버를 활용한다. 이 전략의 장점은 간단한 논리, 중장기 트렌드를 포착하는 중장기 트레이딩 빈도이다. 그러나 EMA는 지연 효과를 가지고 있다. 필터레이션에 대한 더 많은 지표를 추가하고 동적 스톱 로스를 최적화하면 위험을 더욱 줄일 수 있다. 전반적으로, EMA 크로스오버는 중장기 트렌드를 포착하는 데 효과적이다.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Crossover Strategy", overlay=true)

// Input parameters
shortPeriod = input(9, title="Short EMA Period")
longPeriod = input(21, title="Long EMA Period")
stopLossPercent = input(1, title="Stop Loss (%)") / 100
takeProfitMultiplier = input(2, title="Take Profit Multiplier")

// Calculate EMAs
emaShort = ema(close, shortPeriod)
emaLong = ema(close, longPeriod)

// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")

// Strategy logic
strategy.entry("Buy", strategy.long, when=crossover(emaShort, emaLong))
strategy.close("Buy", when=crossunder(emaShort, emaLong))

// Risk management
atrValue = atr(14)
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * takeProfitMultiplier

strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel)


더 많은