MACD 양적 거래 전략 사용


생성 날짜: 2023-12-19 15:11:57 마지막으로 수정됨: 2023-12-19 15:11:57
복사: 1 클릭수: 794
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

MACD 양적 거래 전략 사용

개요

이 전략은 MACD 지표를 사용하여 긴 라인 거래 신호를 구축하고 MACD 지표가 특정 수준보다 낮을 때 더 많이하고 역전 거래 기회를 활용하여 수익을 얻습니다.

전략 원칙

MACD 지표선이 SIGNAL 신호선보다 낮고 MACD 절대값이 -0.00025보다 낮을 때 다중 신호가 발생한다. 다중 후, MACD 라인이 SIGNAL 라인을 다시 통과하면 평점이다.

이 전략은 MACD 지표를 이용하여 과매매 범위를 탐지하고, 평균선 이론에 따라, 주가 가격이 단기간에 역전될 확률이 존재하며, 이 확률에 따라 다중 신호를 구축한다.

전략적 이점

  1. MACD 지표를 사용하여 과매매 범위를 판단하는 것은 어느 정도 신뢰성이 있다.
  2. 간단한 거래 신호와 규칙, 쉽게 실행할 수 있습니다.
  3. 긴 줄 지분을 보유, 거래 빈도가 낮아 거래 비용과 슬라이드 손실을 줄여줍니다.

전략적 위험

  1. 역전 실패 위험. 역전하지 않으면 손실이 발생한다.
  2. 매크드 (MACD) 변수가 잘못 설정되면 오류 신호가 발생한다.

이 위험은 최적화 매개 변수를 사용하여 줄일 수 있습니다.

전략 최적화

  1. MACD 변수를 최적화하여 최적의 변수 조합을 찾습니다.
  2. 다양한 포지션 기간을 테스트하여 최적의 포지션 기간을 찾습니다.
  3. 손해 방지 장치를 추가하십시오.

요약하다

이 전략은 MACD 지표를 이용하여 오버소드 영역이 형성되는 역전 확률을 구축하여 여러 신호를 만들어 긴 라인 포지션 방식을 통해 이익을 얻습니다. MACD 매개 변수를 최적화하고 손실을 막는 메커니즘을 신뢰성을 증가시킵니다. 전반적으로, 비교적 간단한 지표와 규칙을 사용하여 이해하기 쉽고 실행할 수 있는 정량화 전략을 구축합니다.

전략 소스 코드
//@version=3
strategy(title="MACD - EURUSD", shorttitle="MACD EURUSD")

// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

longCond = crossover(macd, signal) and macd < -0.00025
exitLong = crossover(macd, hist)


strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)