MACD
Moving Average Convergence & Divergence
'이동 평균 수렴 확산'.... 의미가 팍팍 오지는 않지만 ㅎㅎ
많이 등장하는 주요 지표 중 하나라고 한다.
상세는 아래에서 확인.
이 외에 블로그 들에 워낙 많이들 설명하고 있다.
어떤 방법으로 매매에 사용하는지 노하우를 보이는 블로그 들도 많고...
계산해보자.
코드설명
65행 : 데이터를 읽고
69-71행 : MACD에 사용되는 기간값의 상수 설정(전형적인 설정값)
72행 : fast(12일)에 대한 ema(지수이동평균)을 구한다.
df중 '종가'라는 열을 가지고 구하는데, 지수가중 값을 설정하고서(ewm(), 평활계수는 fastN을 사용하고,
계산을 위한최소기간은 fastN-1로 설정), 평균(mean()) 을 구하라.
73행 : slowN에 대한 ema 구한다.
74행 : MACD 계산
75행 : 위에서 구한 MACD를 가지고 signalN에 대한 ema 계산
76행 : MACD OSC를 계산
위키독스의 코드를 참고 많이했음.
ewm()의 상세설명은 아래 참조.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ewm.html
그리하여 계산 결과는,
비슷한 기간의 HTS화면,
거의 비슷한 모양이 나오는거 보니, 계산은 잘 되었나 보다.
이걸로 계산방법은 확인 된거 같은데...
잠깐, 지수이동평균 EMA는 정체가 뭘까...
일반적인 이동평균은 일정기간의 단순평균, 그에 비해 EMA는 지수가중이동평균 ? 그런 표현이 나온다.
과거보다 최근의 값이 더 많은 비중을 갖도록 계산되는 방법 이라고함.
아래를 살펴보면 이동평균 이름가진 여러가지 설명을 확인 가능하다.
https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%8F%99%ED%8F%89%EA%B7%A0
단순이동평균, 누적이동평균, 가중이동평균, 지수이동평균, 이동평균회귀모형 등이 나오는데,
왜 MACD는 지수이동평균을 써야 했던 걸까,,,,
급수,,, 재귀적,,, 알파,,, 음,,, 공부하자,,,
N_SMA 자리에 들어가는 것이 아마 코드상의 fastN, slowN 일 것으로 보인다.
그럼, EMA(지수이동평균)대신 SMA(단순이동평균)를 사용해서 MACD를 계산하면 어떻게 될까?
72,73,75 행이 수정되었음.
결과는?
EMA로 계산했던 것과 비슷한듯 아닌듯,,, 잘 안 보이니,
위에 보았던 결과와 같이 표시해보자.
EMA(위), SMA(아래)
역시 다르긴 하다. SMA를 사용한 것이 진폭이 크고, 그런 만큼 피크가 많이 생기는 느낌이다.
이게 어떤 의미를 갖는 것일까?
'프로그래밍' 카테고리의 다른 글
python, format() - 소수점 (0) | 2022.07.30 |
---|---|
python, 데이터프레임() - 열 추출 (0) | 2022.07.25 |
python, 주식(보조지표) - MFI 구하기 (0) | 2022.07.03 |
python, 주식(보조지표) -볼린저밴드 구하기 (0) | 2022.07.03 |
python, 주식(보조지표) - 이동평균 구하기 (0) | 2022.06.26 |