EMA와 SMA 교차에 기반한 전략을 따르는 경향

저자:차오장, 날짜: 2024-01-17 15:42:22
태그:

img

전반적인 설명

EMA와 SMA 크로스오버에 기반한 트렌드를 따르는 전략은 지수적 이동 평균 (EMA) 과 간단한 이동 평균 (SMA) 의 크로스오버에 기반한 트렌드를 따르는 거래 전략이다. 이 전략은 단기 EMA가 장기 SMA를 넘을 때를 포착함으로써 잠재적 인 구매 및 판매 신호를 식별하는 것을 목표로합니다.

전략 논리

이 전략은 두 가지 조건에 따라 거래 신호를 생성합니다.

  1. 최근 5주기 EMA가 최근 20주기 SMA를 넘었습니다.
  2. 4시간 시간 프레임에서, 최신 5페이지 EMA는 최신 20페이지 SMA를 넘었습니다.

두 조건이 모두 사실일 때 구매 신호가 생성됩니다. 두 조건이 모두 거짓일 때 판매 신호가 생성됩니다.

이 전략은 EMA와 SMA의 크로스오버를 서로 다른 시간 프레임에 걸쳐 비교함으로써 트렌드 방향을 종합적으로 판단하고 거래 신호를 생성합니다. 단기 EMA는 가격 변화를 더 민감하게 반영하는 반면 장기적인 SMA는 더 나은 트렌드 필터링 능력을 가지고 있습니다. 단기 EMA가 장기적인 SMA 위에 넘으면 약간의 트렌드 반전을 나타내고 구매 신호를 생성합니다. 반대로 단기 EMA가 장기적인 SMA 아래에 넘으면 트렌드 반전을 나타내고 판매 신호를 생성합니다.

4시간 EMA와 SMA의 크로스오버를 추가하면 단기 잡음이 제거되고 거래 신호가 더 신뢰할 수 있습니다.

전략 의 장점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단하고 이해하기 쉽다
  2. 신속한 반응, 트렌드 반전을 적시에 파악
  3. 여러 시간 프레임을 통합하여 소음 필터링

전략 의 위험

이 전략에는 몇 가지 위험도 있습니다.

  1. 거짓 신호가 발생하기 쉽기 때문에 신호를 신중하게 검증해야 합니다.
  2. 트렌드 없는 시장에 잘 대처하지 못합니다.
  3. EMA와 SMA 매개 변수는 신중하게 선택되어야 합니다.

위험은 스톱 로스/프로피트 취득, 매개 변수 최적화 등을 통해 관리될 수 있습니다.

개선 영역

이 전략을 강화하는 몇 가지 방법:

  1. 더 많은 EMA와 SMA 매개 변수 조합을 테스트합니다.
  2. 신호 검증을 위한 다른 지표를 추가합니다. 예를 들어 MACD, 볼링거 밴드
  3. 동적 스톱 손실 메커니즘을 구축
  4. 거래량별 필터링

결론

요약하자면, 이것은 간단한 EMA와 SMA 교차 규칙을 사용하여 전략을 따르는 기본 추세입니다. 더 잘 적응하고 전략 성능을 향상시키기 위해 매개 변수 최적화, 신호 필터링 등을 통해 개선 될 수 있습니다.


/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA and SMA Crossover Strategy", shorttitle="Shashank Cross", overlay=true)

// Condition 1: Latest EMA (Close, 5) crossed above Latest SMA (Close, 20)
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)

condition1 = ta.crossover(ema5, sma20)

// Condition 2: [0] 4-hour EMA ([0] 4-hour Close, 5) crossed above [0] 4-hour SMA ([0] 4-hour Close, 20)
ema5_4h = request.security(syminfo.tickerid, "240", ta.ema(close, 5))
sma20_4h = request.security(syminfo.tickerid, "240", ta.sma(close, 20))

condition2 = ta.crossover(ema5_4h, sma20_4h)

// Combine both conditions for a buy signal
buy_signal = condition1 and condition2

// Plotting signals on the chart
plotshape(buy_signal, color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, text="Buy Signal")

// Strategy logic
if (buy_signal)
    strategy.entry("Buy", strategy.long)

// Exit long position on the next bar at market price
if (ta.barssince(buy_signal) == 1)
    strategy.close("Exit")

// You can add more code for stop-loss, take-profit, etc., as per your strategy.


더 많은