AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1)

마지막 업데이트: 2022년 4월 19일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
실제로 신호검색이라고 해서 화살표로 매도 매수신호를 알려주기도 한다.

MACD 지표란? (1)

MACD 지표를 보시면 위와 같이 +, 0, - 의 구조로 이루어져 있습니다.
이 때 기준선은 0으로, 운동에너지가 중립인 상태를 뜻합니다.

MACD 곡선이 이 기준선의 위로 올라가면 시장은 상승장,
밑으로 내려가면 하락장으로 볼 수 있습니다.

MACD 곡선이 기준선 위에 머무르면 가격이 하락한다 해도 상승장이 끝났다고 보지 않습니다.
2. 과매수 과매도 상태에서의 추세 반전 가능성을 알 수 있다.

보통 과매수, 과매도 구간은 RSI 지표로 많이 확인을 합니다.
RSI 지표는 수치가 0~100 사이에서 움직이며
0~30은 과매도, 70~100은 과매수 구간임을 뜻하는데요,
MACD지표는 주가의 변동폭이 커지면 간격의 값이 커지는 차이점이 있습니다.AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1)

이를 활용해서 과매수, 과매도 구간을 벗어나고
MACD 곡선이 시그널 곡선을 하향돌파하면 매도하고, 상향돌파하면 매수를 하시면 됩니다.

※과매수, 과매도 구간에 들어갔다고 섣불리 매매를 결정하면 안된다는 것이 중요합니다.
3. 강세가 다른 골든크로스, 데드크로스를 찾을 수 있다.

이동평균선과 다르게 MACD 지표에서는
강세가 다른 골크, 데크를 찾을 수가 있는데요,
MACD 지표의 기준선 위(상승장)에서의 골든크로스는 강한 골든크로스
기준선 아래(하락장)서의 골든 크로스는 약한 골든크로스라 봅니다.

반대로 기준선 위에서의 데드크로스는 약한 데드크로스
기준선 아래에서의 데드크로스는 강한 데드크로스라 봅니다.

[AT] 17. MACD 지표에 대한 구현 및 매매시점 예측 (1)

블로그 이미지

바로 전에는 이동평균선(MA)에 대한 구현 및 매매시점 예측이라는 타이틀로 진행을 하고 있었습니다. 매매시점 예측에 대해서는 좀더 고민이 필요하다고 판단되어, 이동평균선(MA)의 구현만 우선 마무리하고 나머지는 이후에 기회가 되면 추가로 정리해 보도록 하겠습니다.

제가 오랜시간 글을 올리지 못했는데. 그 사유는 따로 언급은 하지 않도록 하겠습니다. 건강상의 문제도 있었고, 개인적으로도 너무 많은일이 있었습니다. 이제는 어느정도 정리가 되어 꼭 매일 올린다고 할 수는 없지만 자주 올려보도록 하겠습니다.

이번에 구현해 보고자 하는 부분은 MACD 지표에 대한 구현 및 매매시점 예측입니다. 아무래도 MACD에 대한 방식은 사용하는 지표가 상대적으로 적기 때문에, 실험을 통해서 매매시점의 최적화를 하기에는 좀 더 빠른 판단하기가 쉽습니다. 이번에 진행하는 타이틀은 아래의 단계로 진행해 보겠습니다.

  • MACD에 대한 정의 및 구현
  • 구현된 결과에 대한 정합성 확인
  • MACD를 활용한 매매기법 확인 및 적용
  • 매매기법 별 시뮬레이션 및 실험실
  • 향상된 이동평균산정 법칙 적용 및 실험실

자 그럼 첫번째 시간으로 MACD에 대한 정의 및 구현을 시작해 보겠습니다.


1. MACD란?

MACD의 AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 약어를 풀이해 보면, Moving Average Convergence & Divergence 로써 기존에 많이 봤던 이동평균을 뜻하는 Moving Average(MA)에 대한 수렴과 확산이라는 의미를 가지고 있습니다. 눈치로 맞춰보면 MA가 들어가니 이동평균선을 가지고 만나고 멀어지는 것으로 뭔가 수치화를 하는 것인가?? 라고 생각해 볼 수 있겠습니다.
MACD는 제럴드 아펠(Gerald Appel)이라는 사람에 의해서 개발이 되었다고 합니다. 이 지표의 원리는 장기 이동평균선과 단기 이동평균선은 항상 서로 가까워졌다가(Convergence) 멀어졌다가(Divergence)를 반복하고, 이 두개의 이동평균선은 서로 교차하는 점을 항상 만들게 된다는 것을 그 시작으로 합니다.


