[누구나 따라 하는 금융데이터 분석] - subplot 기능을 활용하여 캔들차트와 보조지표 그리기

알파프라임

오늘은 matplotlib의 subplot 기능을 활용하여 캔들차트와 MACD 같은 보조지표를 같이 그리는 방법에 대해 알아보도록 하겠습니다. 주피터 노트북 상에서 주가 데이터를 읽어와 캔들차트와 이동평균선을 그리는 방법, MACD에 대한 설명은 다음 링크를 참조해 주세요.

파이썬에서 캔들차트/이동평균선 그리기

[누구나 따라 하는 금융데이터 분석] - 파이썬에서 캔들차트에 이동평균선 그리기

MACD 카드 템플릿

[기술적 분석 시리즈 #5 - MACD]

1. 데이터를 통해 MACD 계산하기

알파스퀘어 페이스북 페이지에 올라와 있는 게시물의 일부입니다!

MACD는 단순이동평균이 아닌 지수이동평균을 사용합니다. 지수이동평균은 가중치를 부여한 평균의 일종으로써 최근의 데이터에 좀 더 가중치를 두는 방식입니다. 식을 전개했을 때 가중치를 살펴보면 k라는 평활 상수(smoothing constant)가 지수함수의 형태로 나타나기에 지수이동평균이라고 불립니다. 지수이동평균은 다음과 같은 코드를 통해 함수화할 수 있습니다.

위의 지수이동평균 함수를 활용하여 다음과 같이 MACD 함수를 만들 수 있습니다. 12, 26, 9의 기간이 MACD를 산출하는데 보통 사용되기에 초깃값으로 지정해 두었습니다. 물론 차트 분석가의 재량에 따라 다른 값을 사용할 수 있습니다. 이런 경우에는 파라미터에 다른 값을 넘겨 주면 됩니다.

애플의 2018년 1월 ~9월까지의 주가 데이터를 받아 MACD를 계산해 보도록 하겠습니다. 자세한 설명은 다음 게시글을 참고해 주세요.

위 셀을 실행하면 결과가 str이라고 출력됩니다. 소수점 구분에 마침표( . )가 사용되기 때문입니다. 다음과 같이 타입을 변경하여 MACD 계산 결과를 확인할 수 있습니다.

위 셀을 실행하면 나오는 MACD 계산 결과입니다.

2. subplot 기능 활용하기

여러 개의 차트를 레이아웃에 맞추어 그려야 할 때 subplot 기능을 활용할 수 있습니다. 여기서는 subplot2grid를 활용하도록 하겠습니다. 예제를 하나 살펴보도록 하겠습니다.

실행 결과는 다음과 같습니다.

제각기 다른 사이즈의 차트 4개가 생성되었는데 다음 그림과 같이 각 차트 왼쪽 위 꼭짓점을 좌표에 대응 시켜보면 코드 이해가 한결 쉬워집니다.

코드 마지막 부분에 있는 plt.tight_layout() 명령어는 차트끼리 충돌하는 것을 막아주는 명령어입니다. 이제 위 내용들을 바탕으로 최종 차트를 그려보도록 하겠습니다. 전체 코드는 다음과 같습니다.

실행 결과 출력된 차트화면입니다.

질문이나 더 궁금한 점은 댓글로 올려주시면 저에게도 큰 도움이 될 것 같습니다! 다음 포스팅도 기대해주시길 바랍니다.

더 유익한 정보를 얻고 싶으시다면 페이스북 알파스퀘어 페이지를 방문해주세요!

차세대 주식투자 플랫폼, 알파스퀘어에서 스마트한 주식투자를 경험해보세요!

기업문화 엿볼 때, 더팀스

로그인

/