MACD의 계산

마지막 업데이트: 2022년 4월 1일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
MACDover0 = MACD > 0
MACDunder0 = MACD < 0

8. 기술적 분석 (Technical Analysis)

현재 인텔리퀀트 스튜디오에서 제공하는 기술적 분석 지표 함수는 아래와 같이 추세 지표, 모멘텀 지표, 변동성 지표, 시장강도 지표로 나누며, 자세한 사항은 도움말 API 레퍼런스의 Stock 객체(https://intelliquant.co.kr/help/ref/1) 부분을 참고해주세요.

※ 모든 기술적 지표는 수정주가를 기반으로 계산된 값입니다.

1) 추세 지표

  • MA (Moving Average, 이동평균) - getMA(period)
  • EMA (Exponential Moving Average, 지수이동평균) - getEMA(period)
  • WMA (Weighted Moving Average, 가중이동평균) - getWMA(period)
  • MACD (Moving Average Convergence & Divergence, 이동평균수렴확산) - getMACD(fast, slow, signal)
  • ADX (Average Directional Movement Index, 평균방향운동지수) - getADX(period)

2) 모멘텀 지표

  • Stochastics (스토캐스틱) - getStochastic(fastK, slowK, slowD)
  • Williams%R (윌리엄스%R) - getWilliamsR(period)
  • CCI (Commodity Channel Index, 상품채널지수) - getCCI(period)

3) 변동성 지표

  • Bolinger Band (볼린저밴드) - getBolingerBand(period, devUp, devDown)
  • True Range (트루레인지) - getTrueRange()
  • ATR (Average True Range, 애버리지 투루레인지) - getATR(period)
  • Parabolic (파라볼릭) - getParabolic(acc, max)

4) 시장강도 지표

  • OBV (On Balance Volume, 누적균형거래량) - getOBV()
  • RSI (Relative Strength Index, 상대강도지수) - getRSI(period)

아래 예제는 추세 지표들 중에 하나인 이동평균 수렴확산(MACD) 지표를 이용하여 해당 종목을 매수/매도하는 방법입니다.
전체적인 내용은 한 종목의 MACD 값과 Signal 값을 비교하여 MACD가 Signal을 하향 돌파(데드크로스)하면 매도, Signal을 상향 돌파(골든크로스)하면 매수하게 됩니다.

빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #18- 간단한 보조지표 만들기 (MACD)

국민 보조 지표 중 하나인 MACD. 굉장히 간단한 개념을 가진 친구로, 쉽게 애용하시는 지표이죠. 단순하게 보면 (짧은 이동평균선) - (긴 이동평균선) 이걸 수치화 및 가시화 해서 보여주는 친구 입니다.

대표적으로 느린 지표라고 알려져있는데, 잘 분해해서 연구를 해보면 그닥 느린 지표는 아니다 라는 MACD의 계산 점을 캐치하실 수 있습니다. 모든 느린 지표들의 특징이 평균의 평균 또는 평균의 평균의 평균 등 정확도를 올리기 위하여 평균이라는 요소를 많이 사용하는데, MACD 역시 그렇습니다. 하지만 이런 느리게 하는 요소를 어느정도 제거해주면, MACD 역시 빠르고 민감한 지표 라고 불릴 수 있습니다. 한 가지의 지표에서 수십가지의 활용 방법들이 나오는 것이죠!

이동평균선의 간격이 들어가는 만큼 현재 가격의 크기/힘 이 과거의 가격의 크기/힘 보다 얼마나 더 큰지에 대하여 나타내 줍니다. 저는 간격이라는 부분을 보며, 적분에 대한 요소가 들어가는게 아닌가? 라는 생각이 들었었네요.

인테그랄 (short-term ma) - 인테그랄 (long-term ma) 를 하는데 최소 단위를 최소 봉으로 잡은거 아닌가요? ㅎㅎㅎ 적분까지는 아니더라도 구분구적법 배울때 나오는 시그마만 무한으로 안보내면 호홓

MACD 의 분해

MACD 는 3가지의 파트로 나뉩니다.

이동평균선들의 간격을 알려주는 MACD 선 (파란색)
MACD 선의 평균을 나타내는 시그널 선 (주황색)
MACD 선과 시그널 선의 간격을 나타내는 오실레이터 (빨간색,초록색 막대)

  • 오실레이터: 위아래로 진동하는 형태의 보조지표; 이전 포스팅에서 RSI 도 오실레이터의 대표적인 예시. 특징으로는 방향성이 없습니다.

