EMA를 기반으로 한 단기 거래 전략

저자:차오장, 날짜: 2024-02-20 14:06:27
태그:

img

전반적인 설명

이 전략은 EMA 라인의 크로스오버 원칙을 가지고 설계되어 가격이 어느 정도 떨어지면 적절한 단기 거래를하고 적당한 이익을 얻습니다.

전략 논리

이 전략은 다른 매개 변수와 함께 5 개의 EMA 라인을 채택하고, 특히 10 일, 20 일, 50 일, 75 일 및 200 일 라인을 채택합니다. 거래 신호를 생성하는 논리는 다음과 같습니다.

  1. 가격이 75일 라인을 넘어서 50일 라인을 넘어지면, 짧은 포지션을 취하기 위한 적절한 단기 인하 신호로 간주됩니다.

  2. 가볍게 하락한 후, 10일 라인이 20일 라인 아래로 넘어가면, 가벼운 포지션을 계속 유지합니다. 10일 라인이 20일 라인 위로 다시 넘어가면, 이 단기 거래 라운드를 완료하기 위해 포지션을 닫습니다.

이 논리 디자인을 통해, 단기간에 큰 가격 변동은 인기를 얻을 수 있습니다.

장점

이 전략의 가장 큰 장점은 간단하고 명확하고 구현하기 쉬운 신호입니다. 여러 이동 평균의 교차 상황만으로 복잡한 모델과 역사 데이터의 부하 없이 거래 결정을 원활하게 할 수 있으며 구현의 어려움을 줄일 수 있습니다.

또한, 여러 EMA 라인의 조합 사용은 시장 소음을 효과적으로 필터링하고 합리적인 거래 결정을 내리기 위해 중·단기 트렌드 반전의 시기를 정확하게 파악하는 데 도움이됩니다.

위험성

이 전략의 주요 위험은 단기간에 폭력적인 가격 변동에서 비롯됩니다. 통제되지 않은 급격한 상승 또는 하락은 스톱 로스 또는 수익 라인을 깨고 큰 손실을 초래할 수 있습니다. 또한 부적절한 매개 변수는 전략 수익성을 약화시키는 과도한 거래 신호로 이어질 수 있습니다.

위험을 통제하기 위해, 이동 평균의 매개 변수는 적절한 수준에서 신호 주파수를 유지하기 위해 적절하게 조정되어야 한다. 또한 거래당 과대 손실을 피하기 위해 합리적인 스톱 로스 및 영업 범위가 설정되어야 한다. 특수 시장 조건에 직면하고 전략 거래를 중단하는 경우에도 수동 개입이 필요합니다.

최적화

주요 최적화 공간은 매개 변수 조정에 있습니다. 최적의 매개 변수 포트폴리오를 찾기 위해 더 많은 조합을 테스트 할 수 있습니다. 예를 들어, 더 풍부한 신호 소스를 형성하기 위해 60 일 및 120 일 선과 같은 더 많은 이동 평균을 도입 할 수 있습니다.

최적화는 또한 스톱 로스 및 트레이프 리프트와 같은 측면을 중심으로 수행 할 수 있습니다. 스톱 로스 범위를 적절하게 느슨하게하면 잘못된 스톱의 확률이 감소 할 수 있습니다. 스톱 로스 리프트 범위를 강화하면 수익성이 증가 할 수 있습니다. 이러한 매개 변수 조정은 최적의 백테스트 결과를 기반으로해야합니다.

결론

결론적으로, 이 전략은 전반적으로 상당히 간단하다. 기본 EMA 크로스오버 신호를 사용하여 설계되어, 실행 가능한 단기 거래 전술로 형성된다. 이의 장점은 수행하기 쉬운 명확한 신호에 있으며, 중·단기 트렌드 역전에서 효과적으로 거래 기회를 잡을 수 있다. 파라미터 조정 및 스톱 로스, 수익 설정 최적화를 통해 추가 개선이 가능하다.


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

// © theswissguy

//@version=5
strategy("Jan 2024 Daily (Short)", initial_capital = 10000, overlay=true, commission_value = 1)

// use closing prices as data source throughout calcs.
ema_source = close
price = close

// set up the EMA curves.
ema10 = ta.ema(ema_source, 10)
ema20 = ta.ema(ema_source, 20)
ema50 = ta.ema(ema_source, 50)
ema75 = ta.ema(ema_source, 75)
ema200 = ta.ema(ta.ema(ema_source, 200), 35)

plot(ema10, color=color.red, title="EMA10")
plot(ema20, color=color.orange, title="EMA20")
plot(ema50, color=color.green, title="EMA50")
plot(ema75, color=color.yellow, title="EMA75")
plot(ema200, color=color.blue, title="EMA200", linewidth = 4)

// if EMA50 <= price <= EMA75 AND EMA10 < EMA20 - sell
dailySellIndicator = ta.crossover(price, ema75) and ta.crossunder(price, ema50) and ta.crossunder(ema10, ema20) 
dailyBuyIndicator = ta.crossover(ema10, ema20)

if(dailySellIndicator)
    strategy.entry("daily", strategy.short)
else if(dailyBuyIndicator)
    strategy.entry("daily", strategy.long)



더 많은