목 차
1. 들어가며
2. 계산방법
1) 산술평균 vs 지수평균
2) 지수이동평균 계산하기
3) 개념설명
3. 마치며
1. 들어가며
오랜만에 글을 쓰게 된다. 6월 손실이 발생하고, 7월 초~중순까지 매매좌절을 하면서 마음을 가다듬었다. 기존의 자동매매의 진입 알고리즘이 통하지 않는다는걸 인정해야 할 때, 가슴이 아팠다. 한계인가? 계속 좌절할 수만은 없었고, 7월 말부터 슬슬 새로운 매매기법을 공부하고 숙지하려고 노력했던 것 같다.
해선매매를 하는 입장에서 "지표"를 맹신하는 것도 문제이지만, 그렇다고 지표를 마냥 무시하는 것도 문제일 것 같다. 최근 집중해서 공부한 MACD 지표로 예전처럼 큰 수익을 낼 수는 없겠지만, 큰 손실은 피해나가는 것 같다. 물론 원웨이 상방/하방장에서는 속수무책으로 당하는 건 어쩔 수 없지만 말이다.ㅠㅠ
이 글의 제목은 "MACD의 개념 및 계산접근"으로 정하긴 했는데, 개념은 인터넷 검색으로 얼마든지 찾아볼 수 있기 때문에 여기서는 개념은 간략히 설명하고, 계산접근을 중점적으로 설명할 것이다.
2. 계산방법
MACD는 이동평균수렴발산(Moving Average Convergence Divergence)이며 단기 이동평균선과 장기 이동평균선이 서로 가까워지거나(수렴) 멀어지는(발산) 원리를 활용한다.
계산하기 앞서, 지수(이동)평균이 무엇인지 알아보자. 산술평균에 익숙한 사용자에게 지수이동평균은 낯선 개념일 것이다. 간단하게 이야기하면 지수(이동)평균은 최근 데이터에 높은 가중치를 준다는 것이다.
1) 산술평균 vs 지수평균
산술평균과 지수평균은 아래와 같이 정의가 가능하다.
- 산술평균(arithmetic mean) : 주어진 수의 합의 주어진 수의 갯수로 나눈 값을 계산
- 지수평균(weighting multiplier) : 최근의 데이터에 더 높은 가중치를 부여하여 평균을 계산
또한, 지수이동평균과 가중치는 아래와 같이 설명한다.
현재값의 지수이동평균 = (현재종가 x 가중치) + (이전값의 지수평균 x (1-가중치))
가중치 = 2 / (n + 1)
2) 지수이동평균 계산하기
숫자 3개와 4개가 주어졌을 때 각각 가중치가 다르다.
< 사례1 >에서는 3, 4, 5의 산술평균 및 지수 평균을 구해보았다.
- 산술평균 10 = 5 x (1/3) + 10 x (1/3) + 15 x (1/3) : 숫자가 3개일 때 마자막 숫자인 15에 33.3%를 적용
- 지수평균 11.25 = 15 x (2/4) + 7.5 x (1-2/4) : 숫자가 3개일 때, 마지막 15에 0.5(50%)를 적용
< 사례2 >
- 산술평균 12.5 = (5+10+15+20) / 4 : 마지막 20에 가중치 0.25(25%)를 주었다.
- 지수평균 14.12 : 마지막 20에 가중치 0.4(=2/5)를 주었다.
< 사례 2 >의 내용을 보자.
주어진 숫자는 5,10,15,20으로 4개이다. 가중치는 위에서 확인한대로 2/5(2/4 +1)로 계산된다.
숫자 4개(5,10,15,20)의 산술평균은 12.5로 확인할 수 있다.
숫자 4개(5,10,15,20)의 지수평균은 어떻게 구할까? 5에서부터 계산을 쭈욱 해주면 된다.
첫번째 주어진 숫자 5는 그대로 기재한다. 5의 지수평균은 5이다.
두번째 주어진 숫자 10은 현재값 x (2/5) + 5 x (1-2/5)로 7이다.
이렇듯 지수이동평균은 최신 데이터에는 가중치를 곱해주고, 이전에 계산된 값에는 (1-가중치)를 통해 계산해 준다.
3) 개념설명
MACD를 구하기 위해서는 단기(12일) 및 장기(26일)의 지수이동평균을 구할 필요가 있다. 또한 시그널을 구하기 위해서는 MACD의 9일 지수이동평균을 구할 필요도 있다. 생각보다 손이 많이 갈거 같다.
- macd = 단기 지수이동평균 - 장기 지수이동평균
- 시그널 = macd의 k일 지수이동평균
- 오실레이터 = macd - 시그널
단기는 12일, 장기는 26일, 시그널은 9일로 설정하고 지수이동평균을 구할 것이다.
- 단기 지수이동평균 : 12일 간의 지수이동평균
- 장기 지수이동평균 : 26일 간의 지수이동평균
- 시그널 : 9일 간의 MACD 지수이동평균
※ 증권사에서 제공하는 MACD 관련 최초 설정된 값은 위에서처럼 12, 26, 9로 주어진다. 사용자의 편의에 따라 변경해서 활용하면 된다.
3. 마치며
오랜만에 글을 써서인지 별 내용도 없는것 같은데, 생각보다 시간이 걸렸다. 한달에 한번은 글을 써야 글쓰는 감각이 유지될 거 같다.
이번 시간에는 MACD 개념 및 계산방법, 지수이동평균 등에 대해 알아보았다. 다음 시간에는 본격으로 MACD의 엑셀 계산 및 파이썬 코드에서 구현해 보자.
'2. 해외선물 > 2-4. 해외선물 API (사용)' 카테고리의 다른 글
(키움증권 해외선물 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 값 구하기 (2) MACD 엑셀에서 계산하기 (0) | 2023.08.07 |
(키움증권 해외선물 OpenAPI-W) 일괄청산 (2) 해외파상지정청산주문(opw10007) (2) | 2023.02.13 |
(키움증권 해외선물 OpenAPI-W) 일괄청산 (1) 해외파생지정청산대상조회(opw30023) (3) | 2023.02.12 |
(키움증권 해외선물 OpenAPI-W) 현재시간 표현 및 시간에 따라 다른 패턴 적용 등 시간 다루기 (datetime 모듈) (0) | 2023.02.10 |
(키움증권 해외선물 OpenAPI-W) 청산을 위해 계좌에서 평가손익 등 받기 (opw30003) (2) | 2023.02.07 |