#주식/투자

기술적지표 파헤치기 #2: MACD

SUNGWOO BAE
PRO

2023-02-01 · 7 MIN READ

MACD의 수식, 엑셀로 구현해보기

*2021-09-27 글


MACD란, Moving Average Convergence and Divergence의 약자로, 이동평균수렴확산지수를 뜻합니다.

이동평균선과 같은 추세지표 중 하나로,

서로 다른 기간의 두 이동평균선에 기반하여 만들어진 보조지표입니다.




MACD는 두 개의 선으로 구성되어있습니다.


1. MACD 선

두 이동평균값의 차


2. Signal 선

MACD선의 N일 평균


MACD선의 경우 이동평균값의 차를 나타내기에, 위 사진에서 확인되는 것처럼 이동평균선이 교차되는 순간에 MACD 선은 0을 가로지르게 됩니다.




두 선 뒤에 보이는 이 히스토그램은 무엇일까요?


MACD 선과 Signal 선의 차 입니다.

MACD에서는 MACD선과 Signal선의 교차를 추세 전환의 기준으로 정하기에, 그 격차의 흐름을 시각화한 것입니다.


다시 정리해보자면,


MACD = 단기이동평균값 - 장기이동평균값

Signal = MACD의 N일 평균

Histogram = MACD - Signal


가 되겠습니다.



Backtest


카카오를 대상으로, 2000년 2월부터 2021년 9월까지 MACD 만을 사용한 "Long Only" 백테스팅 결과입니다.

모든 백테스트는 리스크 관리를 따로 하지 않았으며, 조건에 따라 자산의 100%를 전부 운용했을 때의 결과입니다.

MACD 설정 값은 가장 많이 사용되는 12(단기이동평균값), 26(장기이동평균값), 9(Signal 평균 기준) 기준입니다.


1.

매수 조건: MACD선이 0 위로 올라갔을 때

매도 조건: MACD선이 0 아래로 내려갔을 때




Sharpe Ratio = 0.028

Sortino Ratio = 0.068


최근 카카오의 주가가 크게 오른 덕에 16% 수익권인 상황으로 마감되었습니다.

21년 간 16% 수익은 시장 상승률도 따라잡지 못 한 암울한 모습입니다.


2.

매수 조건: MACD 선이 Signal 선 위로 올라갔을 때

매도 조건: MACD 선이 Signal 선 아래로 내려갔을 때




Sharpe Ratio = 0.054

Sortino Ratio =0.096


거래를 더 자주하게되는 조건입니다. "26일 이동평균값"보다 "12일, 26일 이동평균값의 차의 평균"이 변동성이 더 크기 때문입니다.

1번 백테스팅 조건의 경우 MACD와 0을 기준으로 조건을 잡았는데, 이는 두 이동평균선의 교차를 조건으로 잡은 것과 같습니다.

2번 백테스팅 조건의 경우 두 이동평균값의 차이값과 그 차이값의 9일 평균의 교차가 조건이기에, 1번의 경우보다 거래가 잦을 수 밖에 없습니다.


잦은 매도조건 발생으로 MDD(최대손실폭)은 줄었지만, 그래도 21년 간 58%의 수익률은 여전히 암울합니다.


3.

매수 조건: Histogram이 직전 Histogram값 보다 클 때

매도 조건: Histogram이 직전 Histogram값 보다 작을 때




Sharpe Ratio = 0.11

Sortino Ratio = 0.228


3번의 경우 다시 MACD와 그 평균의 차이 값으로 만든 조건이기에, 거래 빈도가 훨씬 많아졌습니다.

주가가 조금만 올라도 바로 매수하는 조건식 덕에 21년 수익률은 839%지만, 노이즈 구간에서의 잦은 거래로 인해 MDD는 73.52%로 늘어난 것이 확인됩니다.


4.

매수 조건: MACD 선이 Signal 선 위로 올라갔을 때

매도 조건: Histogram이 2거래일 연속 하락했을 때




Sharpe Ratio = 0.094

Sortino Ratio = 0.202


노이즈 구간에서의 불필요한 거래를 줄이기 위해 매수 조건은 2번 조건과 동일하게,

그리고 추세전환에 비교적 신속하게 대응하는 동시에 너무 성급하지 않게 하기 위해, 매도 조건은 "Histogram이 2거래일 연속 하락했을 때" 로 설정하였습니다.

3번에 비해 거래 횟수는 300거래 가까이 줄었음에도,

승률은 약 10% 올랐으며, MDD는 20% 가까이 줄어든 모습이 확인됩니다.


그러나 아직 MDD는 50% 이상을 유지하고 있습니다. 현금 비중이 없는, 자산의 100% 운용이 얼마나 위험할 수 있는지 알려주는 듯 합니다.



EXCEL



1. MACD



MACD 선을 만들기 위해서는 두 개의 이동평균값이 필요합니다.

기간은 12일과 26일이 아닌 다른 기간으로 만드셔도 상관없으며, SMA가 아닌 다른 이동평균값(EMA,WMA 등)을 사용하셔도 됩니다.

"=AVERAGE(B2:B13)"

AVERAGE 함수를 통해 평균을 내시면 됩니다.

장기이동평균값도 동일



장기이동평균값까지 구한 다음,

단기이동평균값 - 장기이동평균값을 입력하시면 MACD 값이 완성됩니다.

"=D27-E27"



2. Signal



Signal 선은 MACD 선의 평균값이었죠?

다시 AVERAGE 함수를 사용해 MACD의 N일 평균치를 계산해주시면 됩니다.

"=AVERAGE(F27:F35)"



3. Histogram



MACD - Signal

"=F35-G35"

정말 쉽습니다.