MACD 크로스오버 거래 전략

저자:차오장, 날짜: 2024-01-05 15:32:06
태그:

img

전반적인 설명

MACD 크로스오버 트레이딩 전략은 트렌드를 따르는 전략이다. 빠른 이동 평균 라인과 느린 이동 평균 라인의 크로스오버를 구매 및 판매 신호로 사용합니다. 빠른 이동 평균 라인이 느린 이동 평균 라인을 넘을 때 구매 신호가 생성됩니다. 빠른 이동 평균 라인이 느린 이동 평균 라인을 넘을 때 판매 신호가 생성됩니다.

전략 원칙

이 전략은 MACD 지표에 기반을 두고 있다. MACD 지표는 다른 매개 변수를 가진 두 이동 평균 라인의 차이이며, 가격의 추진력의 변화를 반영한다. 구체적으로, 그것은 빠른 이동 평균 라인과 MACD 바라고 불리는 느린 이동 평균 라인 (전면 매개 변수 12일 라인) 과 차기 이동 평균 라인 (전면 매개 변수 26일 라인) 의 차이이다. 오스실레이션을 제거하기 위해 MACD 지표는 또한 DEA 라인 또는 신호 라인을 도입하며, 일반적으로 MACD의 9일 가중화 이동 평균이다.

MACD 바가 DEA 라인을 밑에서 위로 뚫고 긍정적인 영역으로 들어가면, 단기 평균 라인이 장기 평균 라인의 위를 넘어서고, 가격 트렌드가 상향으로 전환되고 구매 신호가 생성된다는 것을 나타냅니다. MACD 바가 DEA 라인을 통해 위에서 아래로 떨어지고 부정적인 영역으로 들어가면, 단기 평균 라인이 장기 평균 라인의 아래를 넘어서고 가격 트렌드가 하향으로 전환하여 판매 신호를 생성한다는 것을 나타냅니다.

이 전략은 MACD 바와 DEA 라인의 크로스오버를 사용하여 구매 및 판매 시기를 결정합니다. MACD 바가 DEA 라인의 위를 넘을 때 구매하고 MACD 바가 DEA 라인의 아래를 넘을 때 판매합니다.

이점 분석

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

  1. 트렌드를 추적하고 가격 변화를 적시에 파악할 수 있는 능력
  2. 간단하고 이해하기 쉽고 실행하기 쉽습니다.
  3. 비교적 고정된 매개 변수, 자주 조정되지 않는 매개 변수
  4. 서로 다른 기간에 적용됩니다.

위험 분석

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

  1. 여러 가지 잘못된 신호나 부적절한 시장을 생성할 수 있습니다.
  2. 약간의 지연이 있고 가격 변화의 가장 좋은 시기를 놓칠 수 있습니다.
  3. 매개 변수는 쉽게 과잉 최적화되고 실제 결과는 열악한 것일 수 있습니다.

위험을 줄이기 위해 매개 변수를 조정하거나 볼륨 및 변동성 지표와 같은 다른 지표와 결합 할 수 있습니다. 또한 적절한 스톱 로스 및 수익 전략도 중요합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 패러미터 최적화는 과도한 최적화를 피하는 동시에 최적화된 패러미터를 찾는 것입니다.

  2. 다른 지표와 결합하여 더 강력한 조합 전략을 형성합니다.

  3. 적절한 스톱 로스를 설정하고 수익을 취하기 위해 위험을 효과적으로 제어합니다.

  4. 실제 조건에 따라 다른 시장과 시간 프레임에 이 전략을 적용하기 위한 적응 최적화.

결론

MACD 크로스오버 트레이딩 전략은 가격 트렌드를 따라 저렴한 비용으로 트렌드 변화를 포착합니다. 간단하고 실용적이며 쉽게 구현 할 수 있으므로 초보자에게 적합한 시작 전략입니다. 그러나이 전략에는 몇 가지 결함이 있습니다. 지속적으로 최적화하고 개선함으로써이 전략의 실제 효과는 더 좋을 수 있습니다. 추천 할 가치가 있습니다.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2011, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350

f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
    delta > delta[1] ? lime : green
else 
    delta < delta[1] ? maroon : red

plot(delta, color=plotColor, style=columns)

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은