오늘 알아보실 파트는 MACD 입니다!

빨간색 선: 12주기 ema, 파란색 선: 26 주기 ema

수학적으로는 지수 이동평균선 (ema: exponential moving average) 26 주기 와 12주기 의 편차를 나타내는 것이며, MACD 보조지표가 만들어지는데 기본 데이터 입니다. 나머지는 이 편차에서 파생된 값들이죠.

위 사진은 MACD 선만 나타낸 것이며, 0 을 주위로 진동하는 모습을 보실 수 있습니다. 이동평균선이 양의 편차를 가지면 올라갈 것이고, 이동평균선이 음의 편차를 가지면 내려갈 것입니다. (이건 코딩 파트를 가서 다시 보여드리겠습니다.)

직관적으로 가격이 수렴을 하면 MACD 선도 수렴을 한다는 모습을 볼 수 있습니다. 또 가격이 방향성을 가지면, MACD 도 방향성을 가지게 되죠. 어떻게 활용하는지에 따라 수렴을 구분할 수 있으며, 각도로 추세의 방향성에 대한 자료로 사용할 수 있습니다.

또 0 위에 있는지 아래에 있는지를 보아 간격이 음의 방향으로 발생했는데 양의 방향으로 발생했는지 확인하실 수 있습니다.

초 간단하게 활용을 하자면 4 가지의 상태로 분석할 수 있습니다. MACD 선이 0 위에 있고는 전체적인 추세가 상승인지 하락인지를 판단하고, MACD 의 각도인 올라가고 있을때 , 내려가고 있을 때는 실제 가격이 올라가고 있는지 내려가고 있는지에 해당하게 되죠.

여기서 직관적으로 봐도 조정을 하고 있는 상태는 MACD 0 위에, MACD 내려가고 있을때 이며 되돌림 매수에 해당하는 구간입니다. 그리고 여기에 추가적인 매수 시그널 (제일 간단한건 양봉이죠!) 을 구성하면 매수 진입 전략이 형성됩니다.

여기까지 이해를 하셨다면, 코딩 파트는 좀 더 쉽게 접근하실 수 있습니다.

먼저 새로운 페이지를 여시고, MACD 변수를 만들어줍니다.

다시 설명드리면, MACD 란 ema 26 주기를 ema 12 주기에서 뺀 값이다 입니다. 그걸 MACD 라는 변수로 받아주면, MACD 자체는 숫자가 되죠!

ema 란, 현재의 값에 가중치를 준 이동평균선으로 보정된 이동평균선으로 이해하실 수 있습니다. 나중에 이동평균선에서 파생된 선들을 다루며 더 자세히 알아보겠습니다. 트레이딩뷰에서는 ema(source,period) 라는 함수로 주고 있습니다!

이제 위에 표시한 네가지의 상황을 만들어봅시다.

먼저 MACD 가 0 위에 있고 없고 상황!

MACDover0 = MACD > 0
MACDunder0 = MACD < 0

MACD 값이 0 위에 있으면 MACDover0 이 true, MACD 값이 0 아래에 있으면 MACDunder0 이 true.

MACDascending = MACD > MACD[1]
MACDdescending = MACD < MACD[1]

MACD 값이 한 개 전의 MACD 값이랑 비교합니다. 만약 한 개 전의 MACD 보다 크면 MACDascending 이고, 작으면 MACDdescending 이 true 가 되겠습니다.

이제 위 네 개의 변수들 중 제가 원하는 상황인, 조정을 주는 상황을 수식으로 표현하면

correction = MACDover0 and MACDdescending

이 되게 됩니다. 일단 추세는 상승이여야 하며, 가격은 하락을 하고 있으면 보통 저희가 정의할 수 있는 조정 이라는 카테고리에 들어오게되죠. 그리고 이 상황을 차트에 표현해봅시다. 오늘은 초록초록 하니깐 초록초록하게!

bgcolor(color = correction ? green: na)

여까지 했으니 차트에 적용해봅시다.

가격이 조정일 가능성이 있는 부분이 초록색 으로 표기됩니다. 하지만 이것만 있으면 매수 시그널 부분이 빠져있죠. 매수 시그널 파트는 양봉으로 간단하게 작성해봅시다.

