News & Events
기술적 분석 – 성능시험 (3)
MACD 기술적 분석 전략의 성능시험
MACD 기술적 분석은 단기 이동평균선과 장기 이동평균선의 수렴과 확산의 성질을 이용한 매매기법으로 1979년 Gerald Appel이 개발한 것으로 알려져 있다. 그는 단기 이동평균선과 장기 이동평균선이 멀어졌다가 (확산 : Divergence) 다시 가까워지는 (수렴 : Convergence) 성질에 착안하여 매매신호를 고안하였다. 따라서 MACD 기술적 분석을 이동평균의 수렴과 확산에 따른 기술적 매매라 한다.
1. 지수이동평균선 (Exponential Moving Average : EMA)의 성질
이전 포스트에서 사용한 단순이동평균선은 후행성이 강해서 주가의 추세를 뒤늦게 반영한다는 단점이 있었다. MACD는 후행성의 단점을 개선하기 위해 지수이동평균을 사용하며, 지수이동평균의 계산 방법은 아래와 같다.
* EMA(0) = 0시점의 주가
EMA(1) = 1시점의 주가 * K + EMA(0) * (1-K)
EMA(2) = 2시점의 주가 * K + EMA(1) * (1-K)
EMA(n) = n시점의 주가 * K + EMA(n-1) * (1-K), 단, K = 2/(이동평균기간 + 1)
위 그림에 동일 기간의, 단순이동평균선 (SMA)과 지수이동평균선 (EMA)을 같이 그려 보았다. 단순이동평균선이 지수이동평균선에 비해 더 완만한 모습을 보이고 있다. 이것은 지수이동평균이 주가의 추세를 더 빨리 반영한다는 것을 의미한다. 이런 결과가 나온 이유는 지수이동평균을 계산할 때 과거보다 현재 주가의 비중을 더 높게 반영하기 때문이다. 지수이동평균의 사용으로 MACD 기술적 분석은 단순이동평균에 비해 매매신호가 빨라질 것으로 기대된다.
2. MACD 와 Signal (Moving Average Convergence and Divergence, Signal)
MACD 기술적 분석에서는 MACD선과 시그널선 그리고 MACD 오실레이터를 사용한다. MACD선은 단기 EMA와 장기 EMA의 차로 정의하고, 통상적으로 단기 EMA는 12일 지수이동평균을 사용하고, 장기 EMA는 26일 지수이동평균을 사용한다 (MACD = EMA(12) – EMA(26)). 단기 EMA와 장기 EMA가 서로 멀어지면 (확산) 그 차가 커지기 때문에 MACD는 상승하게 된다. 반면에 두 EMA가 서로 가까워지면 (수렴) 그 차가 작아져서 MACD는 하락하게 된다. 아래 그림과 같이 MACD가 상승과 하락을 반복하고 있다.
시스널선은 MACD의 지수이동평균으로 정의하고, 보통의 경우 MACD의 9일 지수이동평균으로 한다. 위의 그림과 같이 MACD와 시그널선을 이용하여 매매신호를 만들어내는데, MACD선이 시그널선을 아래에서 위로 올라가면 매수신호로 해석하고, 반대로 위에서 아래로 내려오면 매도신호로 해석한다. 이 상황을 보기 좋게 만든 것이 MACD 오실레이터이다. MACD 오실레이터는 (MACD – 시그널)로 정의한다. 그러면 오실레이터가 음수 (-)에서 0 위로 올라가면 매수신호가 되고 반대의 경우에는 매도신호가 된다.
3. MACD 기술적 분석의 매매 전략
MACD 기술적 분석에서는 아래와 같이 3가지 형태의 전략을 생각해 볼 수 있다.
가. 교차 전략 (Crossovers)
이 전략은 위에서 언급한 대로 MACD 오실레이터를 이용하여 매수와 매도신호를 포착하는 전략이다. 이 포스트에서도 이 전략을 사용하여 시뮬레이션을 하였다.
나. 과매수 과매도 전략 (Overbought / Oversold Conditions)
MACD 지표는 과매수, 과매도를 평가하는데도 유용하게 쓰인다. 단기 이동평균이 장기 이동평균에서 갑자기 멀어지면, 즉 MACD선이 급하게 상승하면, 주가가 단기간에 급등한 것이 되고, 곧 이전 상태로 복귀할 가능성이 있는 것으로 해석한다 (과매수 상태로 해석). 반대의 경우에는 과매도 상태로 해석한다. 그러나 이 전략은 종목마다 각각의 특징이 있으므로 이를 고려해야 한다.
다. 확산 전략 (Divergences)
MACD가 주가 차트에서 멀어지면 (확산되면) 주가의 현재 추세가 곧 끝날 것으로 해석한다. MACD가 신저점을 형성하면 현재 하락추세인 주가가 거의 바닥에 온 것으로 예상하고, MACD가 신고점을 형성하면 현재 상승추세인 주가가 곧 상승을 멈출 것으로 예상한다.
4. 몬테카를로 시뮬레이션
위의 논리대로 매매를 했을 때 수익이 날 수 있는지 확인해 보자. 확인 방법은 컴퓨터로 가상의 주가차트를 생성하여, MACD 오실레이터 신호로 매매하여 수익률을 확인하는 방법으로 하고, 가상의 주가차트는 금융공학에서 사용하는 기하브라운운동에 의한 주가모형을 이용한 몬테카를로 시뮬레이션 기법을 이용한다.
아래 그림은 엑셀에서 몬테카를로 시뮬레이션으로 주가 데이터를 생성하여, MACD 오실레이터의 신호가 발생할 때 마다 자동으로 매매하여 수익률을 계산한 것이다 (계산 방법은 첨부 화일 참조).
시뮬레이션을 위해 시장의 기대수익률은 25년간 코스피지수의 평균성장률인 10%를 대입하였고, 시장의 변동성은 연간 20%를 대입하였다 (셀 B3과 B4). 그리고 초기 주가는 2,000을 대입하였다 (셀 D11). 1회 시뮬레이션은 1년을 252일로 보고, 252개의 주가 데이터를 생성하였다. 위의 그림은 1년분에 해당하는 시뮬레이션이다.
셀 D12 부터는 가상 주가를 나타낸 것이고, 셀 E11 부터는 주가의 12일 지수이동평균을, 그리고 셀 F11 부터는 26일 지수이동평균을 계산한 것이다. 열 G와 H는 각각 MACD와 MACD의 9일 지수이동평균인 매매신호인 시그널을 계산한 것이다. 셀 I11 부터는 매매신호를 위한 오실레이터를 만든 것이다 (I11 = G11 – H11). 따라서 오실레이터가 음수 (-)에서 0을 뚫고 올라가면 매수신호가 되고, 양수 (+)에서 0을 뚫고 내려가면 매도신호가 된다.
셀 J~N 까지는 매수/매도 신호에 따라 가상으로 매매를 한 결과이다. VBA를 사용하지 않고 엑셀의 기본 함수만으로 구성하다보니 깔끔하게 코딩되지는 않았다. 매매 결과, 매수/매도 횟수가 F5, F6에 기록되고, F5와 F6이 다르면 매수/매도 짝이 맞지 않는 것이므로 짝을 맞추어 주기위해 셀 O9를 이용하였다. 이렇게 시뮬레이션된 1년치의 결과가 위의 그림이다. 위의 결과는 시장의 연간 수익률이 -0.12% 였고, 이 전략을 사용했을 때의 연간 수익률은 +4.03% 로 나온 결과이다.
5. 시뮬레이션 결과 및 성능분석
위의 그림은 1년 치에 해당하는 시뮬레이션이고, 수동으로 F9키를 누를 때마다 한 번씩 시뮬레이션을 수행한다. 이 파일에 VBA 코드를 추가하여 이 동작을 5,000번 씩 3번을 수행하여 자료를 수집해 보았다. 그러면 5,000년 씩 3번인 15,000년 동안 MACD 기술적 분석으로 매매를 한 것이 된다. 이 정도면 충분한 자료로 생각된다. 시뮬레이션 결과는 아래와 같았다.
이 전략으로 5,000년 씩 3회 수행하였을 때 연 평균 수익률은 +3.41%가 나왔다. 반면에 시장수익률은 +10.71% 였다. 수익률 변동성은 시장 변동성인 22.56% 보다 낮은 14.65%가 나왔다. 그리고 연 평균 매매 횟수는 10회이고, 15,000년 간 약 150,000번 매매를 하였다. 평균적으로 주식을 보유한 기간은 연간 128일로 집계 되었다. 약 1개월에 두 번씩 매수나 매도를 한 셈이고, 전 기간의 51% 동안 주식을 보유한 셈이다. 평균 수익률은 시장 수익률에 미치지 못했다.
수익률 분포를 비교해 보면 아래 그림과 같았다. 시장 수익률은 연 평균 10.71%를 중심으로 정규분포의 형태로 분포해 있다. 10.71% 부근의 수익을 올릴 가능성이 가장 크고, 평균보다 수익률이 커지거나, 낮을수록 확률이 점진적으로 낮아지고 있다. MACD 수익률도 정규분포와 유사하나 연 평균 3.41% 부근의 확률이 가장 크고, 평균보다 크거나 낮을 확률은 급격히 감소하는 모습이다. 즉, 첨도 (Kurtosis)가 높은 편이다. 첨도가 크다는 것은 수익률이 평균 부근에 많이 몰려있고, 큰 손실이나 큰 수익의 가능성은 낮다는 것을 의미한다. 또한, MACD의 변동성 (표준편차)은 시장의 변동성보다 작게 측정되었다.
시장수익률과 MACD 수익률의 상관관계를 분석해보면 위의 오른쪽과 같은 모양이 된다. 두 수익률 사이에는 상관계수가 0.67로 정의 상관관계가 보인다. 즉, 상승장에서는 수익률이 좋고, 하락장에서는 손실이 발생한다는 것을 의미한다. 그러나 회귀직선의 기울기가 1보다 작으므로 시장의 상승분보다 작아 전체적으로 수익률이 떨어진다.
5. 결론
MACD 기술적 분석의 수익률이 시장수익률보다 작은 이유는 주식을 보유한 기간과도 관계가 있다. 시장수익률은 전 기간에 걸쳐 주식을 보유하고 있는 상태이다, MACD 전략에서는 약 51%의 기간만 주식을 보유하였다. 따라서 시장이 연간 평균적으로 10%씩 성장하는 동안 주식을 보유하지 않은 기간이 49%나 되므로 수익률이 작게 되는 효과가 있다. 그러나 보유기간을 보정해 주어도 평균수익률이 6.82% (3.41% x 2) 밖에 되지 않으므로, 시장수익률의 절반에 불과하다.
변동성은 시장 변동성보다 작게 측정되었다. 이것은 수익률 편차가 작아 위험이 작은 것을 의미한다. 그러나 위험을 고려한 샤프지수로 (수익률/위험) 비교를 해 보아도 시장의 샤프지수보다 낮게 측정된다.
모의실험 결과로는 MACD를 사용한 기술적 분석은 시장수익률에도 미치지 못하는 것으로 분석되었다.
1. 연 평균 수익률은 시장수익률보다 낮았다.
2. 수익률 분포의 첨도가 높고, 표준편차는 작게 나타났다.
3. 연 평균 수익률의 변동성은 시장의 변동성보다 작았다.
4. 시장의 샤프지수보다 낮다
5. 상승장에서는 주로 수익이 발생하고, 하락장에서는 주로 손실이 발생한다.
이 결과는 향후 다른 기술적 분석에 대해서도 동일한 조건으로 실험을 해 보고, 기술적 분석 간 비교 분석을 다시 해 볼 예정이다.
MACD 기술적 분석의 결과가 이전 포스트의 이동평균 교차 결과에 비해 더 나을 것이 없었다. 연 평균 수익률은 약간 높았지만, 변동성이 약간 증가하여 샤프지수로 평가해 보면 비슷한 수준이었다. 연 평균 수익률이 약간 높아진 것은 지수이동평균 사용으로 신호가 다소 빨라졌기 때문으로 보이고, 변동성이 약간 높아진 것은 신호를 빨리 생성하다 보니 신호의 오류 (Whipsaw) 확률이 그만큼 높아졌기 때문으로 보인다. 이 논리가 맞다면 신호의 속도와 신호의 오류와는 정 상관관계에 있기 때문에 신호의 속도를 높이는 데에는 한계가 있다고 추론할 수 있다.
[출처]3. 기술적 분석 – MACD 전략의 성능시험|작성자아마퀀트