이동 평균 크로스오버 거래 전략

저자:차오장, 날짜: 2023-11-27 17:25:36
태그:

img

전반적인 설명

이동 평균 크로스오버 거래 전략은 단기 및 장기 이동 평균이 교차할 때 구매 및 판매 신호를 생성합니다. 기술 분석 기반의 거래 전략에 속합니다. 이 전략은 간단하고 자본 효율적이며 소액으로 적어 중장기 거래에 적합합니다.

전략 논리

이 전략은 20 및 50 기간 기하급수적 이동 평균 (EMA) 을 계산합니다. 20 EMA가 50 EMA를 넘을 때 긴 포지션을 트리거합니다. 20 EMA가 50 EMA를 넘을 때 짧은 포지션을 트리거합니다.

EMA는 최근 자료에 더 많은 무게를 부여합니다.

오늘 EMA = (오늘 가격 * k) + 어제 EMA * (1-k)

여기 k = 2/(기기 수 + 1)

단기 EMA가 장기 EMA를 넘을 때, 그것은 LONG로 상승하는 가격 이동을 나타냅니다. 아래로 넘을 때, 그것은 SHORT으로 하락하는 가격 전환을 나타냅니다.

장점

이 전략의 장점:

  1. 간단한 논리, 이해하기 쉽고 실행하기 쉬운
  2. 자금 요구가 적고 소액이 적다
  3. 다양한 시장에 대한 유연한 매개 변수 조정
  4. 스칼핑 또는 트렌드 트레이딩을 위한 모든 도구에 적용됩니다.

위험 과 개선

위험은 다음과 같습니다.

  1. 가격 변동 도중 빈번한 거래 신호. 필터는 도움이 될 수 있습니다.
  2. 포착되지 않기 위해 필요한 스톱 손실.
  3. 매개 변수 최적화는 더 많은 역사적 데이터를 필요로 합니다.

개선 사항:

  1. 잘못된 신호를 줄이기 위해 볼링거 밴드 같은 필터를 추가합니다.
  2. 포착되지 않도록 스톱 로스/프로프트 취득을 추가합니다.
  3. 다른 도구에 최적의 매개 변수 집합을 찾는
  4. 음량과 결합하여 신호를 확인합니다

결론

이동 평균 크로스오버 전략은 시장에 의해 입증 된 간단하면서도 효과적인 기술 전략입니다. 매개 변수 조정, 필터 추가 등으로 위험 통제 및 안정성에 대한 추가 개선이 달성 될 수 있습니다. 양적 거래의 기본 빌딩 블록으로 사용됩니다.


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brandlabng

//@version=5
//study(title="Holly Grail", overlay = true)
strategy('HG|E15m', overlay=true)
src = input(close, title='Source')

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])

ma2 = input(50, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])

price1 = if type1 == 'EMA'
    ta.ema(price, ma1)

price2 = if type2 == 'EMA'
    ta.ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)


longCondition = ta.crossover(price1, price2)
if longCondition
    strategy.entry('Long', strategy.long)

shortCondition = ta.crossunder(price1, price2)
if shortCondition
    strategy.entry('Short', strategy.short)

더 많은