2. MACD의 기본 지표

MACD에는 기본적으로 3가지 지표를 가지고 매매시점을 판단하게 됩니다. 첫번째는 MACD 그 자체이고, 두번째는 MACD Signal, 마지막으로는 0을 나타내는 기준선이 그것입니다. 각각의 정의는 아래와 같습니다.

MACD = MA12 (12일 이동평균선) - MA26 (26일 이동평균선)
MACD Signal = MACD자체를 가지고 MA9 (9일 이동평균선)를 구한 값
0선 = 각 지표의 양과 음의 값을 나타내는 기준선 (0의 값이 그 기준인 직선)

이렇게만 말하면 도데체가 MACD는 이동평균선의 차이를 수치화한 값이다. 이 정도만 이해가 되고 그게 의미하는 바를 알 수가 없습니다. 그렇다면 실제로 차트에서는 어떻게 그것이 적용되는지 확인해 보겠습니다.


3. MACD의 의미

[종목코드 : 005930, 종목명 : 삼성전자]

측정기간 : 2020년 11월 10일 기준으로 업무일 기준 60일 전까지의 Data

위의 그림은 삼성전자의 차트들로 2개의 차트로 구성이 되어있습니다. 그 중 위의 차트는 삼성전자의 12일 이동평균선 (MA12)을 파란색으로, 26일 이동평균선 (MA26)을 주황색으로 나타낸 표 입니다. 그리고 아래 차트는 MACD를 나타낸 표 입니다. 0선도 같이 잘 보이네요.

그림에서 (1) 번을 살표보겠습니다. (1)은 MACD가 음수에서 양수에서 변하는 지점이고, 26일선을 12일선이 상향 돌파하는 지점입니다. 이것을 흔히 골든크로스(Golden Cross)라고 하며, 주가상승의 매수신호도 판단할 수 있습니다.

그렇다면 (2) 번에서는. MACD가 양수에서 음수로 변하는 지점이고, 26일선을 12일선이 하향 돌파하고 있습니다. 이것을 우리는 데드크로스(Dead Cross)라고 하고, 주가하락의 신호로 판단할 수 있습니다. 바로 이것이 MACD의 의미입니다.


4. MACD와 MACD Signal의 관계

[종목코드 : 005930, 종목명 : 삼성전자]

측정기간 : 2020년 11월 10일 기준으로 업무일 기준 60일 전까지의 Data

위의 그림은 아까와 동일한 그림입니다. 변경된 내용은 아래 차트에 주황색으로 MACD Signal 선이 추가되었습니다.

자 그렇다면, MACD와 Signal선이 크로스 되는 지점을 살펴보겠습니다. (1) 번은 MACD선이 MACD Signal 선을 상향 돌파하는 지점입니다. 이를 골든크로스라고 하며, 이것의 의미는. 곧 있으면 26일선을 12일선이 상향돌파 할 가능성이 보인다는 의미입니다. 이는 곧 주가상승의 매수신호로 판단이 가능하겠죠.

그럼 (2) 번에서는 반대로. MACD선이 MACD Signal 선을 하향 돌파하는 지점입니다. 이를 데드크로스라고 하며, 이것의 의미는. 곧 있으면 26일선을 12일선이 하향돌파 할 가능성이 보인다는 의미입니다. 하지만 그림에서 보면 하향돌파는 하지 않지만 약간의 감소추세는 있었습니다. 역시나 확률이고, 그럴 가능성이 더 크다는 것이지 반드시 그렇다는 것은 아니라는 점은 꼭 명심하셔야 합니다.


5. MACD와 관련 지표 구현

그렇다면 이제. 이 로직을 프로그램으로 적용해 보고자 합니다. 바로 전에, 이동평균선(MA)에 대한 구현 및 매매시점 예측이라는 타이틀로는 각종 Moving Average에 대해서 DataFrame을 통해서 AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 구현하고, 그 값을 DB에 저장하였습니다.

이번에는 MACD와 MACD Signal 항목을 추가하여 그 DB에 저장해 보도록 하겠습니다. 기존에 이동평균선들을 구해서 해당 종목의 DB에 저장하는 방법은 이전글들을 참조부탁드리고, 이번에는 MACD와 관련지표를 위해서 추가되는 코드만 추가해 보겠습니다.

작성하는 단계는 아래와 같습니다.

(1) MA12와 MA26을 추가로 구하기

(2) MACD를 구하기 위해서 각 일별 MA12 - MA26을 구하고, 이를 DataFrame에 추가

