이동 평균 크로스오버 전략은 일반적인 주식 거래 전략이다. 빠른 이동 평균과 느린 이동 평균을 계산하고 크로스오버 포인트를 감지하여 구매 및 판매 신호를 생성한다. 구체적으로, 빠른 이동 평균이 아래에서 느린 이동 평균을 넘을 때 구매 신호를 생성하고, 빠른 이동 평균이 위에서 느린 이동 평균을 넘을 때 판매 신호를 생성한다.
이 전략의 핵심 논리는: 빠른 이동 평균은 주식의 단기 트렌드를 나타내고 느린 이동 평균은 장기 트렌드를 나타냅니다. 단기 트렌드가 상승할 때 (황금 십자), 주식이 구매 구역에 들어갈 수 있음을 나타냅니다. 단기 트렌드가 하락할 때 (죽음 십자), 주식이 판매 구역에 들어갈 수 있음을 나타냅니다.
이 전략에서는 빠른 이동 평균 maFast과 느린 이동 평균 maSlow가 정의된다. maFast는 주식의 9일 단기 트렌드를 나타내는 9의 기간을 가지고 있다. maSlow는 18일 장기 트렌드를 나타내는 18의 기간을 가지고 있다. 전략은 단기 및 장기 트렌드의 변화를 결정하기 위해 그들의 교차를 감지한다. maFast가 maSlow 위에 넘어가면 구매 신호를 생성하고, maFast가 maSlow 아래에 넘어가면 판매 신호를 생성한다.
이 전략의 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험은 MA 매개 변수를 조정하고, 스톱 로스 전략을 설정함으로써 감소할 수 있습니다.
이 전략에 대한 더 많은 최적화 공간이 있습니다:
결론적으로, 이동 평균 크로스오버 전략은 매우 고전적이고 실용적인 전략이다. 그것은 간단한 논리와 실제 거래에서 광범위한 응용을 가지고 있다. 매개 변수 조정 및 다른 기술적 지표를 결합함으로써 더 나은 위험 보상 비율을 달성하기 위해 더 향상될 수 있다. 일반적으로, 그것은 양적 거래의 중요한 초석이며 심층 연구와 응용을 받아야 한다.
/*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)