이동 평균 크로스오버 전략

저자:차오장, 날짜: 2024-02-04 16:00:31
태그:

img

전반적인 설명

이동 평균 크로스오버 전략은 일반적인 주식 거래 전략이다. 빠른 이동 평균과 느린 이동 평균을 계산하고 크로스오버 포인트를 감지하여 구매 및 판매 신호를 생성한다. 구체적으로, 빠른 이동 평균이 아래에서 느린 이동 평균을 넘을 때 구매 신호를 생성하고, 빠른 이동 평균이 위에서 느린 이동 평균을 넘을 때 판매 신호를 생성한다.

전략 논리

이 전략의 핵심 논리는: 빠른 이동 평균은 주식의 단기 트렌드를 나타내고 느린 이동 평균은 장기 트렌드를 나타냅니다. 단기 트렌드가 상승할 때 (황금 십자), 주식이 구매 구역에 들어갈 수 있음을 나타냅니다. 단기 트렌드가 하락할 때 (죽음 십자), 주식이 판매 구역에 들어갈 수 있음을 나타냅니다.

이 전략에서는 빠른 이동 평균 maFast과 느린 이동 평균 maSlow가 정의된다. maFast는 주식의 9일 단기 트렌드를 나타내는 9의 기간을 가지고 있다. maSlow는 18일 장기 트렌드를 나타내는 18의 기간을 가지고 있다. 전략은 단기 및 장기 트렌드의 변화를 결정하기 위해 그들의 교차를 감지한다. maFast가 maSlow 위에 넘어가면 구매 신호를 생성하고, maFast가 maSlow 아래에 넘어가면 판매 신호를 생성한다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 그 논리는 간단하고 이해하기 쉽고 적용하기 쉽습니다.
  2. 이동 평균은 가격 소음을 효과적으로 필터링하고 신뢰할 수있는 거래 신호를 생성 할 수 있습니다.
  3. 빠른 MAs와 느린 MAs는 단기 및 장기 트렌드를 결합하여 신호를 안정적으로 만듭니다.
  4. MA 매개 변수들은 다양한 조류에 적응하기 위해 유연하게 조정될 수 있습니다.
  5. MA 기간 매개 변수에 대한 추가 최적화는 더 나은 거래 성과를 가져올 수 있습니다.

위험 분석

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

  1. 가격 변동이 높을 때 더 많은 잘못된 신호와 과도한 거래가 발생할 수 있습니다.
  2. 부적절한 매개 변수 설정은 너무 빈번한 거래 또는 신호 지연을 유발할 수 있습니다.
  3. 빠르게 변화하는 시장과 개별 주식을 효과적으로 추적할 수 없습니다.
  4. 시간이 지연되기도 하고, 중요한 입구나 출구 지점이 빠질 수도 있습니다.

이러한 위험은 MA 매개 변수를 조정하고, 스톱 로스 전략을 설정함으로써 감소할 수 있습니다.

최적화 방향

이 전략에 대한 더 많은 최적화 공간이 있습니다:

  1. 다른 기술적 지표를 결합하여 신호를 필터링합니다. 예를 들어 거래량, STOCH.
  2. 주요 트렌드를 놓치지 않도록 트렌드 결정 메커니즘을 추가합니다.
  3. 가장 좋은 조합을 찾기 위해 MA 매개 변수를 최적화하세요.
  4. 단일 거래 손실을 통제하기 위해 손해를 막는 전략을 설정합니다.
  5. 가격 변동을 예측하기 위해 딥러닝 모델을 포함합니다.

결론

결론적으로, 이동 평균 크로스오버 전략은 매우 고전적이고 실용적인 전략이다. 그것은 간단한 논리와 실제 거래에서 광범위한 응용을 가지고 있다. 매개 변수 조정 및 다른 기술적 지표를 결합함으로써 더 나은 위험 보상 비율을 달성하기 위해 더 향상될 수 있다. 일반적으로, 그것은 양적 거래의 중요한 초석이며 심층 연구와 응용을 받아야 한다.


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

//@version=3
strategy(title="Moving Average Cross", overlay=true, initial_capital=10000, currency='USD')



// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 9, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 18, title = "Slow MA Period", minval = 1)


// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)



// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)



// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)



// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong)
strategy.entry(id="Short Entry", long=false, when=exitLong)


// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)

더 많은