EMA 이동평균선을 기반으로 한 단기 거래 전략


생성 날짜: 2024-02-20 14:06:27 마지막으로 수정됨: 2024-02-20 14:06:27
복사: 0 클릭수: 705
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

EMA 이동평균선을 기반으로 한 단기 거래 전략

개요

이 전략은 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)