Buy = correction[1] and close > open

만약, 이전 캔들이 조정 상태였고, 현재 캔들이 양봉이면 Buy 값이 True!

그리고 Buy 상황이 True 이면, 배경에 초록색을 칠해라!

꽤나 정교한 시그널 들을 주는군요. 18년도 비추세 구간에서 발생하는 시그널들은 이동평균선 필터로 가리면 될것 같습니다.

이제 살짝 노가다를 해줘서 만약 시그널이 7 개의 캔들안에 발생했다면, 다시 시그널이 발생하지 않도록 해줍시다. 스펙트럼 같은 선들 MACD의 계산 보기만 해도. 현기증이 하하하하하 . 그리고 실제 진입을 한다면 ,추세 -> 조정 -> 양봉에 진입을 하는 메커니즘 이기 때문에 시그널이 나타나지 않다가, 첫 MACD의 계산 시그널에 진입을 하게 됩니다. 이런 직관적인 부분을 적용해줍니다.

notBuy = Buy[2] or Buy[3] or Buy[4] or Buy[5] or Buy[6] or Buy[7]

notBuy 라는 변수를 만들어주고 만약 Buy 라는 상황이 2개 캔들전, 3개 캔들전 4개 캔들전 등 7개 캔들 전까지 발생했다면 notBuy 라는 MACD의 계산 값이 true 로 만들어줍니다.

그리고 Buy 값이 참이고, notBuy 값이 참이지 않으면 RealBuy 값이 참이 되게 되는 변수를 만들어주고.

백그라운드에 레알 바이를 프린팅.

눈으로 보기에는 현재 변동성에 맞는 차트는 30분 이상의 차트군요. 변동성이 더 커지면 5분 봉에서도 프렉탈이 뚜렷해지죠!

트레이딩 시 머릿속에 있어야 하는 공식

요건 제가 트레이딩을 할 때 머릿속에 프로세싱 하는 공식 이며, 매수 진입 조건에 해당하는 항들 입니다. 모든 전략에는 아래와 같은 항들이 있어야 한다고 생각합니다.

매수 조건 = (변동성) * (진입 조건) * (추세)

변동성: 아직 한 번도 다루지 않았지만, 저는 수치적으로 ATR 을 사용하고 있으나, 직관에 더 의존하는 편 입니다. 변동성이 작은 시장과 변동성이 큰 시장은 다른 패턴을 보입니다. 즉, 전략 자체가 달라야 합니다. 이전 포스팅에서 비추세,추세 시장을 따질때 잠깐 소개를 시켜드렸으나, 비슷한 맥락입니다. 가장 추상적이며, 요즘 가장 어렵다고 느끼는 부분입니다.

진입 조건: 가장 단순한 진입 방법은 양봉 종가 매수죠. 가장 설정하기도 쉽고, 단일 진입으로 계산이 가장 단순합니다. 하지만 진입 조건에서 일정 크기의 양봉, 어떠한 상황에서의 양봉, 어떠한 상황 과 일정 크기의 양봉 등 많은 변수를 곱하고 더해서 만들어줄 수 있습니다. RSI 를 활용할 수 있는 항 이기도 합니다. 오늘 단순히 소개해드린 과거 7번의 캔들 안에 매수 시그널이 있다면, 시그널은 없는거야! 와 같은 코드도 여기에 해당합니다.

추세: 가장 비중이 큰 파트 입니다. 매수, 매도, 비추세 구분해주는 항 입니다. MACD 및 MA 가 해당하는 항 입니다. 추세도 단기, 장기로 나눠서 볼 수 있으며, 여러가지 지표, 변수, 값들을 섞어 만들어 낼 수 있습니다. 추세는 그래도 단순하게 보는 것이 저는 좋다고 봅니다.

MACD 지표란? (1)

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

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

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

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

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

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

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

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

MACD의 계산

오늘 알아볼 것은 보조지 표 시리즈인데요.

그 중 첫번째로 MACD에 MACD의 계산 대하여 알아보겠습니다.

시작하기전에 주식 보조지표에 대하여 이야기를 잠깐 하자면..

주식보조지표라는 것은 본질적으로 주가의 추세강도를 객관적인 데이터로 정리한 지표라고 할 수 있습니다.