(3) MACD Signal을 구하기 위해서 MACD에 대한 MA9를 추가로 구하기

첫번째로, 우선 MA12 (12일 이동평균선)과 MA26 (26일 이동평균선)을 기존 이동평균선 구하는 로직에서 추가를

두번째로, MACD를 구하는 함수를 하나 만들어 줍니다.

해당 함수는 총 2개의 파라메터를 받습니다. MA12 (12일 이동평균선)과 MA26 (26일 이동평균선)을 받으면, 각 행별로 둘의 차를 구해줍니다. 여기서 주의할 점은. DataFrame에서 rolling으로 값을 구하면 데이터가 없어서 구하지 못하는 부분은 아래와 같이 nan으로 표시가 됩니다.

따라서, nan에 대한 처리를 해줘야 합니다. 그것이 바로 아래 코드이며. 이 경우 0값을 넣어줍니다.

그리고 전달받은 값을. 아래와 같이 DataFrame에 추가해줍니다.

이제 마지막 단계입니다. 세번째로는. MACD Signal을 구하기 위해서 MACD에 대한 MA9를 추가로 구현해줍니다. 이미 많이 해봤기 때문에 코드만 추가해 보도록 하겠습니다.

이렇게 하면 아래와 같이 MACD에 대한 지표가 추가되어, 해당 종목의 테이블에 착착 저장이 되게 됩니다.

오늘은 여기까지 진행하고, 다음 시간에는 여기서 구한 MACD지표들을 가지고 실제로 증권사에서 제공하는 데이터와 일치하는지 정합성을 체크해 보도록 하겠습니다.

이동평균선과 MACD

수많은 지표들이 있다. MACD, RSI, 일목균형표, 이격도, 볼린져밴드 등등 나열하면 계속 쓸 수 있을 것처럼 말이다. 그런데 실제로 이 지표들을 활용하면 한눈에, 더 쉽게 추세나 거래량 주가의 위치 등을 편하게 알 수가 있다. 그중에서 많이 들어봤을 MACD에 대해서 가장 먼저 알아보자. MACD, 일단 약자다. Moving Average Convergence Divergence의 약자인데 Moving Average는 이동평균선을 뜻하고 Moving와 Average는 '모아지다'와 'AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 멀어진다'라는 뜻이다. 그렇다면? 이동평균선이 모아지고 멀어지는 정도를 표시하는 지표인 것이다. 지난번에 이동평균선에 대해서 같이 공부하지 않았는가? 이동평균선은 단기와 중기 장기가 서로 멀어도 지고 가까워지기도 하는데 이를 통해서 사야하는때인지 팔아야 하는 때인지를 알아보았다. 이 지표는 그 수렴과 확산을 이용한 지표인 것이다. 이해가 잘 안 가더래도 계속해서 알아보자.

기본적으로 이렇게 생겼다고 보면 된다. 기준선 하나 선두개

MACD 지표는 MACD곡선과 시그널 곡선, 2가지로 이루어져 있다. MACD 곡선은 그림의 주황색 선인데 이선을 어떻게 이해하면 되는가 하면 단기이동평균선에서 장기이동평균선을 뺀 값이라고 생각하면 된다. 이해가 잘 되지 않을 수도 있다. 단기 지수 이동평균선이 장기 이동평균선보다 위쪽에 위치하면 그 둘을 뺀 값이 0보다 큰 숫자인 1 이상이 될 것이 아닌가? 그러면 0이라는 기준선보다 위에 위치하게 되고 'MACD 0선 이상에서만 주식을 사라.'와 같은 소리가 이에 해당하는 것이다. 그럼 시그널 선은? MACD이동평균값을 또다시 이동 평균한 것이다. 아니 평균치만 알아서 양수일 때가 상승추세인 것만 알면 되는 것 아닌가? 할 수 있는데 시그널 곡선이 필요한 이유는 단기이동평균선과 장기 이동평균선이 가장 멀어지는 순간을 찾기 위해서 이다. 그 순간이 MACD 곡선과 시그널선이 만나는 순간인 것이다. MACD 곡선이 시그널 선을 교차하며 위로 올라가면 MACD가 평균보다 높게 형성되었다는 의미로 매수 신호로 받아들이고 반대로 MACD선이 시그널선 아래로 내려가면 매도 신호로 해석되는 것이다. 평균적으로 MACD(12,36) AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 시그널(9)을 사용하며 이는 단기이동평균선으로 12일 장기 이동평균선으로 26일 시그널에 있는 9라는 숫자는 이동평균값을 또다시 AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 낼 때 사용된 일수를 말한다. 이 수치는 자신이 어떤 방법의 매매(단기, 중기, 장기)를 하느냐에 따라서 수치를 바꿔가면서 자신에게 맞는 스타일로 바꿀 수 있는데 지금까지의 개떡 같은 설명을 이해한 사람이라면 벌써 신이 나서 수치를 바꿔보면서 자신의 스타일에 맞는 매수신호를 찾아볼 것이다.

