2. 해외선물/2-4. 해외선물 API (사용)

(키움증권 해외선물 OpenAPI-W) MACD 값 구하기 (2) MACD 엑셀에서 계산하기

봄이오네 2023. 8. 7. 08:02
반응형
1. 들어가며
2. 사전설명
3. 계산하기
   1) 12일 지수이동평균 구하기 (AE열)
   2) 26일 지수이동평균 구하기 (AF열)
   3) MACD 구하기 (AG열)
   4) 시그널 구하기 (AH열)
   5) 오실레이터 구하기 (AI열)
4. 마치며

 

1. 들어가며

지난 글에서는 MACD 개념 및 지수이동평균에 대해 알아보았다. 각각의 종가에 지수이동평균을 통해 구한 값이 MACD이며, MACD를 통해 시그널 및 오실레이터 등을 구할 수 있었다.

 

이번 글에서는 엑셀을 통해 MACD 구하는 방법을 알아볼 것이다. 선물지표를 파이썬으로 구현하기 위해서는 엑셀에 구현을 하곤 한다. 이유는 엑셀 함수를 만들어가면서 코딩을 어떻게 작성해야 하는지 머릿 속에서 그려보기 위해서이다.

 

해외선물(나스닥) macd 구하기.xlsx
0.18MB

< 파일1 > 2023년 8월 4일(금), 나스닥 일봉(MACD 포함)


 

2. 사전설명

지난 글에서 설명하였지만, MACD를 구하기 위해서는 12일 지수이동평균, 26일 지수이동평균, 시그널(MACD 9일 지수이동평균) 등 3가지를 구할 필요가 있다.

  • MACD = 12일 지수이동평균 - 26일 지수이동평균
  • 시그널 = MACD의 9일 지수이동평균
  • 오실레이터 = MACD - 시그널

 

지수이동평균은 최근값에 가중치를 고려하고, 과거 지수이동평균에는 (1-가중치)를 곱해준다.

  • 현재 종가의 지수이동평균 = (최근 종가 x 가중치) + (전 분봉의 지수이동평균 x (1-가중치))

결론은 12일/26일/MACD 9일의 3가지 지수이동평균을 구하면 MACD 관련 데이터를 얻을 수 있는 것이다.


3. 계산하기

1) 12일 지수이동평균 구하기 (AE열)

위에서 첨부한 <파일1>을 열어보면, AF열 ~ AI열을 확인할 수 있다.

가중치는 2/(n+1)로 계산되는바 2/(12+1)이 적용된다.. 즉, 2/13이 가중치이다.

 

①12일 지수이동평균을 구하기 위해 AE의 2번째 줄에는 F2열의 종가(15480.75)를 넣는다.

 

②AE열 3행에서 12일 지수이동평균을 계산하자   AE3의 15480.67 = (15480.25 * 2/13) + (15480.75 * (1-2/13)

 

③AE열 4행에는 AE열 4행의 15488과 관련된다.

   AE4의 15481.8 = (15488 * 2/13) + (15480.67 * (1-2/13)

 

2) 26일 지수이동평균 구하기 (AF열)

26일 지수이동평균의 가중치로 2/(n+1)에 대입하면, 2/(26+1)로 계산된다. 즉 26일 지수이동평균의 가중치는 2/27이다.

①26일 지수이동평균을 구하기 위해 AF의 2번째 줄에는 F2열의 종가(15480.75)를 넣는다.

 

②AF열 3행에서 26일 지수이동평균을 계산하자

   AF3의 15480.71 = (15480.25 * 2/27) + (15480.75 * (1-2/27)

 

③AF열 4행에는 AE열 4행의 15488과 관련된다.

   AF4의 15481.25 = (15488 * 2/27) + (15480.71 * (1-2/27)

 

3) MACD 구하기 (AG열)

MACD는 <그림1>의 AG2 셀에서 확인가능하듯, 12일 지수이동평균 - 26일 지수이동평균으로 계산한다.

 

4) 시그널 구하기 (AH열)

AH열의 시그널을 구하기 위해서 AG 9일간의 지수이동평균을 구한다. 9일의 가중치는 2/(n+1)을 적용하면 2/(9+1)로 계산된다. 즉, 가중치는 2/10으로 계산된다.

 

① AH2 셀 : AG2 셀이 0(=AE2 - AF2)이므로 AH2도 0이다.

② AH3 셀 : -0.01 = -0.04 x (2/10) + 0 x (1-2/10)

③ AH4 셀 :  0.10 = 0.55 x (2/10) + (-0.01)  x (1-2/10)

④ AH5 셀 :  0.27 = 0.92 x (2/10) + (0.10)  x (1-2/10) 

 

5) 오실레이터 구하기 (AI열)

오실레이터 = MACD - 시그널이므로, AI2 셀은 0으로 계산된다.

AI3 셀 : -0.03 = -0.04 - (-0.01)

AI4 셀 :  0.44 =  0.55 - (0.10)

그림1. MACD 최초 계산 내역(AF열 ~ AI열)


4. 마치며

< 그림2 >는 나스닥 1분봉의 MACD에 대한 내용이다. MACD 관련하여 키움측에서 제공하는 MACD는 -4.94이다. 필자가 엑셀로 계산한 값은 -4.60으로 일부 차이가 보인다.

 

키움증권의 영웅문G에서 제공하는 MACD와 일치하기 위해 필요한 1분봉은 몇 개일까? < 그림2 >와 같이 48줄부터 일치하는 것을 알 수 있다.48줄에서 키움측에서 제공하는 MACD는 Z열에서 -6.32로 확인가능하며, 필자가 계산한 MACD값도 -6.32로 일치하는 것을 알 수 있다.

 

결론 : 영웅문G에 일치시키기 위해 필요한 1분봉 데이터는 최소 48개이다. (필자는 100개 정도 활용 예정이다)

그림2. MACD 값이 일치하는 데이터 숫자

 

엑셀을 통해 MACD, 시그널, 오실레이터 등을 구해보았다. 지수이동평균 때문에 상당히 까다롭게 느껴지긴 하지만, 원리는 간단해 보였다. 글이 길어질 것 같다. 다음 글에서 파이썬에서 MACD 코드와 관련되어 설명할 예정이다.

 

반응형