말 그대로 보조지표입니다. 투자의 보조역할을 해야지 투자의 결정을 보조지표로 하시면 곤란하다고 할 수 있습니다. 왜냐면 기본적으로 차트의 성질은 후행성이고, 지나간 차트를 보고 MACD의 계산 설명을 하기엔 쉽지만 앞으로 올 상황에 대한 확신은 힘들거든요.

그럼 그 첫번째시간, MACD 시작해보겠습니다.

MACD란 Moving Average Convergence & Divergence의 약자 MACD의 계산 로 이동평균수렴확산지수 의 약자입니다.

MACD가 만들어진 가장 근본적인 이유로는 저점이 지나야 매수신호가 오고 고점이 지나야 매도신호가 오게되어 이런방식으로 매매를 하게되면 결국 무릎에서 사게되고 주가의 상승이 둔화되었을때 이를 캐치하지 못하여 어깨에서 팔게되는 것을 보완하려고 만든 보조지표인데요. 한마디로 주가가 상승하려는 낌세가 보일때 바닥에서 사서 고점에서 팔려고 만들어진 지표입니다.

이 지표는 1979년 Gerald Appel이 만든 지표인데요. 기본적으로 두가지의 선을 이용하여 매매신호를 주는 공식입니다.

그 두가지의 선은 MACD 선과 Signal 선으로 이루어져 있는데요.

MACD 선 이란 단기(12일)지수이동평균 - 장기(26일)지수 이동평균

Signal 선 이란 9 일간의 MACD 지수이동 평균 을 뜻합니다.

이 두가지 선을 통하여 어떻게 매매를 하냐면 기본적으로 MACD선이 Signal 선을 상향돌파하면 매수, 하향돌파하면 매도하는 기본적인 전략 입니다.

그럼 한번 실제로 적용이 되나 살펴볼까요?

위 그래프에서 보면 빨간색이 MACD 선, 청록색이 Signal선인데요.

매수신호는 빨간색 화살표로, 매도신호는 파란색화살표로 나와있습니다.

따라서 위 매수 및 매도신호대로 매매를 한다고 했을때

12회의 화살표 중 4회빼고 모두 손실을 줄이고 이익을 늘리는 MACD의 계산 성공적인 매매를 할 수 있었습니다.

66%대의 적중률을 보이는데요.

하나 더 사례를 적용해볼까요?

위 그래프에서는 MACD 적중률이 11회 중 3회정도 밖에 맞지 MACD의 계산 않습니다.

왜 이런 현상이 일어났을까요?

MACD는 정배열주식, 역배열주식, 급등주, 급락주, 박스권에 갇힌 주식에는 적용이 힘들다는 함정이 있습니다.

정배열 주식은 사례 1에서 보시듯 MACD가 왠만해선 0밑으로 내려가지 않습니다.

역배열 주식은 사례 2에서 보시듯 MACD가 왠만해선 0위로 올라가지 않습니다.

한마디로 추세가 살아있을때의 MACD는 잘 적중하지만, 추세가 죽었을때 MACD는 적중률이 떨어진다.

고로 Action Plan을 제시해드리면

추세를 60일선으로 잡은 뒤

MACD가 0 이상 이며 추세가 살아있는 경우 - 매수

MACD가 0 이하 - 매도 및 매수금지

이런식의 매매기법을 추천해드리고 싶습니다.

2. MACD 오실레이터(MACD osc)

그렇다면 MACD 오실레이터는 무엇일까요?

MACD 오실레이터란 MACD가 선으로 이루어져있어 0을 기준으로 상향인지 하향인지 보기 힘들다고 Manning Stoller이란 사람이 개발한 지표인데요.

MACD와 SIGNAL 선을 같이 긋지않고 MACD에서 Signal을 빼서 봉으로 표시한 것을 MACD 오실레이터 라고 합니다. 어떻게 보면 아주 간단한 아이디어지만 이 지표로 인해 MACD가 더 보기 편해진 것은 사실입니다.

맨 아래부분이 MACD 오실레이터인데요.

MACD 오실레이터가 빨간색이 시잘할때 매수, 파란색이 시작할때 매도라는 전략을 쓴다면 MACD를 사용한것과 동일한 효과를 얻을 수 있습니다.