MACD곡선과 시그널곡선이 무슨 역활을 하는지 보이는가?

진짜 레알 무슨 소리인지 1도 못 알아듣겠다. 하면 그냥 지표로만 보자. 어차피 차트 하루에 몇십 개씩 AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 계속 보다 보면 저절로 알게 된다. 지표로서 보는 방법을 설명한다. 1번) MACD선이 기준선인 0선 이상에서는 상승추세 전환으로 보고 관심을, 그 반대로 0선 이탈 시에는 하락 추세 전환으로 보고 관망을 한다.(우리가 배운 이동평균선의 골든크로스와 데드크로스 이다!) 2번) MACD 곡선이 시그널 곡선을 상향 돌파하면 매수 신호로 보고 반대로 하향 이탈하면 매도 신호로 본다. 3번) 이 두 개의 사항을 합쳐서 0선 위에서 나타난 곡선들의 골든크로스는 더 강한 신호(0 선위에서 나타난 곡선들의 데드크로스는? 비교적 약한 신호!) 0선 아래서 나타난 곡선들의 데드크로스는 더 강한 신호로 본다.

실제로 신호검색이라고 해서 화살표로 매도 매수신호를 알려주기도 한다.

결론적으로 MACD는 이동평균선을 이용해서 주가의 흐름을 파악하고 추세의 방향을 분석하는 지표인 것이다. 이렇게만 보아도 주가를 보는데 너무 편하고 이렇게만 매매하면 부자가 될 것 같지 않은가? 실제로 확률 높이고 알아보기 쉬우나 당연히 다 맞지는 않는다. 우리는 전에도 말했든 계속해서 돈 잃을 확률을 낮추고 돈을 얻을 확률을 향해서 0.1% 0.5%씩 쌓아가는 것이라고 생각하고 하나하나 같이 배워보자. 다음번에는 스토캐스틱에 대해서 같이 공부해보자.

[보조지표] MACD, 다이버전스

MACD(Moving Average Convergence & Divergence)는 장단기 이동평균선간의 차이를 이용하여 매매신호를 포착하려는 기법으로, 주가추세의 힘, 방향성, 시간을 측정하기 위해 사용한다. MACD는 장기 이동평균선과 단기이동평균선이 서로 멀어지게 되면(divergence) 언젠가는 다시 가까워져(convergence) 어느 시점에서 서로 교차하게 된다는 성질을 이용하여 두 개의 이동평균선이 멀어지게 되는 가장 큰 시점을 찾는 것이다.

MACD 지표는 거래량 지표들과는 다르게 후행성 지표이므로, MACD 지표만을 활용한 투자는 위험하다. 주가가 움직인 다음에 지표에 반영되기 때문에 MACD 지표만으로 판단하여 매수하면 실패하기 쉽다. MACD는 추세 확인용으로 활용하거나, MACD의 다이버전스를 통해 투자하면 성공 확률이 높다.

다이버전스

다이버전스(divergence)는 당신이 시장을 분석하기 위해서 사용하는 가격 차트 및 기술적인 보조지표(오실레이터)가 주가와 반대로 움직이는 현상을 의미한다.

대부분의 주가는 추세를 따라간다는 전제로 투자하는 방법으로, 주가는 오르고 있는데, 보조지표가 하락 추세라면 조만간 주가는 하락세로 전환될 가능성이 높다. 반대로 주가는 연일 하락하고 있는데 보조지표는 상승 추세로 AT 17. MACD 지표에 대한 구현 및 매매시점 예측 (1) 전환되었다면, 주가도 반드시 상승세로 전환된다.

단, 다이버전스 역시 거래량이 뒷받침 될 때 확실히 흐름 반전이 발생할 수 있으며, 다이버전스 하나로만 투자하는 것은 위험하다.

보조지표를 활용한 매수/매도전략

이동평균선 매일 매일의 주가나 거래량의 변화를 도면에 선으로 그려보면, 그 선은 대개 변화가 매우 심한 불규칙적인 곡선이 된다. 이러한 불규칙적인 변화를 최대한 줄여서 단순하..


0 개 댓글

답장을 남겨주세요