1. 들어가며
2. 사전설명
3. 계산하기
1) 12일 지수이동평균 구하기 (AE열)
2) 26일 지수이동평균 구하기 (AF열)
3) MACD 구하기 (AG열)
4) 시그널 구하기 (AH열)
5) 오실레이터 구하기 (AI열)
4. 마치며
1. 들어가며
지난 글에서는 MACD 개념 및 지수이동평균에 대해 알아보았다. 각각의 종가에 지수이동평균을 통해 구한 값이 MACD이며, MACD를 통해 시그널 및 오실레이터 등을 구할 수 있었다.
이번 글에서는 엑셀을 통해 MACD 구하는 방법을 알아볼 것이다. 선물지표를 파이썬으로 구현하기 위해서는 엑셀에 구현을 하곤 한다. 이유는 엑셀 함수를 만들어가면서 코딩을 어떻게 작성해야 하는지 머릿 속에서 그려보기 위해서이다.
< 파일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)
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개 정도 활용 예정이다)
엑셀을 통해 MACD, 시그널, 오실레이터 등을 구해보았다. 지수이동평균 때문에 상당히 까다롭게 느껴지긴 하지만, 원리는 간단해 보였다. 글이 길어질 것 같다. 다음 글에서 파이썬에서 MACD 코드와 관련되어 설명할 예정이다.
'2. 해외선물 > 2-4. 해외선물 API (사용)' 카테고리의 다른 글
(키움증권 해외선물 OpenAPI-W) 스토캐스틱(Stochastic) 값 구하기 (3) 스토캐스틱 슬로우 %K, %D 구하기 (12) | 2023.10.03 |
---|---|
(키움증권 해외선물 OpenAPI-W) 스토캐스틱(Stochastic) 값 구하기 (2) 스토캐스틱 패스트 %K, %D 구하기 (6) | 2023.10.02 |
(키움증권 해외선물 OpenAPI-W) 스토캐스틱(Stochastic) 값 구하기 (1) 스토캐스틱 개념 및 계산하는 방법 (4) | 2023.10.01 |
(키움증권 해외선물 OpenAPI-W) MACD 값 구하기 (3) 파이썬에서 작성하기 (0) | 2023.08.08 |
(키움증권 해외선물 OpenAPI-W) MACD 값 구하기 (1) MACD 개념 및 지수이동평균 (0) | 2023.08.06 |
(키움증권 해외선물 OpenAPI-W) 일괄청산 (2) 해외파상지정청산주문(opw10007) (2) | 2023.02.13 |
(키움증권 해외선물 OpenAPI-W) 일괄청산 (1) 해외파생지정청산대상조회(opw30023) (3) | 2023.02.12 |
(키움증권 해외선물 OpenAPI-W) 현재시간 표현 및 시간에 따라 다른 패턴 적용 등 시간 다루기 (datetime 모듈) (0) | 2023.02.10 |