[보조지표] MACD OSC를 이용한 매수타이밍 체크

주식을 매수할 때, 보통은 이동평균선을 기준으로 현재 주가의 위치를 잡습니다. 20일선을 많이 보고 판단하게 되는데, 개인적으로 그 기준이 애매할 때가 많다고 생각합니다. 그래서 최근에 다양한 지표를 살펴봤고, 그 중에서 MACD에 관심을 갖게 되었습니다.

MACD는 이동평균선의 수렴과 확산을 나타내는 지표입니다. 12일선과 26일선의 차이를 확인할 수 있는데, 주가의 흐름 추세와 그 변화를 예상하는데 도움이 되는 지표입니다. 그 중에서 개인적으로 최근 많이 활용하고 있는 보조지표로 MACD Oscillator(이하 MACD OSC)를 보고 있습니다. MACD의 Signal 값을 히스토그램으로 만든 지표로 직관적으로 볼 수 있기 때문이죠. 예를 들어 봅시다.

진양산업의 주가차트

- 12일선과 26일선의 차이만큼 MACD OSC가 직관적으로 확인할 수 있게 해줍니다.

- 12일선이 26일선보다 위에 있다면, 적색의 (+) 지표로 나타나고, 그 반대의 경우는 파란색의 (-)지표로 나타나게 됩니다. 만일 MACD의 계산 OSC의 값이 0에 가깝다면, 이전 추세에 따라 골든크로스가 나타나거나 데드크로스가 나타날 가능성이 있다는 얘기가 됩니다.

장기투자에 앞서 괜찮은 주식이라고 생각된다면, 적절한 MACD의 계산 매수타이밍을 잡고 들어가는 것이 가장 바람직하다고 생각합니다. 그리고 추가 매수 기회를 갖고 갈 때에도 역시 매수타이밍이 중요하죠. 다만, 12일선과 26일선을 기준으로 지표가 형성되기 때문에 빠른 대응이 어렵다는 단점이 존재합니다.

단순하게 바라봤을때, OSC 지표상 파란 그래프가 가장 내려왔을때, 매수할만 하다고 판단합니다.

주가는 파동의 형태를 띄면서 등락을 반복합니다. 하지만 넓은 범위로 확장시켜봤을때, 상승추이에 있는지 하락추이에 있는지 가늠할 수 있죠. 만일 상승추이에 있는 종목이 있다면, 현재 상황을 판단하는데 MACD OSC가 도움이 될 수 있습니다.

좌측 박스에 양의 지표를 갖던 MACD OSC가 주가 하락과 함께 음의 지표를 갖습니다. 자신만의 상황을 설정해 12일선과 26일선의 갭이 어느정도 일 때, '매수하겠다'는 마음을 먼저 정하셔야 해요. 위 차트상에서 "차악의 상황"으로 정해놓은 -50원 MACD의 계산 대의 상황이 발생했고, 이에 매수를 했다고 가정해봅시다. 주가가 더 큰 폭락으로 이어지지 않는 한 MACD OSC는 0으로 수렴하기 위해 12-26일선의 차이가 좁혀지고 다시 양의 지표로 돌아갑니다. 장기적으로 괜찮다고 생각된 주식을 더 매수하고자 할땐, MACD상의 음의 지표가 나올때까지 기다렸다 사는 것이 효율적이라고 생각합니다.

이와 반대로 매도해야할 시기가 왔다고 생각된다면, 지표를 토대로 현재의 주가가 어떤상황인지 체크해볼 수 있습니다. MACD OSC가 양의 지표로 올라선 상황에 투자자가 설정한 금액에 미치는지 미치지 않는지에 대해 확인해보고, 매도시점을 체크해볼 수 있습니다. 양의 지표로서 더 오를 여력이 있다고 생각되면 홀딩, 현재가 가장 MACD 값이 큰 상황이라고 생각되면 매도를 생각해 볼 수 있죠.

이런 MACD OSC를 활용한다고 하더라도, 예외상황은 항상 발생합니다. 주가가 하락추이임에도 불구하고 MACD OSC상에 양의 지표가 나올경우도 있기 때문이죠. 따라서 투자 판단은 개인이 하되, 공부를 통해 자신에게 맞는 지표와 타이밍을 갖고 움직이는 것이 좋다고 생각합니다.


0 개 댓글

답장을 남겨주세요