
MACD 배급 교차 전략은 빠른 이동 평균과 느린 이동 평균의 차이를 계산하여 MACD를 형성하고 MACD의 이동 평균을 계산하여 배급 라인을 형성합니다. MACD가 배급 라인을 넘어서거나 넘어서면 거래 신호가 발생합니다. 이 전략은 쌍선 평평주의를 결합하여 주식 가격의 중기 경향의 전환점을 포착합니다.
이 전략은 먼저 빠른 이동 평균 (fastMA) 과 느린 이동 평균 (slowMA) 을 계산한다. 빠른 이동 평균의 변수는 12일이고 느린 이동 평균의 변수는 26일이다. 그리고 두 개의 이동 평균의 차이를 계산하여 MACD를 형성한다. 그리고 9일 변수를 사용하여 MACD의 이동 평균을 계산하여 배포 라인 신호를 얻는다. MACD가 배포 라인을 통과하거나 통과 할 때 거래 신호를 발산한다.
전략의 장점은 주식 가격의 중간 트렌드의 전환점을 포착하는 데 있습니다. 빠른 느린 평균선 조합은 단기 가격 변동의 잡음을 필터링하여 중간 가격 트렌드를 포착 할 수 있습니다. MACD는 주식 가격이 중간 전환이 발생하면 전달선을 뚫고 비교적 명확한 거래 신호를 생성합니다.
MACD 배포 교차 전략은 쌍평선적 사고를 결합하여, 빠른 이동 평균과 느린 이동 평균의 조합을 사용하여 단기간의 소음을 필터링하고, 주식 가격의 중·장기 트렌드 전환점만을 포착한다. 단일 가격 지표에 비해 적은 양의 가짜 신호를 생성할 수 있다.
MACD 자체는 민감하고 가격 변화의 경향을 민감하게 반영할 수 있다. 배포 라인을 추가하면 더 많은 단기 허위 신호를 필터링 할 수 있다. 중간 추세가 명확하게 변하고 MACD가 배포 라인을 상하로 돌파 할 때만 신호가 발생한다.
지속적 상승상황에서 MACD는 대부분의 시간을 배포선보다 높게 유지하며, 순차적으로 다단계 기회를 잡을 수 있다. 마찬가지로, 지속적 하락상황에서 MACD는 다단계 패러다임을 유지할 수 있으며, 적시에 공단 신호를 줄 수 있다.
전략적 매매 시점 신호는 이동 평균의 교차에 전적으로 의존하기 때문에, 시장의 변동이 큰 경우, 더 많은 가짜 신호가 생성되어, 자주 중단 손실이 발생합니다. 전략적 실제 수익은 바람직하지 않습니다.
주가가 유통선을 돌파하는 것은 중장기 트렌드를 완전히 보장하지 않습니다. 단일 기술 지표가 구매 지점 신호로 일정한 맹목성을 가지고 있기 때문에 시점을 선택하는 것은 정확하지 않을 수 있습니다.
급변하는 시장에서, 단지 쌍평준 지표의 교차로써 정해진 경계값으로, 더 많은 거래 기회를 놓칠 수 있다. 더 복잡한 강력한 상황에서는, 이 전략은 또한 명백한 지연을 낳는다.
유동성 및 변동성 필터링 지표를 증가시키고, 포지션 개시 빈도를 낮추고, 무효 거래를 피한다. 거래량을 증가시키고, 이동 평균 변수를 동적으로 조정하는 등.
다른 여러 기술 지표와 결합하여 지표 포트폴리지를 형성하여 신호 품질을 향상시킵니다. 단기 지표와 중기 및 장기 지표가 결합되면 시장 구조를 더 포괄적으로 판단 할 수 있습니다.
기계 학습 알고리즘을 추가하고, 현재의 시장 환경에 더 적합한 파라미터와 주의한계값을 훈련하고, 인간의 개입을 줄입니다.
VIX와 같은 공포 지수와 결합하여 시장의 전진과 변동성을 예측하고 MACD 기회를 더 잘 활용하기 위해 동적 조정 파라미터를 사용합니다.
MACD 배급선 교차 전략은 쌍평선 교차 원칙을 활용하여 거래 신호를 생성한다. 급속한 평선의 차치 그림으로, 주식의 중간 가격 추세 변화는 명백한 특징이 있다. 배급선의 추가도 일부 노이즈 신호를 효과적으로 필터링한다. 이 전략은 보다 명확한 중간 추세 전환을 포착할 때 어느 정도 우위를 가지고 있다. 그러나 MACD와 배급선의 교차는 시장 구조가 근본적으로 바뀌었다는 것을 완전히 결정할 수 없으며 거래 신호를 신중하게 처리해야 한다. 다른 여러 기술 지표와 함께 사용하는 것이 권장되며, 기계 학습 최적화를 추가할 수도 있다.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="MACD with Signal", shorttitle="MACD_with_Signal")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0
//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal
plot_color = hist_colorChange ? histA_IsUp ? green : histA_IsDown ? lime : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? green : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime
circleYPosition = outSignal
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=3)
plot(smd and outSignal ? outSignal : na, title="Signal", color=blue, style=line ,linewidth=1)
plot(sh and outHist ? outHist : na, title="", color=plot_color, style=columns, linewidth=4)
//plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linewidth=2, color=white)
macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
strategy.entry("BBandLE", strategy.long)
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short)