이동 평균 교차 거래 전략


생성 날짜: 2024-02-04 16:00:31 마지막으로 수정됨: 2024-02-04 16:00:31
복사: 0 클릭수: 706
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동 평균 교차 거래 전략

개요

이동 평균 횡단 전략은 비교적 흔한 주식 거래 전략이다. 이 전략은 빠른 이동 평균과 느린 이동 평균을 계산하여 그들이 횡단 할 때 구매 및 판매 신호를 생성한다. 구체적으로, 빠른 이동 평균이 아래에서 느린 이동 평균을 통과 할 때 구매 신호를 생성하고, 빠른 이동 평균이 위에서 아래에서 느린 이동 평균을 통과 할 때 판매 신호를 생성한다.

전략 원칙

이 전략의 핵심 논리는: 빠른 이동 평균은 주식의 단기 트렌드를 나타내고, 느린 이동 평균은 주식의 장기 트렌드를 나타냅니다. 단기 트렌드가 상승 (Gold Fork) 으로 바뀌면 주식이 구매 영역에 들어간다는 것을 나타냅니다.

구체적으로, 이 전략은 빠른 이동 평균 maFast과 느린 이동 평균 maSlow을 정의한다. maFast의 길이는 9로 주식의 9일 단기 트렌드를 나타내고, maSlow의 길이는 18로 주식의 18일 장기 트렌드를 나타낸다. 전략은 두 개의 이동 평균의 교차 상황을 계산하여 단기 및 장기 트렌드의 변화를 판단한다.

우위 분석

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

  1. 이 원칙은 단순하고 이해하기 쉽고 실행이 쉽다.
  2. 이동 평균은 주식 가격의 잡음을 효과적으로 차단하여 신뢰할 수 있는 거래 신호를 생성한다.
  3. 빠르게 움직이는 평균은 단기 및 장기적인 추세와 결합되어 거래 신호가 안정적입니다.
  4. 다양한 주식의 특성에 맞게 이동 평균 변수를 유연하게 조정할 수 있다.
  5. 이동 평균 주기 변수를 최적화하여 더 나은 거래 효과를 얻을 수 있습니다.

위험 분석

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

  1. 주식 가격의 변동이 큰 경우, 더 많은 잘못된 신호와 과도한 거래가 발생한다.
  2. 매개 변수 설정이 잘못되면 거래 빈도가 너무 높거나 신호가 지연될 수 있다.
  3. 빠르게 변화하는 시장과 주식을 효과적으로 추적할 수 없습니다.
  4. 이 경우, 해당 거래소에서 거래가 진행되는 기간이 늦어져서 중요한 거래점을 놓칠 수 있습니다.

이동 평균 매개 변수를 조정하고, 스톱 로즈 전략을 설정하는 등의 방법으로 위와 같은 위험을 줄일 수 있다.

최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 거래량, STOCH 등과 같은 다른 기술 지표 필터 신호와 결합.
  2. 트렌드를 판단하는 메커니즘을 추가하여 주요 트렌드를 놓치지 않도록하십시오.
  3. 이동 평균 변수를 최적화하여 최적의 변수 조합을 찾습니다.
  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)